A linhagem de dados é um recurso do Dataflow que permite rastrear como os dados se movimentam nos sistemas: origem, destino e quais transformações são aplicadas a eles.
Cada pipeline executado usando o Dataflow tem vários recursos de dados associados. A linhagem de um recurso de dados inclui a origem, o que acontece com ele e para onde ele se move ao longo do tempo. Com a linhagem de dados, é possível rastrear o movimento de ponta a ponta dos seus ativos de dados, da origem ao destino final.
Quando você ativa a linhagem de dados para seus jobs do Dataflow, o Dataflow captura eventos de linhagem e os publica na API Data Lineage do Dataplex Universal Catalog.
Para acessar informações de linhagem pelo Dataplex Universal Catalog, consulte Usar a linhagem de dados com os sistemas do Google Cloud Platform.
Antes de começar
Configure o projeto:
- Sign in to your Google Cloud Platform account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Dataplex, BigQuery, and Data lineage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Verify that billing is enabled for your Google Cloud project.
-
Enable the Dataplex, BigQuery, and Data lineage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Leitor do Dataplex Catalog (
roles/dataplex.catalogViewer) no projeto de recursos do Dataplex Universal Catalog. -
Leitor da linhagem de dados (
roles/datalineage.viewer) no projeto em que você usa o Dataflow -
Leitor do Dataflow (
roles/dataflow.viewer) no projeto em que você usa o Dataflow - A linhagem de dados é compatível com as versões 2.63.0 e mais recentes do SDK do Apache Beam.
- É necessário ativar a linhagem de dados para cada job.
- A captura de dados não é instantânea. Pode levar alguns minutos para que os dados de linhagem do job do Dataflow apareçam no Dataplex Universal Catalog.
As seguintes fontes e destinos são compatíveis:
- Apache Kafka
- O BigQuery (jobs de streaming em Python usam o método legado
STREAMING_INSERT, que não oferece suporte à linhagem de dados. Para usar a linhagem de dados, mude para o métodoSTORAGE_WRITE_APIrecomendado. Para mais informações, consulte Gravar do Dataflow para o BigQuery. - Bigtable
- Cloud Storage
- JDBC (Java Database Connectivity)
- Pub/Sub
- Spanner (fluxo de alterações não disponível)
Os modelos do Dataflow que usam essas origens e destinos também capturam e publicam automaticamente eventos de linhagem.
process_id: um identificador exclusivo que o Dataplex Universal Catalog usa para agrupar execuções de jobs. Se não for especificado, o nome do job será usado.process_name: um nome legível para o processo de linhagem de dados. Se não for especificado, o nome do job com o prefixo"Dataflow "será usado.- Saiba mais sobre a linhagem de dados.
- Saiba como usar a linhagem de dados.
No Dataflow, também é necessário ativar a linhagem no nível do job. Consulte Ativar a linhagem de dados no Dataflow neste documento.
Funções exigidas
Para receber as permissões necessárias para visualizar gráficos de visualização de linhagem, peça ao administrador para conceder a você os seguintes papéis do IAM:
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Para mais informações sobre papéis de linhagem de dados, consulte Papéis predefinidos para linhagem de dados.
Suporte e limitações
A linhagem de dados no Dataflow tem as seguintes limitações:
Ativar a linhagem de dados no Dataflow
Você precisa ativar a linhagem no nível do job. Para ativar a linhagem de dados, use a opção do serviço Dataflow enable_lineage da seguinte maneira:
Java
--dataflowServiceOptions=enable_lineage=true
Python
--dataflow_service_options=enable_lineage=true
Go
--dataflow_service_options=enable_lineage=true
gcloud
Use o
comando gcloud dataflow jobs run
com a opção additional-experiments. Se você estiver usando modelos Flex, use
o comando
gcloud dataflow flex-template run.
--additional-experiments=enable_lineage=true
Também é possível especificar um ou ambos os parâmetros a seguir com a opção de serviço:
Especifique as opções da seguinte maneira:
Java
--dataflowServiceOptions=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME
Python
--dataflow_service_options=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME
Go
--dataflow_service_options=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME
gcloud
--additional-experiments=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME
Visualizar a linhagem no catálogo universal do Dataplex
A linhagem de dados fornece informações sobre as relações entre os recursos do projeto e os processos que os criaram. É possível conferir informações de linhagem de dados no console do Google Cloud em forma de gráfico ou tabela única. Também é possível recuperar informações de linhagem de dados da API Data Lineage no formato de dados JSON.
Para mais informações, consulte Usar a linhagem de dados com os sistemas do Google Cloud Platform.
Desativar a linhagem de dados no Dataflow
Se a linhagem de dados estiver ativada para um job específico e você quiser desativá-la, cancele o job atual e execute uma nova versão sem a opção de serviço enable_lineage.
Faturamento
O uso da linhagem de dados no Dataflow não afeta sua fatura do Dataflow, mas pode gerar cobranças adicionais na fatura do Dataplex Universal Catalog. Para mais informações, consulte Considerações sobre a linhagem de dados e Preços do Dataplex Universal Catalog.