visualizar a linhagem de dados usando Unity Catalog
Este artigo descreve como visualizar a linhagem de dados usando o Catalog Explorer, as tabelas do sistema de linhagem de dados e o site REST API.
Visão geral da linhagem de dados
O Unity Catalog captura a linhagem de dados em tempo de execução nas consultas executadas no Databricks. A linhagem é compatível com todos os idiomas e é capturada até o nível da coluna. Os dados de linhagem incluem Notebook, Job e dashboards relacionados à consulta. A linhagem pode ser visualizada no Catalog Explorer quase em tempo real e recuperada de forma programática usando as tabelas do sistema de linhagem e a API REST da Databricks.
A linhagem é agregada em todos os espaços de trabalho anexados a um metastore Unity Catalog. Isso significa que a linhagem capturada em um workspace é visível em qualquer outro workspace que compartilhe esse metastore. Especificamente, as tabelas e outros objetos de dados registrados no metastore são visíveis para os usuários que têm pelo menos BROWSE
permissões nesses objetos, em todos os espaços de trabalho anexados ao metastore. No entanto, as informações detalhadas sobre objetos de nível workspace, como Notebook e dashboards em outro espaço de trabalho, são ocultadas (consulte Limitações de linhagem e Permissões de linhagem).
Os dados de linhagem são retidos por um ano.
A imagem a seguir é um exemplo de gráfico de linhagem.
Para obter informações sobre o acompanhamento da linhagem de um modelo do aprendizado de máquina, consulte Acompanhar a linhagem de dados de um modelo Unity Catalog em.
Requisitos
Para capturar a linhagem de dados usando o Unity Catalog:
- As tabelas devem ser registradas em um metastore do Unity Catalog.
- 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:
- O senhor deve ter pelo menos o privilégio
BROWSE
no catálogo pai da tabela ou view. O catálogo principal também deve estar acessível no site workspace. Consulte Limitar o acesso do catálogo a um espaço de trabalho específico. - Para Notebook, Job ou dashboards, o senhor deve ter permissões nesses objetos, conforme definido pelas configurações de controle de acesso no site workspace. Para obter detalhes, consulte Permissões do Lineage.
- 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 da coluna para cargas de trabalho DLT requer Databricks Runtime 13.3 LTS ou acima.
visualizar a linhagem de dados usando o Catalog Explorer
Para usar o Catalog Explorer para view a linhagem da tabela:
-
Em seu site Databricks workspace, clique em
Catalog .
-
Pesquise ou procure sua tabela.
-
Selecione a linhagem tab. O painel de linhagem aparece e exibe tabelas relacionadas.
-
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 em um nó para revelar mais conexões, se estiverem disponíveis.
-
Clique em uma seta que conecta os nós no gráfico de linhagem para abrir o painel de conexão de linhagem .
O painel de conexão do Lineage mostra detalhes sobre a conexão, incluindo tabelas de origem e destino, Notebook e Job.
-
Para mostrar um Notebook associado a uma tabela, selecione o Notebook no painel de conexão Lineage ou feche o gráfico de lineage e clique em Notebook .
Para abrir o Notebook em um novo tab, clique no nome do Notebook.
-
Para view a linhagem em nível de coluna, clique em uma coluna no gráfico para mostrar links para colunas relacionadas. Por exemplo, clicar na coluna
full_menu
neste gráfico de amostra mostra as colunas upstream das quais a coluna foi derivada:
ver fluxo de trabalho (Job) lineage
Para view fluxo de trabalho lineage, vá para Lineage tab de uma tabela, clique em fluxo de trabalho e selecione Downstream tab. 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 a linhagem da tabela usando o Databricks Assistant
Databricks Assistant fornece informações detalhadas sobre as linhagens e percepções da tabela.
Para obter informações sobre a linhagem usando o Assistant:
- Na barra lateral do site workspace, clique em
Catalog .
- Procure ou pesquise o catálogo, clique no nome do catálogo e, em seguida, clique no ícone
Assistente no canto superior direito.
- No prompt do Assistente, digite:
- /getTableLineages para view dependências upstream e downstream.
- /getTableInsights para acessar percepções orientadas por metadados, como atividade do usuário e padrões de consulta.
Essas consultas permitem que o Assistant responda perguntas como “mostre-me linhagens posteriores” ou “quem consulta essa tabela com mais frequência”.
Consulta de linhagem uso de dados tabelas do sistema
Você pode usar as tabelas do sistema de linhagem para consultar dados de linhagem de forma programática. Para obter instruções detalhadas, consulte Monitorar a atividade do account com tabelas de sistema e Referência de tabelas de sistema do Lineage.
Se o seu site workspace estiver em uma região que não ofereça suporte a tabelas do sistema de linhagem, o senhor poderá usar a linhagem de dados REST API para recuperar dados de linhagem de forma programática.
Recupere a linhagem usando a API REST da linhagem de dados
A API de linhagem de dados permite que o senhor recupere a linhagem de tabelas e colunas. No entanto, se o seu workspace estiver em uma região que ofereça suporte às tabelas do sistema de linhagem, o senhor deverá usar as consultas da tabela do sistema em vez do REST API. As tabelas do sistema são a melhor opção para a recuperação programática de dados de linhagem. A maioria das regiões suporta as tabelas do sistema de linhagem.
Para acessar as APIs REST da Databricks, o senhor deve se autenticar.
Recuperar a linhagem da tabela
Este exemplo recupera dados de linhagem para a tabela dinner
.
Solicitação
curl --netrc -X GET \
-H 'Content-Type: application/json' \
https://<workspace-instance>/api/2.0/lineage-tracking/table-lineage \
-d '{"table_name": "lineage_data.lineagedemo.dinner", "include_entity_lineage": true}'
Substitua <workspace-instance>
.
Este exemplo usa um .netrc arquivo.
Resposta
{
"upstreams": [
{
"tableInfo": {
"name": "menu",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_type": "TABLE"
},
"notebookInfos": [
{
"workspace_id": 4169371664718798,
"notebook_id": 1111169262439324
}
]
}
],
"downstreams": [
{
"notebookInfos": [
{
"workspace_id": 4169371664718798,
"notebook_id": 1111169262439324
}
]
},
{
"tableInfo": {
"name": "dinner_price",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_type": "TABLE"
},
"notebookInfos": [
{
"workspace_id": 4169371664718798,
"notebook_id": 1111169262439324
}
]
}
]
}
Recuperar a linhagem da coluna
Este exemplo recupera dados da coluna para a tabela dinner
.
Solicitação
curl --netrc -X GET \
-H 'Content-Type: application/json' \
https://<workspace-instance>/api/2.0/lineage-tracking/column-lineage \
-d '{"table_name": "lineage_data.lineagedemo.dinner", "column_name": "dessert"}'
Substitua <workspace-instance>
.
Este exemplo usa um .netrc arquivo.
Resposta
{
"upstream_cols": [
{
"name": "dessert",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_name": "menu",
"table_type": "TABLE"
},
{
"name": "main",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_name": "menu",
"table_type": "TABLE"
},
{
"name": "app",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_name": "menu",
"table_type": "TABLE"
}
],
"downstream_cols": [
{
"name": "full_menu",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_name": "dinner_price",
"table_type": "TABLE"
}
]
}
Permissões de linhagem
O Lineage gráfico compartilha 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 tenham pelo menos BROWSE
permissões sobre esses objetos. Se um usuário não tiver o privilégio BROWSE
ou SELECT
em uma tabela, ele não poderá explorar sua linhagem. O Lineage gráfico exibe Unity Catalog objetos em todos os espaços de trabalho anexados ao metastore, desde que o usuário tenha as permissões de objeto adequadas.
Por exemplo, execute o seguinte comando 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 o site userA
visualizar o gráfico de linhagem da tabela lineage_data.lineagedemo.menu
, ele verá a tabela menu
. Eles não poderão ver informações sobre tabelas associadas, como a tabela downstream lineage_data.lineagedemo.dinner
. A tabela dinner
é exibida como um nó masked
na exibição para userA
, e userA
não pode expandir o gráfico para revelar tabelas downstream de tabelas às quais não tem 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
:
GRANT BROWSE on lineage_data to `userB@company.com`;
Da mesma forma, os usuários de linhagem devem ter permissões específicas para view workspace objetos como Notebook, Job e dashboards. Além disso, eles só podem ver informações detalhadas sobre os objetos do workspace quando estiverem conectados ao workspace no qual esses objetos foram criados. Informações detalhadas sobre objetos de nível workspaceem outro espaço de trabalho são mascaradas no gráfico de linhagem.
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.
Limitações de linhagem
A linhagem de dados tem as seguintes limitações:
-
Embora a linhagem seja agregada a todos os espaços de trabalho anexados ao mesmo metastore Unity Catalog, os detalhes dos objetos workspace, como o Notebook e os painéis, são visíveis apenas no workspace em que foram criados.
-
Como a linhagem é calculada em uma janela móvel de um ano, a linhagem coletada há mais de um ano não é exibida. Por exemplo, se um trabalho ou consulta ler dados da tabela A e gravar na tabela B, o link entre a tabela A e a tabela B será exibido somente por um ano. Você pode filtrar dados de linhagem por período de tempo dentro da janela de um ano.
-
Os trabalhos que usam a solicitação Jobs API
runs submit
não estão disponíveis na visualização de linhagem. A linhagem de nível de tabela e coluna ainda é capturada quando um trabalho usa a solicitaçãoruns submit
, mas o link para a execução não é capturado. -
Se uma tabela ou view for renomeado, a linhagem não será capturada para a tabela ou view renomeado.
-
Se um esquema ou catálogo for renomeado, a linhagem não será capturada para tabelas e visualizações no catálogo ou esquema renomeado.
-
Se o senhor usar Spark SQL dataset checkpointing, a linhagem não será capturada.
-
Unity Catalog captura a linhagem do pipeline DLT na maioria dos casos. No entanto, em alguns casos, a cobertura completa da linhagem não pode ser garantida, como quando o pipeline usa as API tabelas APPLY CHANGES ou PRIVATE.
-
O Lineage não captura as funções do Stack.
-
A visualização temporária global não é capturada na linhagem.
-
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>
). -
A linhagem completa em nível de coluna não é capturada pelo site default para
MERGE
operações.O senhor pode ativar a captura de linhagem para as operações
MERGE
definindo a propriedade Sparkspark.databricks.dataLineage.mergeIntoV2Enabled
comotrue
. A ativação desse sinalizador pode reduzir o desempenho da consulta, principalmente em cargas de trabalho que envolvem tabelas muito amplas.
-