Sobre a linhagem de dados

A linhagem de dados é um mapa visual que rastreia todo o ciclo de vida dos seus dados. Ela mostra de onde vêm seus dados (a origem), para onde eles vão (os destinos) e todas as mudanças ou transformações que acontecem ao longo do caminho.

É possível conferir esse mapa completo da jornada dos seus dados diretamente no consoleGoogle Cloud para recursos criados em produtos como Knowledge Catalog (antigo Dataplex Universal Catalog), BigQuery (incluindo tabelas externas criadas para o catálogo REST do Iceberg) e Vertex AI. Como os fluxos de trabalho geralmente abrangem várias regiões, o Knowledge Catalog oferece suporte à linhagem multirregional, que fornece uma visão unificada da jornada dos seus dados no ecossistema global do Google Cloud . Usuários avançados também podem recuperar essas informações usando a API Data Lineage.

Por que você precisa da linhagem de dados

As empresas modernas movem e mudam grandes quantidades de dados constantemente. Por exemplo, transformar compras brutas de clientes em relatórios, painéis e modelos de aprendizado de máquina. Essa complexidade cria desafios críticos para sua equipe:

  • Confiança e verificação. Os usuários de dados geralmente têm dificuldade para confirmar se os relatórios e números que veem são precisos e vêm de uma fonte confiável.

  • Solução de problemas Quando um erro aparece em um relatório final, as equipes de dados podem ter dificuldade e levar muito tempo para rastrear o problema em todas as etapas até a causa raiz.

  • Gestão da mudança. Antes de mudar ou excluir um dado (como uma coluna em uma tabela), as equipes precisam saber todos os relatórios ou modelos downstream que dependem dele para evitar a quebra de sistemas críticos.

  • Conformidade. Os líderes precisam saber como os dados sensíveis (como informações financeiras ou de clientes) são usados em toda a organização para atender aos requisitos regulamentares.

A linhagem de dados resolve esses problemas fornecendo uma jornada clara, visual e documentada dos seus dados. Assim, é possível entender as fontes de dados, rastrear erros, avaliar o impacto das mudanças e manter a conformidade.

Como a linhagem de dados funciona

O fluxo de trabalho de linhagem de dados inclui as seguintes etapas:

  1. Fontes de dados e ingestão: as informações de linhagem das suas fontes de dados iniciam todo o processo.

    • Google Cloud serviços: quando a API Data Lineage está ativada, os serviços compatíveis, como BigQuery e Dataflow, informam automaticamente os eventos de linhagem sempre que os dados são movidos ou transformados.

    • Fontes personalizadas: para sistemas que não são compatíveis automaticamente com as integrações do Google Cloud , use a API Data Lineage para registrar manualmente informações de linhagem. Recomendamos importar eventos formatados de acordo com o padrão OpenLineage.

  2. Plataforma de linhagem: essa plataforma central ingere, modela e armazena todos os dados de linhagem.

    • API Data Lineage: atua como o único ponto de entrada para todas as informações de linhagem recebidas. Ele usa um modelo de dados hierárquico composto por três conceitos principais: processo, execução e evento.

    • Processamento e armazenamento: a plataforma processa os dados recebidos e os armazena em bancos de dados confiáveis e otimizados para consultas.

  3. Experiência do usuário: é possível interagir com as informações de linhagem armazenadas de duas maneiras principais:

    • Análise visual: no console Google Cloud , um serviço de front-end busca e renderiza os dados de linhagem como um gráfico ou lista interativa. Isso é compatível com o Knowledge Catalog, o BigQuery, o Lakehouse para Apache Iceberg (para tabelas do catálogo REST do Iceberg), a camada física (Cloud Storage) e a Vertex AI (para modelos, conjuntos de dados, por pipelines, visualizações da loja de recursos e grupos de recursos). Isso é ideal para analisar visualmente a jornada dos seus dados.

    • Acesso programático: usando um cliente de API, você pode se comunicar diretamente com a API Data Lineage para automatizar o gerenciamento de linhagem. Isso permite gravar informações de linhagem de fontes personalizadas. Também é possível ler e consultar os dados de linhagem armazenados para uso em outros aplicativos ou para criar relatórios personalizados.

Qual método devo usar para linhagem de dados?

Para fazer pesquisas imediatas de nível único, use o método SearchLinks. Para criar um gráfico de linhagem completo ou realizar uma análise de impacto detalhada (até 100 níveis), use o método SearchLineageStreaming.

Dependendo do seu caso de uso, selecione o método mais adequado:

Recurso SearchLinks SearchLineageStreaming
Profundidade 1 nível (vizinhos imediatos) Até 100 níveis
Execução Síncrona Streaming em tempo real
Caso de uso Pesquisas simples de origens ou destinos diretos Criar um gráfico de linhagem completo ou fazer uma análise de impacto

Identificar direção

  • Upstream (origens):
    • Em SearchLinks, defina o campo target como o FQN do recurso.
    • Em SearchLineageStreaming, defina direction como UPSTREAM.
  • Downstream (destinos):
    • Em SearchLinks, defina o campo source como o FQN do recurso.
    • Em SearchLineageStreaming, defina direction como DOWNSTREAM.

Modelo de informações de linhagem de dados

A linhagem é um registro da transformação dos dados, desde as fontes até os destinos. A API Data Lineage coleta essas informações e as organiza em um modelo de dados hierárquico que usa os conceitos de processos, execuções e eventos.

Conceito Descrição
Processo Uma definição de transformação de dados.
Executar Uma execução de um processo.
Evento Um registro da movimentação de dados durante uma execução.

O que é um processo de linhagem?

Um processo é a definição de uma operação de transformação de dados para um sistema específico. Para a linhagem do BigQuery, um processo é um job de um tipo de job compatível. Todas as execuções da mesma consulta SQL são vinculadas a um único processo, o que permite rastrear todas as instâncias em que uma lógica de transformação específica é usada.

Por exemplo, a seguinte consulta SQL é um processo. Essa consulta cria uma tabela contando o número total de viagens de cada fornecedor em duas tabelas de origem.

  CREATE TABLE `dataplex-docs.data_lineage_demo.total_green_trips_22_21`
  AS
  SELECT
      vendor_id,
      COUNT(*) AS number_of_trips
  FROM
      (
          SELECT vendor_id
          FROM `dataplex-docs.data_lineage_demo.nyc_green_trips_2022`
          UNION ALL
          SELECT vendor_id
          FROM `dataplex-docs.data_lineage_demo.nyc_green_trips_2021`
      )
  GROUP BY
      vendor_id;

O formato do nome do recurso REST para um processo é projects/PROJECT_NUMBER/locations/LOCATION/processes/PROCESS_ID.

Por exemplo: projects/123456789123/locations/us/processes/sh-0548bbf4ff3c8072a6c7372ba1acafb6

Para mais informações sobre o recurso process, consulte a referência do recurso Process.

O que é uma execução de linhagem?

Uma execução é uma única operação de um processo. Os processos podem ter várias execuções.

Cada execução é uma operação única caracterizada por um startTime, um endTime e um estado final, como COMPLETED, FAILED ou ABORTED.

Por exemplo, executar a consulta SQL da seção Processo às 9h cria uma execução específica. Executar a mesma consulta novamente às 10h cria uma execução nova e distinta. As duas execuções estão vinculadas ao mesmo processo principal.

O formato do nome do recurso REST para uma execução mostra que ela é filha de um processo: projects/PROJECT_NUMBER/locations/LOCATION/processes/PROCESS_ID/runs/RUN_ID.

Por exemplo: projects/123456789123/locations/us/processes/sh-0548bbf4ff3c8072a6c7372ba1acafb6/runs/83dd03a51cd2ac80f465c9e267a950b1

Para mais informações sobre o recurso run, consulte a referência do recurso Run.

O que é um evento de linhagem?

Um evento representa um ponto no tempo em que uma transformação de dados move dados entre uma origem e uma entidade de destino. Um evento é um registro granular de um movimento de dados específico que conecta tabelas de origem e de destino para uma execução específica. Um evento também pode ter várias origens e destinos.

Por exemplo, se a execução executar a consulta SQL discutida na seção Processo, um evento de linhagem vai registrar que as tabelas de origem nyc_green_trips_2021 e nyc_green_trips_2022 são usadas para criar a tabela de destino total_green_trips_22_21.

Um evento de linhagem contém uma lista de links que definem a origem e o destino. Os eventos são usados para criar gráficos de linhagem. Embora o console Google Cloud apresente esses gráficos de linhagem, ele não mostra diretamente eventos individuais. É possível criar, ler e excluir eventos usando a API Data Lineage, mas não atualizar.

Cada link em um evento define um único caminho de fluxo de dados de uma entidade de origem para uma entidade de destino. Uma entidade é uma referência a um recurso de dados, como uma tabela do BigQuery, e é identificada pelo nome totalmente qualificado (FQN). Um único evento pode conter vários links, o que é comum em operações como junções de tabelas, em que várias fontes contribuem para um destino.

Para detalhes sobre como os eventos oferecem suporte à linhagem no nível da coluna, consulte Linhagem no nível da coluna.

Quais fontes de dados são compatíveis com a linhagem de dados?

É possível preencher informações de linhagem no Knowledge Catalog das seguintes maneiras:

  • Automaticamente de serviços Google Cloud integrados
  • Manualmente, usando a API Data Lineage para fontes personalizadas
  • Importando eventos do OpenLineage

BigQuery

Quando você ativa a linhagem de dados no projeto do BigQuery, o Knowledge Catalog registra automaticamente as informações de linhagem para o seguinte:

Os jobs de cópia, consulta e carregamento do BigQuery são representados como processos.

Para conferir os detalhes do processo, clique no ícone Detalhes do processo Detalhes do processo. no gráfico de linhagem.

Cada processo contém o job_id do BigQuery na lista de atributos do job mais recente do BigQuery.

Outros serviços

A linhagem de dados é compatível com a integração aos seguintes serviços do Google Cloud :

  • Cloud Data Fusion

    Não é possível restringir o rastreamento de linhagem apenas ao Cloud Data Fusion quando a API Data Lineage está ativada em um projeto.

  • Dataflow

    É possível capturar eventos de linhagem com jobs do Dataflow e publicá-los na API Data Lineage.

  • Lakehouse para tabelas de catálogo REST do Iceberg

  • Looker (Google Cloud Core) (prévia)

    É possível visualizar metadados do Looker (Google Cloud Core) de fontes do BigQuery usando linhagem de dados. A linhagem de dados precisa ser ativada no nível do recurso do Looker (Google Cloud Core) e no nível do serviço de linhagem de dados.

  • Serviço gerenciado para Apache Airflow

    O Airflow gerenciado usa o controle de integração de linhagem de dados no nível do ambiente. A linhagem de dados é ativada automaticamente para todos os novos ambientes gerenciados do Airflow que atendem aos requisitos. Para ambientes atuais, use as configurações de ambiente para ativar ou desativar a integração do rastreamento de dados. É possível configurar a ingestão de linhagem de dados para o Managed Airflow e ativar ou desativar a ingestão automática.

  • Serviço Gerenciado para Apache Spark: clusters do Apache Hive

    É possível capturar eventos de linhagem com jobs do Hive do Managed Service for Apache Spark e publicá-los na API Data Lineage. É possível configurar a ingestão de linhagem de dados para o Serviço Gerenciado para Apache Spark e ativar ou desativar a ingestão automática de linhagem de dados.

  • Serviço Gerenciado para Apache Spark: clusters do Apache Spark

    É possível capturar eventos de linhagem com jobs do Spark do Managed Service for Apache Spark e publicá-los na API Data Lineage. É possível configurar a ingestão de linhagem de dados para o Serviço Gerenciado para Apache Spark e ativar ou desativar a ingestão automática de linhagem de dados.

  • Serviço Gerenciado para Apache Spark: implantação sem servidor

    É possível capturar eventos de linhagem com jobs sem servidor do Serviço Gerenciado para Apache Spark e publicá-los na API Data Lineage. É possível configurar a ingestão de linhagem de dados para o Serviço Gerenciado para Apache Spark e ativar ou desativar a ingestão automática de linhagem de dados.

  • Vertex AI Feature Store

    A linhagem de dados rastreia metadados para visualizações de repositório de atributos e grupos de atributos.

  • Pipelines da Vertex AI

    A linhagem de dados é ativada automaticamente para pipelines da Vertex AI Pipelines, rastreando artefatos de entrada e parâmetros de execução (como modelos, conjuntos de dados e componentes), além de recursos derivados downstream.

Linhagem de dados para fontes de dados personalizadas

Use a API Data Lineage para registrar manualmente informações de linhagem de qualquer fonte de dados que os sistemas integrados não ofereçam suporte, como bancos de dados externos ou pipelines locais. O Knowledge Catalog pode criar gráficos de linhagem para linhagem registrada manualmente se você usar um fullyQualifiedName que corresponda aos nomes totalmente qualificados das entradas do Knowledge Catalog existentes. Se quiser registrar a linhagem de uma fonte de dados personalizada, primeiro crie uma entrada personalizada.

Cada processo de uma fonte de dados personalizada pode conter uma chave sql na lista de atributos. O valor dessa chave é usado para renderizar um destaque de código no painel de detalhes do gráfico de linhagem de dados. A instrução SQL é mostrada como foi fornecida. Você é responsável por filtrar informações sensíveis. O nome da chave sql diferencia maiúsculas de minúsculas.

Por exemplo, uma carga útil de recurso de processo com um atributo sql personalizado:

{
  "displayName": "custom-sql-query",
  "attributes": {
    "sql": "SELECT user_id, SUM(amount) FROM `project.dataset.purchases` GROUP BY user_id"
  }
}

Para mais informações, consulte Rastrear informações de linhagem de sistemas externos.

OpenLineage

Se você já usa o OpenLineage para coletar informações de linhagem de outras fontes de dados, é possível importar eventos do OpenLineage para o Knowledge Catalog e conferir esses eventos no console Google Cloud . Para mais informações, consulte Integrar com o OpenLineage.

Rastreamento automatizado da linhagem de dados

Quando você ativa a API Data Lineage,os sistemas que suportam a linhagem de dados começam a informar a movimentação dos dados. Google Cloud Cada sistema integrado pode enviar informações de linhagem para um intervalo diferente de fontes de dados.

Ingestão de linhagem de controle

Para gerenciar custos e políticas de governança, ative ou desative a geração de linhagem para serviços específicos do Google Cloud . É possível configurar essa ingestão de forma centralizada nos níveis de organização, pasta e projeto. Durante o pré-lançamento, esse recurso permite configurar a ingestão de linhagem para o Serviço gerenciado para Apache Spark, o BigQuery e o Serviço gerenciado para Apache Airflow.

O catálogo de dados avalia a hierarquia de recursos (projeto, pastas e organização) para determinar a configuração efetiva. A primeira configuração definida explicitamente em qualquer nível nessa travessia ascendente entra em vigor.

  • Se você definir uma configuração no nível do projeto, o Knowledge Catalog a usará.
  • Se nenhuma configuração for definida no nível do projeto, o Knowledge Catalog usará a configuração da pasta mãe mais próxima com uma configuração explícita.
  • Se nenhuma configuração for definida no nível do projeto ou da pasta, o catálogo de dados usará a configuração no nível da organização.
  • Se nenhuma configuração for definida em qualquer um desses níveis, o catálogo de dados de conhecimento usará o padrão do sistema para a integração. A configuração padrão para ativação do linhagem pode ser Ativada ou Desativada. Para o Serviço Gerenciado para Apache Spark, o BigQuery e o Serviço Gerenciado para Apache Airflow, a ingestão de linhagem está ativada por padrão quando a API Data Lineage está ativa.

Por exemplo, considere uma organização test-org com as seguintes configurações de linhagem do Serviço Gerenciado para Apache Spark:

  • Organização test-org: ativada
    • Pasta folder-a: Desativado
      • Projeto project-a: nenhum conjunto de configurações
    • Pasta folder-b: Ativado
      • Projeto project-b: desativado

Nesse cenário, as seguintes configurações são aplicáveis:

  • Para project-a, a ingestão de linhagem está Desativada. O Knowledge Catalog começa a avaliação em project-a, não encontra nenhuma configuração, passa para folder-a e aplica a configuração Desativado de folder-a.
  • Para project-b, a ingestão de linhagem está Desativada. O Knowledge Catalog começa a avaliar a partir de project-b e aplica a configuração Desativado, substituindo as configurações em folder-b e test-org.

Controlar a geração de dados de linhagem ajuda a gerenciar custos e políticas de governança. Por exemplo, é possível desativar a coleta de linhagem para projetos de desenvolvimento ou cargas de trabalho de alto volume que não exigem o rastreamento de linhagem.

Para informações sobre como configurar e controlar a ingestão de linhagem, consulte Controlar a ingestão de linhagem para um serviço.

Linhagem de dados multirregional

A linhagem de dados é um serviço inerentemente regionalizado. Os metadados de linhagem, incluindo links, processos e eventos, são registrados e isolados com segurança no local geográfico específico em que ocorre a transformação de dados ou a modificação de recursos.

À medida que as arquiteturas de dados empresariais modernas são escalonadas, os fluxos de trabalho de pipeline costumam cruzar limites regionais e de projetos. Por exemplo, um pipeline de transformação do BigQuery executado em us-central1 pode ler uma tabela de origem em us-east1 e gerar métricas agregadas em um bucket do Cloud Storage localizado em europe-west1.

Para estabelecer uma visão abrangente e completa do ciclo de vida dos seus dados nesses espaços geográficos independentes, use um método de pesquisa de linhagem multirregional.

Para mais informações, consulte Sobre a pesquisa de linhagem multirregional.

Considerações e limitações da linhagem de dados

Ao planejar sua estratégia de governança de dados, lembre-se das seguintes integrações de linhagem, parâmetros de compliance e limitações de serviço.

Controles de linhagem no nível do produto

Quando a API Data Lineage está ativada, os sistemas compatíveis informam a linhagem de acordo com os controles no nível do produto. Para uma lista completa de sistemas compatíveis e seus controles, consulte Sistemas compatíveis com linhagem de dados.

Impacto no faturamento

Além dos preços padrão, lembre-se do seguinte:

  • A API Data Lineage é executada por projeto. Analise o impacto no faturamento antes de ativar em fluxos de trabalho de projetos com muitos dados.
  • No BigQuery Omni, o processamento de linhagem é distribuído para regiões específicas, e os custos dependem de onde o processamento é realizado.

Compliance com a linhagem de dados

  • A linhagem de dados registra metadados sobre a movimentação de dados, mas não captura os dados em si. Consulte o modelo de informações de linhagem de dados e a referência da API Data Lineage para saber quais campos estão incluídos nos metadados.
  • A linhagem de dados como parte do Knowledge Catalog oferece suporte ao VPC-SC.
  • O Knowledge Catalog não oferece a capacidade de usar chaves de criptografia gerenciadas pelo cliente (CMEK) para proteger os metadados de linhagem coletados.

Limitações da linhagem de dados

A linhagem de dados tem as seguintes limitações:

  • Todas as informações de linhagem são mantidas no sistema por apenas 30 dias.

  • As informações de linhagem persistem mesmo depois que você exclui a fonte de dados relacionada. Por exemplo, se você excluir uma tabela do BigQuery, ainda poderá ver a linhagem dela pela API e pelo console por até 30 dias.

  • A linhagem de dados não registra automaticamente informações de linhagem direta para rotinas do BigQuery. Se uma rotina for usada em uma consulta, a linhagem de dados vai registrar a linhagem entre as tabelas que a rotina lê como dependências de tabelas que a consulta grava.

Quando você seleciona um nó no gráfico de linhagem, o painel lateral de detalhes do nó fica vazio nos seguintes casos:

  • O recurso está em outra organização.
  • O usuário não é membro da organização que hospeda o recurso.

Limitações da linhagem no nível de coluna

A linhagem no nível da coluna tem as seguintes limitações adicionais:

  • O linhagem no nível da coluna não é coletada para jobs de carregamento do BigQuery nem para rotinas.

  • A linhagem upstream no nível da coluna não é coletada para tabelas externas.

  • A linhagem no nível da coluna não é coletada se um job criar mais de 1.500 links desse tipo. Nesses casos, apenas a linhagem no nível da tabela é coletada.

  • O suporte ao linhagem no nível da coluna é limitado às colunas de nível superior em tabelas do BigQuery. Campos aninhados em tipos complexos (como STRUCT ou JSON) não são compatíveis.

  • A funcionalidade de pesquisa com o parâmetro de campo só opera em links que definem explicitamente relações coluna a coluna. Ele não retorna resultados nem percorre links definidos apenas no nível da tabela. Não há suporte para pesquisa entre links no nível da tabela e no nível da coluna (por exemplo, encontrar todas as colunas relacionadas a um link no nível da tabela ou vice-versa). A API retorna apenas links em que a origem e o destino especificam um campo.

  • O suporte a tabelas particionadas é limitado porque colunas de particionamento, como _PARTITIONDATE e _PARTITIONTIME, não são reconhecidas no gráfico de linhagem.

  • Limitações do console:

    • O percurso do gráfico de linhagem é limitado a uma profundidade de 20 níveis e 10.000 links em cada direção.

Preços

  • O Knowledge Catalog usa a SKU de processamento premium para cobrar pela linhagem de dados. Para saber mais informações, consulte Preços.

  • Para separar as cobranças de linhagem de dados de outras cobranças na SKU de processamento premium do Knowledge Catalog, no relatório de faturamento do Cloud, use o rótulo goog-dataplex-workload-type com o valor LINEAGE.

  • Se você chamar a API Data Lineage Origin sourceType com um valor diferente de CUSTOM, isso vai gerar custos adicionais.

A seguir