A linhagem de dados permite acompanhar como os dados se movimentam nos sistemas: origem, destino e quais transformações são aplicadas a eles.
Por que você precisa de linhagem de dados?
Lidar com grandes conjuntos de dados geralmente envolve transformar dados em entidades adaptadas às necessidades de um projeto específico: arquivos de texto, tabelas, relatórios, painéis e modelos.
Por exemplo, imagine que você tem uma loja on-line em que registra cada compra em uma única tabela SQL. Para facilitar o trabalho dos analistas com os dados, você começa a executar jobs que extraem informações dessa única tabela e produzem tabelas menores por região, marca ou preço de venda. Seus analistas começam a fazer o mesmo: eles realizam outras transformações, mesclando essas tabelas menores com outras fontes de dados para produzir ainda mais tabelas.
Isso pode se tornar um grande desafio para as partes interessadas:
- Os consumidores de dados não podem usar uma ferramenta de autoatendimento para entender se os dados vêm de uma fonte confiável.
- Os engenheiros de dados não conseguem identificar a causa raiz dos problemas devido à falta de uma maneira confiável de rastrear todas as transformações de dados.
- Engenheiros e analistas de dados não podem avaliar totalmente o possível impacto antes de modificar ou excluir tabelas.
- Os administradores de dados não conseguem entender como os dados sensíveis são usados em toda a organização e garantir a adesão aos requisitos regulamentares.
A linhagem de dados é uma solução que oferece uma maneira prática de fazer o seguinte:
- Entenda como os dados são extraídos e transformados com a ajuda de gráficos de linhagem.
- Rastreie erros relacionados a entradas e operações de dados até as causas raiz.
- Melhore a gestão de mudanças com a análise de impacto: evite inatividade ou erros inesperados, entenda as entradas dependentes e colabore com partes interessadas relevantes.
Modelo de informações de linhagem de dados
Na forma básica, a linhagem é um registro de dados transformados de origens em destinos. A API Data Lineage coleta essas informações e as organiza em um modelo de dados hierárquico usando os conceitos de processos, execuções e eventos.
Processo
Um processo é a definição de uma operação de transformação de dados compatível com
um sistema específico. No contexto da linhagem do BigQuery,
um process
é um dos tipos de job aceitos.
Executar
Uma execução é a realização de um processo. Os processos podem ter várias execuções.
As execuções contêm detalhes como horários de início e término, estado ou outros atributos.
Para mais informações, consulte a
referência de recurso run
.
Evento
Um evento representa um ponto no tempo em que uma operação de transformação de dados ocorreu e resultou na movimentação de dados entre uma entidade de origem e uma de destino.
Os eventos contêm uma lista de links que definem qual entrada foi a origem e qual foi o destino em um evento específico. Embora os eventos sejam usados para calcular gráficos de linhagem, eles não são expostos diretamente no console do Google Cloud. É possível criar, ler e excluir (mas não atualizar) usando a API Data Lineage.
Exemplo
Considere o exemplo a seguir, em que os dados são copiados entre as tabelas do BigQuery:
![O exemplo extrai dados das tabelas "customer_year" e "customers" para gerar uma tabela chamada "top_customer".](https://cloud.google.com/static/dataplex/images/sample_lineage_graph.png?hl=pt-br)
A forma como os dados são transferidos entre as tabelas é descrita pelo processo de linhagem, representado no gráfico pelo ícone . Pode ser uma consulta SQL
CREATE TABLE AS SELECT
ou uma instrução INSERT
.
Cada execução dessa instrução SQL constituiria uma execução individual.
As execuções contêm eventos que registram quais tabelas foram usadas como origens e quais como destinos. Neste exemplo, as tabelas
customer_year
e customers
são a origem
da tabela de destino top_customer
.
Gráfico de linhagem
Os gráficos de linhagem representam informações coletadas pela API Data Lineage para uma entrada específica do Dataplex Catalog. Um gráfico de linhagem mostra a linhagem que está upstream ou downstream de uma única entrada raiz. Raiz se refere à entrada para a qual você está visualizando a linhagem.
![O exemplo de gráfico mostra dados de duas tabelas sendo transformados e mesclados
em uma nova tabela, com um painel de detalhes mostrando o código SQL fixado na parte de baixo.](https://cloud.google.com/static/dataplex/images/lineage_total_end_screen.png?hl=pt-br)
O Dataplex funciona com a API Data Lineage para identificar entradas cujo nome totalmente qualificado corresponde a entidades reconhecidas pela linhagem de dados. Para entradas correspondentes do Dataplex, acesse a guia Linhagem na página de detalhes delas e confira o gráfico.
Os gráficos de linhagem mostram dois tipos de elementos:
Botões retangulares largos que representam entidades envolvidas na construção de informações de linhagem como fontes ou destinos de um evento de linhagem.
Botões quadrados menores que representam processos responsáveis por criar ou atualizar as entidades de origem ou de destino. Os botões de processo usam ícones específicos do sistema de origem que os informou à API Data Lineage. Por exemplo, os jobs do BigQuery usam o ícone
.
Visualização do caminho de linhagem
As visualizações de caminho de linhagem ajudam a entender os links de linhagem entre dois recursos selecionados. Compare isso com o gráfico de linhagem, que mostra a linhagem upstream ou downstream de uma única entrada raiz, possivelmente para várias origens ou destinos.
Você escolhe o recurso raiz e um recurso de destino, e o Console do Google Cloud mostra os links de linhagem entre os dois recursos. Outros recursos e processos que não estão em um caminho entre os dois recursos são ocultados da visualização do caminho.
![Exemplo da visualização do caminho de linhagem no console do Google Cloud.](https://cloud.google.com/static/dataplex/images/lineage_path_visualization.png?hl=pt-br)
Visualização de lista de linhagem
A visualização de lista de linhagem mostra informações detalhadas de linhagem para entidades em uma única tabela.
Em comparação com o gráfico de linhagem, que é melhor para visualizar gráficos de linhagem relativamente pequenos, a visualização de lista de linhagem permite que você acesse informações de linhagem para entidades com muitas conexões.
A imagem a seguir mostra um exemplo da visualização de lista de linhagens no console do Google Cloud. A lista a seguir descreve a imagem com mais detalhes.
![Exemplo da visualização de lista de linhagens no console do Google Cloud.](https://cloud.google.com/static/dataplex/images/lineage_list_view.png?hl=pt-br)
Cada linha na tabela representa um único link de linhagem entre duas entradas. No gráfico, esses nomes são representados como os links de linhagem entre duas entradas, incluindo todos os nós de processo entre elas. Por exemplo,
Source
eTarget
são nós de recursos, com possivelmente vários nós de processo no meio.A opção Direction especifica a parte do fluxo de dados a ser mostrada na lista em relação ao recurso raiz:
Upstream: mostra informações de linhagem para entradas que são fontes de dados da entrada selecionada. No gráfico de linhagem, essas entradas são as que aparecem à esquerda da entrada selecionada.
Downstream: mostra informações de linhagem para entradas que usam ou são derivadas da entrada selecionada. No gráfico de linhagem, essas entradas são as que aparecem à direita da entrada selecionada.
A opção Período permite filtrar informações de linhagem com base no momento em que ela ocorreu:
Horário de início: mostra a linhagem que ocorreu após o horário de início.
Hora de término: mostra a linhagem que ocorreu antes do horário de término.
Profundidade se refere a quão longe do recurso raiz está um recurso de origem ou derivado. A visualização de lista mostra até 1.000 links de linhagem, com a profundidade máxima da raiz como 10 links de linhagem. Se houver alguma linhagem fora desse intervalo, você vai receber uma notificação. Para conferir a linhagem fora desse intervalo, selecione o nome de uma entidade diferente na visualização de lista.
O painel Detalhes mostra informações sobre a origem do link, o destino do link e todos os processos que criaram esse link.
É possível personalizar as colunas que aparecem na tabela e filtrar os resultados. Também é possível exportar os resultados para um arquivo CSV.
Rastreamento automatizado da linhagem de dados
Quando você ativa a API Data Lineage, Google Cloud os sistemas compatíveis com a linhagem de dados começam a informar o movimento dos dados. Cada sistema integrado pode enviar informações de linhagem para diferentes origens de dados. Para mais informações sobre todos os produtos com suporte, consulte as seções a seguir.
BigQuery
A ativação da linhagem de dados no projeto do BigQuery faz com que o Dataplex registre automaticamente as informações de linhagem para:
Novas tabelas como resultado dos seguintes jobs do BigQuery:
- Jobs de cópia
- Jobs de carga que usam o URI do Cloud Storage para carregar dados em qualquer formato permitido do Cloud Storage.
- Jobs de consulta que usam a seguinte linguagem de definição de dados (DDL) no GoogleSQL:
Tabelas atuais como resultado do uso das seguintes instruções da linguagem de manipulação de dados (DML) no GoogleSQL:
- SELECT em relação a qualquer um dos tipos de tabela listados:
- INSERT SELECT
- MERGE
- ATUALIZAÇÃO
- EXCLUIR
Os jobs de cópia, consulta e carregamento do BigQuery são representados
como processos. Para conferir os detalhes do processo,
clique em 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 oferece suporte à integração com os seguintes serviçosGoogle Cloud :
Linhagem de dados para origens de dados personalizadas
É possível usar a API Data Lineage para registrar informações de linhagem manualmente em qualquer fonte de dados que não tenha suporte dos sistemas integrados.
O Dataplex pode criar gráficos de linhagem para a linhagem gravada manualmente se você usar um
fullyQualifiedName
que corresponda aos nomes totalmente qualificados das entradas do Dataplex Catalog. Se você quiser registrar a linhagem de uma origem de dados personalizada, crie primeiro uma entrada personalizada do Dataplex Catalog.
Cada processo para a fonte de dados personalizada pode conter a chave sql
na lista de
atributos. O valor dessa chave será usado para renderizar o destaque do código no painel de detalhes
do gráfico de linhagem de dados. A instrução SQL será exibida conforme foi
fornecida. O usuário é responsável por filtrar informações sensíveis. O
nome da chave sql
diferencia maiúsculas de minúsculas.
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 Dataplex e exibir esses eventos no console do Google Cloud. Para mais detalhes, consulte Integrar com o OpenLineage.
Limitações
- Todas as informações de linhagem são retidas no sistema por apenas 30 dias.
- As informações de linhagem persistem depois que você remove a fonte de dados relacionada. Ou seja, se você remover uma tabela do BigQuery e a entrada do Dataplex Catalog, ainda será possível ler a linhagem dessa tabela usando a API por até 30 dias.
Acessar a linhagem de dados
Para mais informações sobre como acessar a linhagem de dados, consulte Usar a linhagem de dados com Google Cloud sistemas e a API Data Lineage.
Preços
O Dataplex 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 Dataplex, no relatório do Cloud Billing, use o rótulo
goog-dataplex-workload-type
com o valorLINEAGE
.Se você chamar a API Data Lineage
Origin
sourceType
com um valor diferente deCUSTOM
, isso vai gerar custos adicionais.
A seguir
Saiba como rastrear a linhagem de dados de um job de consulta e cópia de tabelas do BigQuery.
Aprenda a usar a linhagem de dados com Google Cloud sistemas.
Para informações administrativas, consulte considerações sobre a linhagem e registros de auditoria da linhagem de dados.