Pular para o conteúdo principal

Linhagem de dados no Unity Catalog

A linhagem de dados mostra de onde os dados no Databricks vieram e para onde vão: quais consultas e arquivos populam uma tabela, quais Job e Notebook a transformam e quais dashboards consomem os resultados.

O Unity Catalog captura automaticamente a linhagem para as consultas executadas no Databricks, até o nível da coluna, e a agrega em todas as áreas de trabalho anexadas ao metastore. A linhagem no Unity Catalog permite que você:

  • Realizar análise de impacto : Antes de alterar ou excluir uma tabela ou coluna, identifique as tabelas downstream, Jobs e painéis que dependem dela.
  • Investigue as causas raiz: quando um relatório downstream apresenta resultados inesperados, rastreie as fontes upstream para encontrar onde os dados divergiram.
  • Acompanhe o fluxo de dados confidenciais : Para auditorias de compliance, verifique onde os dados regulamentados se originam, como eles são transformados e quais ativos a jusante os consomem.
  • Compreender as dependências entre equipes: Identifique quais equipes são proprietárias das fontes de origem das quais se depende, ou quais equipes consomem as tabelas.

A linhagem externa estende o gráfico de linhagem além do Databricks. Registrar fontes upstream como Salesforce ou MySQL e ferramentas downstream como Tableau ou Power BI como ativos externos no Unity Catalog, e eles surgem ao lado de suas tabelas do Unity Catalog em um único gráfico. Consulte Linhagem externa.

A imagem a seguir é um exemplo de gráfico de linhagem. Nós podem representar tabelas e views, versões de modelo de ML, ativos externos e caminhos de arquivo.

Visão geral da linhagem.

Requisitos

Para capturar a linhagem de dados usando o Unity Catalog:

  • As tabelas devem ser registradas em um metastore do Unity Catalog.
  • Ativos externos (aqueles não registrados no metastore do Unity Catalog) devem ser adicionados como objetos de metadados externos no Unity Catalog, configurados para ter relacionamentos com outros objetos protegíveis registrados no seu metastore do Unity Catalog. Consulte Linhagem externa.
  • As consultas devem usar o Spark DataFrame (por exemplo, Spark SQL funções que retornam um DataFrame) ou Databricks SQL interfaces como o Notebook ou o editor de consultas SQL.

Para view linhagem de dados:

  • Você deve ter pelo menos o privilégio BROWSE no catálogo pai da tabela ou view. O catálogo principal também deve ser acessível a partir do workspace. Consulte a vinculação workspace-catalog.
  • Para notebooks, jobs ou painéis, é preciso ter permissões nestes objetos conforme definido pelas configurações de controle de acesso no workspace. Para obter detalhes, consulte Permissões.
  • Para um pipeline habilitado para o Unity Catalog, o senhor deve ter permissão CAN VIEW no pipeline.

Requisitos de computação:

  • O acompanhamento da transmissão da linhagem entre as tabelas Delta requer Databricks Runtime 11.3 LTS ou acima.
  • O acompanhamento da linhagem de colunas para cargas de trabalho de pipeline declarativo LakeFlow Spark requer Databricks Runtime 13.3 LTS ou superior.

Requisitos de rede:

Visualizar linhagem no Explorador de Catálogos

Para usar o Catalog Explorer para view a linhagem da tabela:

  1. Em seu site Databricks workspace, clique em Ícone de dados. Catalog .

  2. Pesquise ou procure sua tabela.

  3. Selecione a linhagem tab. O painel de linhagem aparece e exibe tabelas relacionadas.

  4. Para view um gráfico interativo da linhagem de dados, clique em See Lineage gráfico .

    Em default, um nível é exibido no gráfico. Clique no Ícone Plus Sign ícone em um nó para revelar mais conexões, se estiverem disponíveis.

  5. Clique no ícone em uma aresta de conexão no gráfico de linhagem para abrir o painel de detalhes da linhagem .

    O painel Detalhes da linhagem mostra informações sobre a conexão, incluindo as tabelas de origem e destino.

    Lineage gráfico.

  6. Para view um ativo associado a uma tabela, selecione o ativo no painel Detalhes da linhagem . Você pode filtrar por Notebook, Job, pipeline e consultas.

  7. Para view a linhagem em nível de coluna, clique em uma coluna no gráfico para exibir os links para as colunas relacionadas. Por exemplo, clicar na coluna revenue neste gráfico de exemplo mostra as colunas anteriores das quais a coluna foi derivada:

    Linhagem completa da coluna do menu.

ver Linhagem de trabalho

Para view a linhagem do trabalho, acesse a linhagem de uma tabela tab, selecione Jobs e selecione Downstream . O nome do trabalho aparece em Job Name como um consumidor da tabela.

visualizar a linhagem do painel

Para acessar o site view dashboard lineage, vá para Lineage tab de uma tabela e clique em Dashboards . O painel aparece em Nome do painel como consumidor da tabela.

Obter linhagem usando o Genie Code

O Genie Code pode responder a perguntas de linhagem em linguagem natural.

Para obter informações de linhagem usando Genie Code:

  1. Na barra lateral do site workspace, clique em Ícone de dados. Catalog .
  2. Navegue ou pesquise o catálogo, clique no nome do catálogo e, em seguida, clique em Ícone de cor do assistente. Ícone do código Genie no canto superior direito.
  3. No prompt do Genie Code, digite:
    • /getTableLineages Visualizar dependências upstream e downstream.
    • /getTableInsights Para acessar percepções orientadas por metadados, como atividade do usuário e padrões de query.

Essas queries permitem que o Genie Code responda a perguntas como “mostrar linhagens downstream” ou “quem consulta esta tabela com mais frequência.”

Genie Code fornece linhagem de tabela e observação.

Consultar a linhagem com tabelas do sistema

Você pode usar as tabelas do sistema de linhagem para consultar dados de linhagem programaticamente. Para obter instruções detalhadas, consulte a Referência de tabelas do sistema e a Referência de tabelas do sistema de linhagem.

Permissões

Os gráficos de linhagem compartilham o mesmo modelo de permissão que o Unity Catalog. Tabelas e outros objetos de dados registrados no metastore do Unity Catalog são visíveis apenas para usuários que têm pelo menos BROWSE permissões nesses objetos. Se um usuário não tiver o privilégio BROWSE ou SELECT em uma tabela, ele não poderá explorar a linhagem dela.

A linhagem é agregada em todos os workspaces anexados a um metastore do Unity Catalog, então a linhagem capturada em um workspace é visível em qualquer outro workspace que compartilha esse metastore, desde que o usuário tenha permissões de objeto adequadas. Informações detalhadas sobre objetos no nível do workspace, como notebooks e dashboards, em outros workspaces são mascaradas. Consulte Limitações.

Por exemplo, execute o seguinte comando para userA:

SQL
GRANT USE SCHEMA on lineage_data.lineagedemo to `userA@company.com`;
GRANT SELECT on lineage_data.lineagedemo.menu to `userA@company.com`;

Quando userA visualiza o gráfico de linhagem da tabela lineage_data.lineagedemo.menu, eles veem a tabela menu. Não é possível ver informações sobre tabelas associadas, como a tabela downstream lineage_data.lineagedemo.dinner. A dinner tabela aparece como um maskeduserA para, e userA não é possível expandir o gráfico para revelar tabelas downstream de tabelas para as quais não há permissão de acesso.

Se o senhor executar o seguinte comando para conceder a permissão BROWSE a userB, esse usuário poderá view o gráfico de linhagem para qualquer tabela no esquema lineage_data:

SQL
GRANT BROWSE on lineage_data to `userB@company.com`;

Usuários de linhagem também devem ter permissões específicas para view objetos do workspace, como notebooks, jobs e dashboards. Informações detalhadas sobre esses objetos só são visíveis no workspace onde foram criados.

Para obter mais informações sobre como gerenciar o acesso a objetos protegidos em Unity Catalog, consulte gerenciar privilégios em Unity Catalog. Para obter mais informações sobre como gerenciar o acesso a objetos do site workspace, como Notebook, Job e dashboards, consulte Listas de controle de acesso.

Retenção

A linhagem de dados exibida no Catalog Explorer é retida indefinidamente. Todos os dados de linhagem capturados após 1º de setembro de 2024 estão disponíveis. Para metastores criados após essa data, o Catalog Explorer inclui uma opção **Todo o período** no dropdown de intervalo de tempo de linhagem. Para metastores mais antigos, o dropdown inclui uma opção Todos disponíveis que começa em 1º de setembro de 2024. A seleção **default** é **1 ano**.

As tabelas do sistema de linhagem (system.access.table_lineage e system.access.column_lineage) mantêm uma janela contínua de dados de 1 ano. Consulte Referência das tabelas do sistema de lineage.

Limitações

A linhagem de dados tem as seguintes limitações. Essas limitações também se aplicam às tabelas do sistema de linhagem:

  • Os dados de linhagem coletados antes de 1º de setembro de 2024 não estão disponíveis.
  • Os trabalhos que usam a solicitação Jobs API runs submit ou o tipo de tarefa spark submit não estão disponíveis na exibição de linhagem. A linhagem de nível de tabela e coluna ainda é capturada para esses fluxos de trabalho, mas o link para a execução do trabalho não é capturado.
  • A linhagem não é preservada para catálogos, esquemas, tabelas, views ou colunas renomeados.
  • Se o senhor usar Spark SQL dataset checkpointing, a linhagem não será capturada.
  • Unity Catalog captura a linhagem de LakeFlow Spark Declarative Pipelines na maioria dos casos, mas a cobertura é incompleta para pipelines que usam tabelas PRIVADAS.
  • Resilient Distributed Datasets (RDDs) não são capturados na linhagem.
  • A visualização temporária global não é capturada na linhagem.
  • As transações geram um registro de linhagem à medida que cada leitura e gravação ocorre. Os eventos de linhagem persistem mesmo se a transação for revertida.
  • Tabelas abaixo de system.information_schema não são capturadas na linhagem.
  • O Unity Catalog captura a linhagem até o nível da coluna, tanto quanto possível. No entanto, há alguns casos em que a linhagem em nível de coluna não pode ser capturada. Isso inclui:
    • A linhagem da coluna não pode ser capturada se a origem ou o destino forem referenciados como caminho (Exemplo: select * from delta."s3://<bucket>/<path>"). A linhagem de coluna é suportada somente quando a origem e o destino são referenciados pelo nome da tabela (Exemplo: select * from <catalog>.<schema>.<table>).

    • Uso de funções definidas pelo usuário (UDFs), que podem obscurecer o mapeamento entre a origem e a coluna de destino.

Recursos adicionais