Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A linhagem de dados mostra de onde vieram os dados em Azure Databricks e para onde vão: quais consultas e arquivos preenchem uma tabela, quais trabalhos e notebooks os transformam e quais dashboards consomem os resultados.
O Unity Catalog captura automaticamente a linhagem das consultas executadas no Azure Databricks, no nível de coluna, e a consolida em todos os workspaces vinculados ao metastore. A linhagem no Unity Catalog permite:
- Executar a análise de impacto: antes de alterar ou excluir uma tabela ou coluna, identifique as tabelas downstream, os trabalhos e os painéis que dependem dela.
- Investigar causas raiz: quando um relatório downstream mostra resultados inesperados, rastreie fontes upstream para localizar onde os dados divergiram.
- Acompanhar o fluxo de dados confidenciais: para auditorias de conformidade, veja onde os dados regulamentados se originam, como eles são transformados e quais ativos downstream os consomem.
- Entenda as dependências entre equipes: descubra quais equipes possuem as fontes upstream em que você depende ou quais equipes consomem suas tabelas.
A linhagem externa (Versão Prévia Pública) estende o grafo de linhagem além do Azure Databricks. Registre fontes upstream como Salesforce ou MySQL e ferramentas downstream, como Tableau ou Power BI como ativos externos no Catálogo do Unity, e elas aparecem junto com suas tabelas do Catálogo do Unity em um único grafo. Consulte Traga sua própria linhagem de dados.
A imagem a seguir é um grafo de linhagem de exemplo. Os nós podem representar tabelas e views, versões de modelos de ML, ativos externos e caminhos de arquivos.
Requisitos
Para capturar a linhagem de dados usando o Catálogo do Unity:
- As tabelas precisam ser registradas em um metastore do Unity Catalog.
- Os ativos externos (aqueles não registrados no metastore do Catálogo do Unity) devem ser adicionados como objetos de metadados externos no Catálogo do Unity, configurados para ter relações com outros objetos protegíveis registrados no metastore do Catálogo do Unity. Consulte Traga sua própria linhagem de dados.
- As consultas devem usar o DataFrame do Spark (por exemplo, funções SQL do Spark que retornam um DataFrame) ou interfaces SQL do Databricks, como notebooks ou o editor de consultas SQL.
Para exibir a linhagem de dados:
- Você deve ter pelo menos o privilégio
BROWSEno catálogo pai da tabela ou exibição. O catálogo pai também deve estar acessível no workspace. Consulte Workspace-catalog binding. - Para notebooks, trabalhos ou painéis, você deve ter permissões nesses objetos, conforme definido pelas configurações de controle de acesso no workspace. Para saber mais, confira Permissões.
- Para um pipeline habilitado para o Catálogo do Unity, você deve ter a permissão CAN VIEW no pipeline.
Requisitos de computação:
- O acompanhamento de linhagem do streaming entre tabelas Delta requer Databricks Runtime 11.3 LTS ou superior.
- O rastreamento de linhagem de coluna para cargas de trabalho do Lakeflow Spark Declarative Pipelines requer o Databricks Runtime 13.3 LTS ou superior.
Requisitos de rede:
- Talvez seja necessário atualizar suas regras de firewall de saída para permitir a conectividade com o ponto de extremidade do Event Hubs no plano de controle do Azure Databricks. Normalmente, isso se aplica caso o seu workspace do Azure Databricks seja implantado em sua própria VNet (também chamada de injeção de VNet). Para obter o ponto de extremidade dos Hub de Eventos para a sua região de workspace, confira Metastore, armazenamento de blobs de artefatos, armazenamento de tabelas do sistema, armazenamento de blobs de log e endereços IP de ponto de extremidade dos Hubs de Eventos. Para obter informações sobre como configurar UDR (rotas definidas pelo usuário) para Azure Databricks, consulte as configurações de rota definidas por User para Azure Databricks.
Exibir linhagem no Gerenciador de Catálogos
Para usar o Gerenciador de Catálogos para exibir a linhagem da tabela:
No workspace Azure Databricks, clique em
Catalog.
Pesquise ou procure sua tabela.
Selecione a guia Linhagem . O painel de linhagem é exibido e exibe tabelas relacionadas.
Para exibir um grafo interativo da linhagem de dados, clique em Ver grafo de linhagem.
Por padrão, um nível é exibido no grafo. Clique no ícone
em um nó para revelar mais conexões se elas estiverem disponíveis.Clique no ícone em uma borda de conexão no grafo de linhagem para abrir o painel de detalhes da Linhagem .
O painel de detalhes de Linhagem mostra detalhes sobre a conexão, incluindo tabelas de origem e de destino.
Para exibir um ativo associado a uma tabela, selecione o ativo no painel de detalhes de Linhagem . Você pode filtrar por blocos de anotações, trabalhos, pipelines e consultas.
Para exibir a linhagem no nível da coluna, clique em uma coluna no grafo para mostrar links para colunas relacionadas. Por exemplo, clicar na
revenuecoluna neste grafo de exemplo mostra as colunas upstream das quais a coluna foi derivada:
Exibir linhagem de trabalho
Para exibir a linhagem do trabalho, acesse 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.
Exibir a linhagem do painel de controle
Para exibir a linhagem do painel, acesse a guia Linhagem de uma tabela e clique em Painéis. O painel aparece em Nome do Painel como um 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 o Genie Code:
- Na barra lateral do workspace, clique no
Catálogo.
- Procure ou pesquise o catálogo, clique no nome do catálogo e clique no
Ícone do Genie Code no canto superior direito.
- No prompt do Genie Code, digite:
-
/getTableLineagespara exibir dependências anteriores e posteriores. -
/getTableInsightspara acessar insights controlados por metadados, como atividade do usuário e padrões de consulta.
-
Essas consultas permitem que o Genie Code responda perguntas como "mostrar-me linhagens downstream" ou "quem consulta essa tabela com mais frequência".
Linhagem de consulta 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 referência de tabelas do sistema e referência de tabelas de sistema de linhagem.
Permissions
Os grafos de linhagem compartilham o mesmo modelo de permissão que o Unity Catalog. Tabelas e outros objetos de dados registrados no metastore do Catálogo do Unity 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 BROWSE ou SELECT privilégio em uma tabela, ele não poderá explorar sua linhagem.
A linhagem é agregada em todos os workspaces vinculados a um metastore do Unity Catalog, portanto, a linhagem capturada em um workspace é visível em qualquer outro workspace que compartilhe esse metastore, desde que o usuário tenha permissões adequadas sobre os objetos. Informações detalhadas sobre objetos no nível do espaço de trabalho, como notebooks e dashboards em outros espaços de trabalho, são ocultadas. Confira 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 exibe o grafo de linhagem da lineage_data.lineagedemo.menu tabela, eles veem a menu tabela. Eles não podem ver informações sobre tabelas associadas, como a tabela downstream lineage_data.lineagedemo.dinner . A tabela dinner aparece como um nó masked para userA, e userA não pode expandir o grafo para revelar tabelas subsequentes a partir de tabelas às quais não têm permissão de acesso.
Se você executar o seguinte comando para conceder a permissão BROWSE a userB, esse usuário poderá exibir o grafo de linhagem para uma tabela no esquema lineage_data:
GRANT BROWSE on lineage_data to `userB@company.com`;
Os usuários do Lineage também devem ter permissões específicas para visualizar objetos do espaço de trabalho, como notebooks, tarefas e dashboards. Informações detalhadas sobre esses objetos só são visíveis no workspace em que foram criados.
Para mais informações sobre como gerenciar o acesso a objetos protegíveis no Unity Catalog, veja como Gerenciar privilégios no Unity Catalog. Para obter mais informações sobre como gerenciar o acesso a objetos de workspace, como notebooks, trabalhos e painéis, confira Lista de controle de acesso.
Retention
Os dados de linhagem exibidos no Gerenciador de Catálogos são mantidos 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 a opção Todo o período no menu suspenso de intervalo de tempo da linhagem. Para metastores mais antigos, a lista suspensa inclui uma opção Todos disponíveis que começa em 1º de setembro de 2024. A seleção padrão é de 1 ano.
As tabelas do sistema de linhagem (system.access.table_lineage e system.access.column_lineage) mantêm uma janela de dados sem interrupção de 1 ano. Consulte a referência das tabelas do sistema Lineage.
Limitações
A linhagem de dados tem as seguintes limitações. Essas limitações também se aplicam a tabelas do sistema de linhagem:
- Os dados de linhagem capturados antes de 1º de setembro de 2024 não estão disponíveis.
- Os trabalhos que usam a solicitação da API
runs submitde trabalhos ou o tipo de tarefaspark submitnão estão disponíveis nas visões de linhagem. A linhagem no nível de tabela e coluna ainda é capturada para esses fluxos de trabalho, mas o link para a execução de tarefas não é capturado. - A linhagem não é preservada para catálogos, esquemas, tabelas, exibições ou colunas renomeados.
- Se você usar o ponto de verificação do conjunto de dados do Spark SQL, a linhagem não será capturada.
- O Unity Catalog captura a linhagem de pipelines declarativos do Lakeflow Spark na maioria dos casos, mas a cobertura é incompleta para pipelines que usam tabelas privadas.
- Os RDDs (conjuntos de dados distribuídos resilientes) não são capturados na linhagem de dados.
- Exibições temporárias globais não são capturadas na linhagem.
- As transações emitem linhagem conforme cada leitura e gravação ocorre. Os eventos de linhagem persistem mesmo se a transação for revertida.
- As tabelas em
system.information_schemanão são capturadas na linhagem. - O Catálogo do Unity captura a linhagem para o nível de coluna ao máximo. No entanto, há alguns casos em que a linhagem no nível da coluna não pode ser capturada. Estes incluem:
A linhagem de coluna não poderá ser capturada se a origem ou o destino for referenciado como caminho (exemplo:
select * from delta."s3://<bucket>/<path>"). Há suporte para a linhagem da coluna somente quando a origem e o destino são referenciados pelo nome da tabela (Exemplo:select * from <catalog>.<schema>.<table>).Uso de UDFs (funções definidas pelo usuário), que podem obscurecer o mapeamento entre colunas de origem e de destino.
Recursos adicionais
- Demonstração: Catálogo do Unity – Linhagem de Dados
- Linhagem do modelo ML: para acompanhar a linhagem de um modelo de machine learning, consulte Acompanhar a linhagem de dados de um modelo no Catálogo do Unity.
- Informações da tabela: a guia Insights no Explorador de Catálogos mostra tendências de uso de uma tabela: padrões de consulta, principais usuários e painéis que a leem. Consulte Ver usuários e consultas frequentes de uma tabela.