Linhagem no Catálogo Unity

Data Lineage mostra de onde os dados no Azure Databricks vieram e para onde vão: que consultas e ficheiros preenchem uma tabela, que jobs e notebooks a transformam, e que dashboards consomem os resultados.

O Unity Catalog regista automaticamente a linhagem de dados das consultas executadas no Azure Databricks, até ao nível de coluna, e agrega-a em todas as áreas de trabalho ligadas à metastore. O Lineage no Catálogo Unity permite-lhe:

  • Realize uma análise de impacto: Antes de alterar ou eliminar uma tabela ou coluna, identifique as tabelas, trabalhos e dashboards a jusante que dela dependem.
  • Investigue as causas principais: Quando um relatório a jusante apresenta resultados inesperados, siga as fontes a montante para identificar onde os dados divergiram.
  • Acompanhe o fluxo de dados sensíveis: Para auditorias de conformidade, veja de onde provêm os dados regulados, como são transformados e que ativos a jusante os consomem.
  • Compreenda as dependências entre equipas: Descubra quais as equipas que possuem as fontes a montante em que confia, ou que equipas consomem as suas tabelas.

O Unity Catalog também regista a linhagem dos serviços de modelos e dos fornecedores externos de modelos (serviços de fornecedores de modelos) que gere através do Unity Gateway. Para cada serviço, o Unity Catalog rastreia os modelos que disponibiliza e a tabela de inferência na qual regista os dados, pelo que estas dependências de IA aparecem como nós no mesmo gráfico de linhagem que as suas tabelas. Veja Modelo de via, serviço e linhagem de prestadores.

A linhagem externa estende o grafo de linhagem para além do Azure Databricks. Regista fontes a montante como Salesforce ou MySQL e ferramentas a jusante como Tableau ou Power BI como ativos externos no Catálogo Unity, e elas aparecem ao lado das tabelas do Catálogo Unity num único gráfico. Ver Linhagem externa.

O Unity Catalog também acompanha a linhagem das funções definidas pelo utilizador (UDFs). Ver Ver a linhagem da UDF.

A imagem a seguir é um gráfico de linhagem de exemplo. Os nós podem representar tabelas e vistas, versões de modelos de ML, ativos externos e caminhos de ficheiros.

Visão geral da linhagem.

Requisitos

Para capturar linhagem de dados usando o Unity Catalog:

  • As tabelas devem ser registradas em um metastore do Catálogo Unity.
  • Os 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 relações com outros objetos protegíveis registrados no metastore do Unity Catalog. Ver Linhagem externa.
  • As consultas devem usar o Spark DataFrame (por exemplo, funções do Spark SQL que retornam um DataFrame) ou interfaces Databricks SQL, como blocos de anotações ou o editor de consultas SQL.

Para visualizar a linhagem de dados:

  • Você deve ter pelo menos o privilégio BROWSE no catálogo pai da tabela ou vista. O catálogo pai também deve estar acessível desde o espaço de trabalho. Ver Encadernação de catálogo de espaço de trabalho.
  • Para blocos de anotações, trabalhos ou painéis, você deve ter permissões nesses objetos, conforme definido pelas configurações de controle de acesso no espaço de trabalho. Para obter detalhes, consulte Permissões.
  • Para um pipeline habilitado para Unity Catalog, você deve ter a permissão CAN VIEW no pipeline.

Requisitos de computação:

  • O rastreamento de linhagem de streaming entre tabelas Delta requer o Databricks Runtime 11.3 LTS ou superior.
  • O rastreio da linhagem das colunas para cargas de trabalho de pipelines do Lakeflow requer o Databricks Runtime 13.3 LTS ou superior.

Requisitos de rede:

Ver linhagem no Explorador de Catálogos

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

  1. No seu espaço de trabalho Azure Databricks, clique em Data icon.Catalog.

  2. Pesquise ou procure a sua tabela.

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

  4. Para exibir um gráfico interativo da linhagem de dados, clique em Ver gráfico de linhagem.

    Por padrão, um nível é exibido no gráfico. Clique no ícone de Sinal Mais num nó para revelar mais conexões, se estiverem disponíveis.

  5. Clique no ícone numa aresta de ligação no gráfico de linhagem para abrir o painel de detalhes da linhagem .

    O painel Detalhes da linhagem mostra detalhes sobre a conexão, incluindo tabelas de origem e de destino.

    Gráfico de linhagem.

  6. Para visualizar um ativo associado a uma tabela, selecione o ativo no painel de detalhes de Linhagem . Pode filtrar por blocos de notas, trabalhos, pipelines e consultas.

  7. Para exibir a linhagem em nível de coluna, clique em uma coluna no gráfico para mostrar links para colunas relacionadas. Por exemplo, clicando na revenue coluna deste gráfico de exemplo mostra as colunas a montante das quais a coluna foi derivada:

    Linhagem de colunas do menu completo.

Ver linhagem de serviço modelo e prestadores

Para visualizar a linhagem de um serviço modelo ou de um fornecedor de modelos externo (serviço de fornecedor modelo), abra o separador Linhagem no Explorador de Catálogos. Para mais detalhes, veja Serviço modelo de via e linhagem de fornecedores.

Ver linhagem de trabalho

Para ver a linhagem do trabalho, vá para a guia Linhagem de uma tabela, selecione Trabalhos e selecione Downstream. O nome do trabalho aparece em Nome do trabalho como um consumidor da tabela.

Visualizar linhagem do painel de controlo

Para visualizar a linhagem do painel, vá para a guia Linhagem de uma tabela e clique em Painéis. O painel aparece em Nome do painel como um consumidor da tabela.

Ver linhagem da UDF

Use a linhagem UDF para acompanhar onde uma função definida pelo utilizador (UDF) no Unity Catalog é utilizada, para que possa avaliar o impacto de modificar uma UDF partilhada antes de fazer qualquer alteração. A linhagem do UDF acompanha cargas de trabalho que invocam um UDF, como jobs, pipelines, notebooks ou consultas SQL, juntamente com ativos de dados que fazem referência ao UDF na sua definição. O Unity Catalog capta a linhagem UDF para UDFs SQL, Python e Scala.

Para visualizar a linhagem de uma UDF:

  1. No seu espaço de trabalho Azure Databricks, clique em Data icon.Catalog.
  2. Pesquise ou navegue pela função.
  3. Selecione o separador Linhagem . O separador lista os ativos ligados ao UDF, juntamente com a Direção, Tipo e Última atividade de cada ativo.

O exemplo seguinte mostra o separador Lineage do udf_demo.default.normalize_email UDF. Os ativos a jusante incluem a customer_profiles_view tabela, as consultas e cadernos que chamam a função, e o trabalho que a executa.

O separador «Linhagem» de uma UDF no Explorador de Catálogos.

Os UDFs usados para transformar dados entre tabelas ou vistas também são capturados no gráfico de linhagem. No exemplo seguinte, o painel de detalhes de linhagem para a aresta entre a customers tabela e a customer_profiles_view vista lista a normalize_email UDF que transforma os dados:

Uma UDF apresentada no painel de detalhes de linhagem do gráfico de linhagem.

A linhagem da UDF apresenta as seguintes limitações, para além das limitações gerais da linhagem de dados:

  • O Unity Catalog capta a linhagem UDF ao nível da tabela. A linhagem UDF ao nível da coluna não é capturada.
  • As UDFs SQL não são capturadas das instruções INSERT, UPDATE e MERGE.
  • A linhagem não é capturada para tabelas ou funções referenciadas dentro de um corpo UDF.
  • Funções de valores de tabela, funções ML e funções de especificação de características não são capturadas na linhagem.
  • Não pode consultar a linhagem UDF usando as tabelas do sistema de linhagem.

Obtenha a linhagem usando o Código Génio

O Código Génio pode responder a perguntas de linhagem em linguagem natural.

Para obter informações sobre a linhagem usando o Código Génio:

  1. Na barra lateral do espaço de trabalho, clique no ícone Dados.Catálogo.
  2. Navegue ou pesquise o catálogo, clique no nome do catálogo e depois clique no ícone de cor do código Genie. Ícone do Código Génio no canto superior direito.
  3. No prompt do Código Génio, escreva:
    • /getTableLineages para visualizar dependências a montante e a jusante.
    • /getTableInsights para aceder a insights orientados por metadados, como atividade do utilizador e padrões de consulta.

Estas consultas permitem que o Genie Code responda a perguntas como "mostra-me as lineagens descendentes" ou "quem consulta esta tabela com mais frequência."

O Código Génio fornece a linhagem da tabela e perspetivas.

Consulta de linhagem com tabelas do sistema

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

Note

A linhagem dos UDFs do Unity Catalog não está disponível nas tabelas de sistema de linhagem. Ver Ver a linhagem da UDF.

Permissions

Os gráficos de linhagem partilham o mesmo modelo de permissão que o Unity Catalog. As 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 de BROWSE ou SELECT em uma tabela, ele não poderá explorar sua linhagem.

A linhagem está agregada em todos os espaços de trabalho ligados a uma metastore do Unity Catalog, pelo que a linhagem capturada num espaço de trabalho é visível em qualquer outro espaço que partilhe essa metastore, desde que o utilizador tenha permissões adequadas para os objetos. Informação detalhada sobre objetos ao nível do espaço de trabalho, como cadernos e painéis de controlo noutros espaços de trabalho, é mascarada. Consulte Limitações.

Por exemplo, execute os seguintes comandos para userA:

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

Quando userA visualizam o gráfico de linhagem da lineage_data.lineagedemo.menu tabela, veem a menu tabela. Não conseguem ver informação sobre tabelas associadas, como a tabela a jusante lineage_data.lineagedemo.dinner . A tabela dinner aparece como um nó masked para userA, e userA não pode expandir o grafo para revelar as tabelas a jusante de tabelas a que não pode aceder.

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

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

Os utilizadores do Lineage também devem ter permissões específicas para visualizar objetos de espaço de trabalho, como cadernos, trabalhos e dashboards. Informação detalhada sobre estes objetos é visível apenas no espaço de trabalho onde foram criados.

Para obter mais informações sobre como gerenciar o acesso a objetos protegíveis no Unity Catalog, consulte Manage privileges in Unity Catalog. Para obter mais informações sobre como gerenciar o acesso a objetos de espaço de trabalho, como blocos de anotações, trabalhos e painéis, consulte Listas de controle de acesso.

Retention

Os dados de linhagem exibidos no Explorador de Catálogos são mantidos indefinidamente. Todos os dados de linhagem recolhidos após 1 de setembro de 2024 estão disponíveis. Para metastores criadas após essa data, o Catalog Explorer inclui a opção Todo o tempo na lista pendente do intervalo de tempo da linhagem. Para metastores mais antigas, o menu suspenso inclui uma opção Tudo disponível que começa a partir de 1 de setembro de 2024. A escolha padrão é de 1 ano.

As tabelas do sistema de linhagem (system.access.table_lineage e system.access.column_lineage) mantêm uma janela móvel de dados de 1 ano. Consulte a referência das tabelas do sistema de linhagem.

Limitações

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

  • Os dados de linhagem recolhidos antes de 1 de setembro de 2024 não estão disponíveis.
  • Os trabalhos que usam a solicitação da API runs submit de Trabalhos ou o tipo de spark submit tarefa não estão disponíveis nas exibições de linhagem. A linhagem em 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, vistas ou colunas renomeadas.
  • Se usar o ponto de verificação do conjunto de dados Spark SQL, a linhagem não será capturada.
  • O Unity Catalog capta a linhagem dos pipelines Lakeflow na maioria dos casos, mas a cobertura é incompleta para pipelines que utilizam tabelas PRIVADAS.
  • Os conjuntos de dados distribuídos resilientes (RDDs) não são registrados na linhagem.
  • As visualizações globais de temperatura não são capturadas na linhagem.
  • As transações emitem linhagem à medida que ocorre cada leitura e escrita. Os eventos de linhagem persistem mesmo que a transação seja revertida.
  • As tabelas sob system.information_schema não são capturadas na linhagem.
  • Unity Catalog captura a linhagem ao nível da coluna sempre que possível. No entanto, há alguns casos em que a linhagem em nível de coluna não pode ser capturada. Estas incluem:
    • A linhagem de coluna não pode ser capturada se a origem ou o destino for referenciado 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>).

    • A utilização de funções definidas pelo utilizador (UDFs) pode obscurecer o mapeamento entre as colunas de origem e de destino. O Unity Catalog capta a linhagem ao nível da tabela para UDFs, mas não a linhagem ao nível da coluna. Ver Ver a linhagem da UDF.

Recursos adicionais