OpenLineage tutorial de mapeamentos
Este tutorial mostra em um cenário de exemplo como os mapeamentos podem ser usados para resolver o problema da linhagem incompleta.
O objetivo deste tutorial é criar mapeamentos OpenLineage para visualizar dados de eventos OpenLineage na linhagem. Como resultado, a linhagem, que está incompleta e não é precisa antes de você concluir as etapas, mostra um fluxo de dados correto de ponta a ponta.
Neste tutorial, o seguinte evento OpenLineage é usado:
{
"eventTime": "2025-08-21T10:03:33.616Z",
"schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent",
"eventType": "COMPLETE",
"job": {
"namespace": "custom_etl_tool",
"name": "workspace_name/folder_1/folder_2/job_name_1"
},
"inputs": [
{
"namespace": "s3://mybigbucket.com",
"name": "sales/public/orders",
"facets": {
"schema": {
"fields": [
{
"name": "my_one_field",
"type": "integer"
}
]
}
}
}
],
"outputs": [
{
"namespace": "mongodb://analytics-db.company.com:27017",
"name": "customerdb.mycollection.sales_summary",
"facets": {
"schema": {
"fields": [
{
"name": "my_one_field",
"type": "integer"
}
]
}
}
}
]
}
Esse evento contém três seções:
Trabalho
Esta seção representa o processo que conecta os dois conjuntos de dados. Ele tem os seguintes elementos:
- Espaço de Nomes:
custom_etl_tool - Nome:
workspace_name/folder_1/folder_2/job_name_1Esse trabalho usa uma ferramenta ETL personalizada. Não está claro em qual tecnologia o trabalho está sendo executado (por exemplo, Python ou Java), portanto, é necessário um mapeamento com uma tecnologia personalizada.
Entrada
Esta seção representa os conjuntos de dados que são lidos. Ele tem os seguintes elementos:
- Espaço de Nomes:
s3://mybigbucket.com - Nome:
sales/public/ordersEsse conjunto de dados usa uma tecnologia conhecida e suportada, Amazon S3.
Saída
Esta seção representa os conjuntos de dados que são gravados. Ele tem os seguintes elementos:
- Espaço de Nomes:
mongodb://analytics-db.company.com:27017 - Nome:
customerdb.mycollection.sales_summaryEsse conjunto de dados usa uma tecnologia conhecida, mas sem suporte, MongoDB,, portanto, é necessário um mapeamento.
Pré-requisitos
Os seguintes pré-requisitos são necessários:
- A linhagem de dados deve ser configurada.
- É necessário um projeto quando você tem a função de administrador ou editor.
- Você deve ter a permissão Manage data lineage (Gerenciar linhagem de dados ) para criar tecnologias e mapeamentos.
- As seguintes definições de fonte de dados devem ser criadas:
- Uma definição de fonte de dados do tipo OpenLineage, com o host
customETLtoolHost. - Uma definição de fonte de dados do tipo OpenLineage, com o host
analytics-db.company.come a porta27017. - Uma definição de fonte de dados do tipo Amazon S3, com o host
s3://mybigbucket.com.
- Uma definição de fonte de dados do tipo OpenLineage, com o host
- Prepare seu evento OpenLineage. O evento deve ser adicionado no formato JSON e compactado em um arquivo.zip.
Você trabalha com mapeamentos em Data > Data lineage > Map lineage > Map OpenLineage.
1. Opcional: Revisar a linhagem incompleta
Para entender melhor como os mapeamentos melhoram a qualidade da linhagem, importe o evento OpenLineage antes de os mapeamentos serem criados.
- No projeto, vá para a guia Ativos e clique em Novo ativo > Importar metadados para ativos de dados.
- Forneça um nome para sua importação, por exemplo, OpenLineage example event.
- Selecione a meta Importar metadados de linhagem.
- Na seção de fonte de dados, selecione a definição de fonte de dados OpenLineage com o host
customETLtoolHost. - Na seção Adicionar entradas do arquivo, clique em Adicionar. Carregue seu arquivo.zip com o evento OpenLineage.
- Opcionalmente, defina outras opções de importação de metadados.
- Salve suas alterações.
Como resultado, a linhagem de dados não é precisa. Os namespaces são mostrados como strings brutas, a estrutura do ativo não está correta e são exibidos espaços reservados de tipos desconhecidos.
2. Revisar um mapeamento para o conjunto de dados de entrada
Analise a seguinte seção do evento:
{
"namespace": "s3://mybigbucket.com",
"name": "sales/public/orders"
.....
}
O namespace contém um prefixo s3://, que corresponde a Amazon S3. O campo de nome sugere que a estrutura de dados é pasta/pasta/arquivo. Como o Amazon S3 é uma tecnologia conhecida, um mapeamento padrão já foi criado para ele. Você pode selecioná-lo na lista da guia Mapeamentos ativos e verificar a configuração do mapeamento. Pesquise o s3:// mapeamento.
Esse mapeamento tem a seguinte configuração:
- Condições de mapeamento:
- Escopo da regra: Conjuntos de dados.
- Método de correspondência: Prefixo do espaço de nome.
- Prefixo do espaço de nome:
s3://
- Mapeamento de ações:
- Tipo de tecnologia: Amazon S3 (tipo padrão, já definido).
- Definição da fonte de dados: Atribuído automaticamente
3. Criar um mapeamento para o trabalho
Analise a seguinte seção do evento:
{
"namespace": "custom_etl_tool",
"name": "workspace_name/folder_1/folder_2/job_name_1"
....
}
Como se trata de uma ferramenta ETL personalizada, você precisa criar um mapeamento.
Conclua estas etapas:
- Na guia Mapeamentos ativos, clique em Criar mapeamento.
- Na seção Rule scope (Escopo da regra ), é necessário selecionar o tipo do namespace. A ferramenta ETL personalizada é referenciada na seção de trabalho do evento, portanto, essa regra de mapeamento é baseada no namespace do trabalho. Selecione o espaço de nome do trabalho.
- Em seguida, decida sobre o método de correspondência de namespace. O valor desse namespace de trabalho no evento é
custom_etl_tool. Esse valor é estático e não contém um nome de host. Você precisa fornecer um valor de namespace inteiro. Selecione o valor exato do Namespace e digitecustom_etl_toolno campo de valor. - A tecnologia da ferramenta ETL personalizada não existe. Na página seguinte, na seção de tipo de tecnologia, clique em Selecionar > Nova tecnologia. Forneça os seguintes detalhes:
- Nome da tecnologia: Ferramenta ETL personalizada
- Nome da filial: Default
- Tipo de tecnologia: Ferramenta ETL
- Número de níveis da hierarquia de ativos: 3
- Nomes de nível de hierarquia: Workspace, Folder, Job
- Nível de ativo recursivo: Pasta
- Selecione uma definição de origem de dados. Procure a definição da fonte de dados OpenLineage com o host
customETLtoolHostque você criou anteriormente. - Salve o mapeamento.
4. Criar um mapeamento para o conjunto de dados de saída
Analise a seguinte seção do evento:
{
"namespace": "mongodb://analytics-db.company.com:27017",
"name": "customerdb.mycollection.sales_summary"
....
}
O namespace contém um prefixo mongodb://, que corresponde a MongoDB. O campo de nome sugere que a estrutura de dados é um banco de dados/coleção/documento. Esse tipo de tecnologia não é suportado por padrão, portanto, é necessária uma nova tecnologia personalizada.
Crie um mapeamento para esse conjunto de dados:
- Na guia Mapeamentos ativos, clique em Criar mapeamento.
- Na seção Rule scope (Escopo da regra ), selecione Dataset namespace (entradas, saídas).
- O namespace contém um prefixo
mongodb://e valores de host e porta. Selecione Namespace prefix como método de correspondência. No campo Prefixo do espaço de nome, digitemongodb://. - Na página seguinte, na seção de tipo de tecnologia, clique em Selecionar > Nova tecnologia. Forneça os seguintes detalhes:
- Nome da tecnologia: MongoDB
- Nome da filial: Doc
- Tipo de tecnologia: Banco de dados
- Número de níveis da hierarquia de ativos: 3
- Nomes de nível de hierarquia: Banco de dados, Coleção, Documento
- Nível de ativo recursivo: Nenhum
- Na seção de definição da fonte de dados, selecione a opção Atribuir automaticamente. Com base no valor do prefixo estático e nos valores dinâmicos de host e porta, todos os dados são associados à definição da fonte de dados OpenLineage com o host
analytics-db.company.come a porta27017.
5. Executar importação de metadados
Crie e execute uma importação de metadados com o evento de exemplo OpenLineage para ver como a linhagem é alterada quando as novas regras de mapeamento são processadas.
- No projeto, vá para a guia Ativos e clique em Novo ativo > Importar metadados para ativos de dados.
- Forneça um nome para sua importação, por exemplo, OpenLineage example event.
- Selecione a meta Importar metadados de linhagem.
- Na seção de fonte de dados, selecione a definição de fonte de dados OpenLineage com o host
customETLtoolHost. - Na seção Adicionar entradas do arquivo, clique em Adicionar. Carregue seu arquivo.zip com o evento OpenLineage.
- Opcionalmente, defina outras opções de importação de metadados.
- Salve suas alterações.
6. Revisar a linhagem
Quando os novos mapeamentos são processados, a linhagem contém dados precisos:
- Amazon S3 o conjunto de dados é resolvido na estrutura Bucket > Pasta > Arquivo.
- MongoDB o conjunto de dados é resolvido na estrutura Banco de dados > Coleção > Documento.
- Os trabalhos da ferramenta ETL personalizada são adicionados em uma estrutura lógica Workspace > Folder > Folder > Job.