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 em 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:

    • Exploração visual: no console Google Cloud , um serviço de front-end busca e renderiza os dados de linhagem como um gráfico ou uma lista interativa. Isso é compatível com o Knowledge Catalog, o BigQuery, o Lakehouse (para tabelas do catálogo REST do Iceberg), a camada física (Cloud Storage) e a Vertex AI (para modelos, conjuntos de dados, pipelines, visualizações da Feature Store e grupos de atributos). 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 vinculação múltipla, 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 do 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 de Airflow Gerenciado que atendem aos requisitos. Para ambientes atuais, use as configurações de ambiente para ativar ou desativar a integração da linhagem de dados. É possível configurar a ingestão de linhagem de dados para o Airflow Gerenciado 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.

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

    É possível capturar eventos de linhagem com jobs do Spark 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.

  • 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, Google Cloud os sistemas que suportam a linhagem de dados começam a informar a movimentação dos dados. Cada sistema integrado pode enviar informações de linhagem para um intervalo diferente de fontes de dados.

Ingestão de linhagem de controle

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 na localização geográfica específica 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.

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á localizado 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 ou rotinas do BigQuery.

  • 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 aceitos.

  • 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 pesquisar entre links no nível da tabela e 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 (medida em unidades de computação de dados, ou DCUs) para cobrar pela linhagem de dados. Para detalhes sobre as taxas, consulte os preços do Knowledge Catalog ou use a calculadora de preços doGoogle Cloud .

Fatores de custo e impacto no faturamento

Ao planejar a implementação da linhagem de dados, considere os seguintes fatores de custo:

  • Ativação por projeto. A API Data Lineage é executada por projeto. Analise o impacto no faturamento antes de ativar em fluxos de trabalho de projetos com muitos dados.
  • Armazenamento e pesquisa de metadados. Os metadados de linhagem (processos, execuções, eventos e links) armazenados durante o período de retenção de 30 dias são faturados de acordo com a SKU de armazenamento de metadados. A visualização da linhagem no console do Google Cloud não gera cobranças de consulta ou verificação do BigQuery.
  • BigQuery Omni. O processamento de linhagem é distribuído para regiões específicas, e os custos dependem das regiões em que o processamento é realizado.
  • Conjuntos de dados multirregionais do BigQuery. Se você usar conjuntos de dados multirregionais (por exemplo, a multirregião US), o BigQuery vai rotear dinamicamente as consultas em zonas de data center físico. A linhagem de dados é executada junto com a execução da consulta no local físico em que o job foi executado (por exemplo, us-east1). Isso resulta em entradas regionais de SKU de DCU de linhagem na sua fatura do Cloud Billing.
  • Tipos de origem personalizada. Se você chamar a API Data Lineage Origin sourceType com um valor diferente de CUSTOM, isso vai gerar custos adicionais.

Monitorar e controlar custos

  • Filtrar cobranças nos relatórios do Cloud Billing. Para separar os custos de linhagem de dados de outros custos na SKU de processamento premium do Knowledge Catalog, no relatório do Cloud Billing, use o rótulo goog-dataplex-workload-type com o valor LINEAGE.
  • Desative em projetos de desenvolvimento. Para evitar custos desnecessários de processamento, ative a API Data Lineage apenas nos projetos em que o rastreamento de linhagem é necessário.
  • Interromper cobranças. A API Data Lineage gera cobranças separadas da API Dataplex. Desativar a API Dataplex não desativa a API Data Lineage nem interrompe as cobranças dela. Para parar de receber cobranças de linhagem de dados, desative a linhagem de dados desativando a API Data Lineage.

A seguir