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_1 Esse 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/orders Esse 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_summary Esse 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.com e a porta 27017.
    • Uma definição de fonte de dados do tipo Amazon S3, com o host s3://mybigbucket.com.
  • 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.

  1. No projeto, vá para a guia Ativos e clique em Novo ativo > Importar metadados para ativos de dados.
  2. Forneça um nome para sua importação, por exemplo, OpenLineage example event.
  3. Selecione a meta Importar metadados de linhagem.
  4. Na seção de fonte de dados, selecione a definição de fonte de dados OpenLineage com o host customETLtoolHost .
  5. Na seção Adicionar entradas do arquivo, clique em Adicionar. Carregue seu arquivo.zip com o evento OpenLineage.
  6. Opcionalmente, defina outras opções de importação de metadados.
  7. 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:

  1. Na guia Mapeamentos ativos, clique em Criar mapeamento.
  2. 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.
  3. 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 digite custom_etl_tool no campo de valor.
  4. 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
  5. Selecione uma definição de origem de dados. Procure a definição da fonte de dados OpenLineage com o host customETLtoolHost que você criou anteriormente.
  6. 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:

  1. Na guia Mapeamentos ativos, clique em Criar mapeamento.
  2. Na seção Rule scope (Escopo da regra ), selecione Dataset namespace (entradas, saídas).
  3. 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, digite mongodb://.
  4. 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
  5. 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.com e a porta 27017.

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.

  1. No projeto, vá para a guia Ativos e clique em Novo ativo > Importar metadados para ativos de dados.
  2. Forneça um nome para sua importação, por exemplo, OpenLineage example event.
  3. Selecione a meta Importar metadados de linhagem.
  4. Na seção de fonte de dados, selecione a definição de fonte de dados OpenLineage com o host customETLtoolHost .
  5. Na seção Adicionar entradas do arquivo, clique em Adicionar. Carregue seu arquivo.zip com o evento OpenLineage.
  6. Opcionalmente, defina outras opções de importação de metadados.
  7. 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.