Este documento explica como integrar o OpenLineage ao Knowledge Catalog (antigo Dataplex Universal Catalog) para visualizar dados de linhagem de vários sistemas.
Visão geral
OpenLineage é uma plataforma aberta para coletar e analisar informações de linhagem de dados. Usando um padrão aberto para dados de linhagem, o OpenLineage captura eventos de linhagem de componentes de pipeline de dados que usam uma API OpenLineage para gerar relatórios sobre execuções, jobs e conjuntos de dados.
Com a API Data Lineage, é possível importar eventos do OpenLineage para mostrar na interface da Web do Knowledge Catalog junto com informações de linhagem de Google Cloud serviços como BigQuery, Serviço Gerenciado para Apache Airflow, Cloud Data Fusion e Serviço Gerenciado para Apache Spark.
Para importar eventos do OpenLineage que usam a
especificação do OpenLineage,
use o
ProcessOpenLineageRunEvent
método da API REST e mapeie as facetas do OpenLineage para os atributos da API Data Lineage.
Limitações
A API Data Lineage oferece suporte à versão principal 1 do OpenLineage.
O endpoint
ProcessOpenLineageRunEventda API Data Lineage atua apenas como um consumidor de mensagens do OpenLineage, não como um produtor. A API permite enviar informações de linhagem geradas por qualquer ferramenta ou sistema compatível com o OpenLineage para o Knowledge Catalog. Alguns Google Cloud serviços, como o Serviço Gerenciado para Apache Spark e o Serviço Gerenciado para Apache Airflow, incluem **produtores** do OpenLineage integrados que podem enviar eventos para esse endpoint, automatizando a captura de linhagem desses serviços.A API Data Lineage não oferece suporte a:
- Qualquer versão subsequente do OpenLineage com mudanças no formato da mensagem
DatasetEventJobEvent
O tamanho máximo de uma única mensagem é de 5 MB.
O comprimento de cada nome totalmente qualificado nas entradas e saídas é limitado a 4.000 caracteres.
Links são agrupados por eventos com 100 links. O número máximo agregado de links é 1.000.
O Knowledge Catalog mostra um gráfico de linhagem para cada execução de job, mostrando as entradas e saídas de eventos de linhagem. Ele não oferece suporte a processos de nível inferior, como estágios do Spark.
Mapeamento do OpenLineage
Para informações sobre o mapeamento do OpenLineage, consulte Mapeamento do OpenLineage.
Importar um evento do OpenLineage
Se você ainda não configurou o OpenLineage, consulte Introdução.
Para importar um evento do OpenLineage para o Knowledge Catalog, chame o método da API REST
ProcessOpenLineageRunEvent:
POST https://datalineage.googleapis.com/v1/projects/{project}/locations/{location}:processOpenLineageRunEvent \
--data '{"eventTime":"2023-04-04T13:21:16.098Z","eventType":"COMPLETE","inputs":[{"name":"somename","namespace":"somenamespace"}],"job":{"name":"somename","namespace":"somenamespace"},"outputs":[{"name":"somename","namespace":"somenamespace"}],"producer":"someproducer","run":{"runId":"somerunid"},"schemaURL":"https://openlineage.io/spec/1-0-5/OpenLineage.json#/$defs/RunEvent"}'
Ferramentas para enviar mensagens do OpenLineage
Para simplificar o envio de eventos para a API Data Lineage, você pode usar várias ferramentas e bibliotecas:
- Biblioteca do produtor Java do Google Cloud:o Google oferece uma biblioteca Java de código aberto para ajudar a criar e enviar eventos do OpenLineage para a API Data Lineage. Para mais informações, consulte a postagem do blog A biblioteca Java do produtor para Data Lineage agora é de código aberto. A biblioteca está disponível no GitHub e no Maven.
- Transporte do OpenLineage GCP:para produtores do OpenLineage baseados em Java, um
transporte
GcpLineage dedicado
está disponível. Ele simplifica a integração com a API Data Lineage, minimizando o código necessário para enviar eventos para a API Data Lineage. O
GcpLineageTransportpode ser configurado como o coletor de eventos para qualquer produtor do OpenLineage, como Airflow, Spark e Flink. Para mais informações e exemplos, consulte GcpLineage.
Analisar informações do OpenLineage
Para analisar os eventos importados do OpenLineage, consulte Ver gráficos de linhagem na interface do Knowledge Catalog.
Dados armazenados
A API Data Lineage não armazena todos os dados de facetas das mensagens do OpenLineage. A API Data Lineage armazena os seguintes campos de facetas:
spark_versionopenlineage-spark-versionspark-version
- todos os
spark.logicalPlan.* environment-properties(custom Google Cloud lineage faceta)origin.sourcetypeeorigin.namespark.app.idspark.app.namespark.batch.idspark.batch.uuidspark.cluster.namespark.cluster.regionspark.job.idspark.job.uuidspark.project.idspark.query.node.namespark.session.idspark.session.uuid
A API Data Lineage armazena as seguintes informações:
eventTimerun.runIdjob.namespacejob.name
A seguir
- Confira as integrações do Serviço Gerenciado para Apache Spark sem servidor e do Serviço Gerenciado para Apache Spark Hive.
- Teste em um laboratório interativo: Capture e analise atualizações de dados com a linhagem de dados e o OpenLineage