Linhagem externa

O Catálogo do Unity captura automaticamente a linhagem de dados em tempo de execução nas consultas que são executadas no Azure Databricks. No entanto, você pode ter workloads que são executados fora do Azure Databricks (por exemplo, ETL de primeira milha ou BI de última milha). O Catálogo do Unity permite adicionar metadados de linhagem externa para aumentar a linhagem de dados do Azure Databricks que ele captura automaticamente, dando a você uma exibição de linhagem de ponta a ponta no Catálogo do Unity. Isso é útil quando você deseja capturar de onde os dados vieram (por exemplo, Salesforce ou MySQL) antes de serem ingeridos no Catálogo do Unity ou onde os dados são consumidos fora do Catálogo do Unity (por exemplo, Tableau ou Power BI).

Você pode adicionar linhagem externa de duas maneiras:

O grafo de linhagem a seguir mostra duas tabelas externas no MySQL e no PostgreSQL que foram ingeridas no Azure Databricks como uma tabela gerenciada do Unity Catalog, com colunas transformadas em uma coluna release_date, e depois consumidas por um relatório externo.

Um grafo de linhagem mostrando tabelas de origem externas e um relatório de destino conectado a uma tabela do Unity Catalog, com o botão Criar linhagem externa no canto superior direito.

Para obter informações gerais sobre a linhagem de dados no Azure Databricks, consulte Linhagem no Catálogo do Unity.

Requisitos

Para adicionar metadados de linhagem externa no Catálogo do Unity, você deve ter os seguintes privilégios, dependendo da tarefa específica:

  • Para criar um objeto de metadados externos protegível no Unity Catalog, você deve ter o privilégio CREATE EXTERNAL METADATA no metastore.
  • Para especificar relações de linhagem entre um objeto de metadados externo e qualquer outro objeto do Catálogo do Unity, você deve ter o MODIFY privilégio no objeto de metadados externos.
  • Para especificar uma relação de linhagem downstream com um objeto do Catálogo do Unity, você deve ter privilégios de leitura no objeto (por exemplo, SELECT em uma tabela).
  • Para especificar uma relação de linhagem upstream com um objeto do Catálogo do Unity, você deve ter privilégios de gravação no objeto (por exemplo, MODIFY em uma tabela).

Adicionar metadados de linhagem externa

Para adicionar metadados de linhagem externa:

  1. Crie um objeto securizável de metadados externos no Unity Catalog.

    Esse objeto representa uma entidade em um sistema externo, como um painel no Tableau.

  2. Configure uma relação de linhagem entre o objeto de metadados externo e outro objeto do Catálogo do Unity, como uma tabela, um modelo, um caminho ou outro objeto de metadados externos.

    Quando você cria relações de linhagem, o objeto de metadados externos aparece na visualização de grafo de linhagem.

Você pode criar objetos de metadados externos e configurar relações de linhagem usando a interface do usuário do Catalog Explorer. Para começar a partir de um grafo de linhagem existente, clique em Criar linhagem externa no canto superior direito do grafo. Você também pode começar na seção Dados externos no Catalog Explorer, conforme descrito nas seções a seguir.

Criar um objeto de metadados externos

Você pode criar um objeto de metadados externos usando o Gerenciador de Catálogos ou a API de Metadados Externos.

Para usar o Catalog Explorer para criar um objeto de metadados externos:

  1. No workspace do Azure Databricks, clique no ícone Dados.Catálogo.

  2. Clique no botão Dados >externos, vá para a guia Metadados Externos e clique em Criar metadados externos.

  3. Especifique os detalhes dos metadados.

    Obrigatório:

    • Nome: insira um nome legível por humanos que ajude os usuários Azure Databricks a entender o que estão vendo na linhagem. Objetos de metadados externos são objetos protegíveis do Catálogo do Unity, portanto, o nome deve seguir as regras de nomenclatura de objeto do Catálogo do Unity. Consulte os requisitos de nomenclatura de objeto protegível.
    • Tipo de sistema: selecione na lista de dados externos comuns e sistemas de BI. Se você não encontrar o seu, selecione Personalizado.
    • Tipo de entidade: insira o tipo de objeto, como "table" ou "dashboard".

    Opcional:

    • URL: insira a URL do objeto se desejar que os visualizadores de grafo de linhagem possam clicar até o ativo externo (como um painel do Tableau, por exemplo).
    • Descrição

    Avançado:

    • Colunas: se você quiser fazer o mapeamento em nível de coluna desse objeto externo para outro objeto do Catálogo do Unity, insira nomes de coluna. Selecione a interface do usuário para inseri-las uma de cada vez ou a Entrada de Texto para inserir uma lista delimitada por vírgulas em uma única caixa de texto.
    • Propriedades: se houver outras propriedades que você deseja rastrear na linhagem, insira-as como pares chave-valor JSON. Você pode usar a interface do usuário para inserir cada par chave-valor ou inserir um objeto JSON completo.
  4. Clique em Criar.

    Uma caixa de diálogo oferece a opção de exibir o objeto de metadados externos ou criar relações de linhagem para o objeto.

Criar relações de linhagem

Você pode criar relações de linhagem usando o Gerenciador de Catálogos, a API de Linhagem Externa ou o SDK do Databricks para Python.

Para adicionar relações entre um objeto de metadados externo e outros objetos do Catálogo do Unity:

  1. Siga o prompt mencionado acima ou localize o objeto de metadados externos existente no Gerenciador de Catálogos:

    1. Clique no ícone Dados.Catálogo
    2. Clique no botão Dados externos >
    3. Vá para a guia Metadados Externos e selecione o objeto de metadados externos.
  2. Clique em Criar relação de linhagem.

  3. Selecione se deseja criar uma relação upstream ou downstream.

  4. Insira o tipo de objeto para o qual você deseja criar a relação:

    • Tabela: selecione a tabela usando a caixa de diálogo de pesquisa.
    • Modelo: selecione o modelo usando a caixa de diálogo de pesquisa e selecione a versão do modelo.
    • Caminho: Para volumes ou locais externos, insira o caminho.
    • Metadados externos: selecione o objeto de metadados externos no menu suspenso.
  5. (Opcional) Clique em Avançado para adicionar:

    • Mapeamentos de coluna entre o objeto de metadados externo e o objeto de origem ou destino.
    • Outros metadados como pares de valores-chave JSON. Por exemplo, você pode usá-las para inserir o texto da consulta que criou uma tabela a partir do objeto de metadados externos ou anotações que explicam o fluxo de trabalho externo que gerou a relação.
  6. Clique em Criar.

Agora você pode ver a relação de linhagem externa na guia Linhagem dos objetos relacionados.

Modelar relações de linhagem externa

Ao adicionar linhagem externa manualmente, use os seguintes padrões para modelar relações mais complexas:

  • Conecte duas tabelas do Catálogo do Unity: para especificar uma relação de linhagem entre duas tabelas registradas no Catálogo do Unity, crie um objeto de metadados externo que esteja entre elas. Especifique uma tabela como upstream para o objeto de metadados externo e a outra como downstream para que elas apareçam conectadas no grafo de linhagem.
  • Adicione vários níveis de linhagem: para anotar dados que passam por vários sistemas antes de entrar Azure Databricks, crie vários objetos de metadados externos e configure relações de linhagem externas entre cada um deles.
  • Adicionar linhagem de nível de coluna: especifique os nomes de coluna ao criar o objeto de metadados externo e mapeie as colunas de origem e destino ao configurar a relação de linhagem.

Limitações

  • A linhagem externa não é registrada nas tabelas do sistema de linhagem (system.access.table_lineage e system.access.column_lineage).
  • Você pode criar até 10.000 objetos de metadados externos e 100.000 relações de linhagem externas por metastore. Confira Limites de recursos.

Recursos adicionais