Capture e view linhagem de dados usando Unity Catalog
Este artigo descreve como capturar e visualizar a linhagem de dados usando o Catalog Explorer.
O senhor pode usar o Unity Catalog para capturar a linhagem de dados em tempo de execução nas consultas executadas no SAP Databricks. A linhagem é compatível com todos os idiomas e é capturada até o nível da coluna. Os dados de linhagem incluem o Notebook relacionado à consulta. A linhagem pode ser visualizada no Catalog Explorer quase em tempo real.
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 o Notebook em outro espaço de trabalho, são ocultadas.
Os dados de linhagem são retidos por um ano.
Requisitos
Os seguintes itens são necessários para capturar a linhagem de dados usando o Unity Catalog:
- O site workspace deve ter o Unity Catalog ativado.
- As tabelas devem ser registradas em um metastore do Unity Catalog.
- As consultas devem usar as interfaces Spark DataFrame (por exemplo, funções Spark SQL que retornam um DataFrame) ou Databricks SQL.
- Para view a linhagem de uma tabela ou view, os usuários devem 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. - Para view informações de linhagem para o Notebook, os usuários devem ter permissões sobre esses objetos, conforme definido pelas configurações de controle de acesso no workspace.
Exemplos
-
Os exemplos a seguir usam o nome do catálogo
lineage_data
e o nome do esquemalineagedemo
. Para usar um catálogo e um esquema diferentes, altere os nomes usados nos exemplos. -
Para concluir esse exemplo, você deve ter os privilégios
CREATE
eUSE SCHEMA
em um esquema. Um administrador da metastore, proprietário do catálogo, proprietário do esquema ou usuário com o privilégioMANAGE
no esquema pode conceder esses privilégios. Por exemplo, para dar a todos os usuários do grupo 'data_engineers' permissão para criar tabelas no esquemalineagedemo
no catálogolineage_data
, um usuário com um dos privilégios ou funções acima pode executar as seguintes consultas:SQLCREATE SCHEMA lineage_data.lineagedemo;
GRANT USE SCHEMA, CREATE on SCHEMA lineage_data.lineagedemo to `data_engineers`;
Capture e explore a linhagem
Para capturar dados de linhagem:
-
Acesse seu SAP Databricks páginas de aterrissagem, clique em
New na barra lateral e selecione Notebook no menu.
-
Digite um nome para o Notebook e selecione SQL no idioma padrão .
-
Clique em Criar .
-
Na primeira célula do Notebook, digite as seguintes consultas:
SQLCREATE TABLE IF NOT EXISTS
lineage_data.lineagedemo.menu (
recipe_id INT,
app string,
main string,
dessert string
);
INSERT INTO lineage_data.lineagedemo.menu
(recipe_id, app, main, dessert)
VALUES
(1,"Ceviche", "Tacos", "Flan"),
(2,"Tomato Soup", "Souffle", "Creme Brulee"),
(3,"Chips","Grilled Cheese","Cheesecake");
CREATE TABLE
lineage_data.lineagedemo.dinner
AS SELECT
recipe_id, concat(app," + ", main," + ",dessert)
AS
full_menu
FROM
lineage_data.lineagedemo.menu -
Para executar as consultas, clique na célula e pressione shift+enter ou clique em
e selecione Executar célula .
Para usar o Catalog Explorer para view a linhagem gerada por essas consultas:
-
Na caixa de pesquisa na barra superior do SAP Databricks workspace, procure a tabela
lineage_data.lineagedemo.dinner
e selecione-a. -
Selecione a linhagem tab. O painel de linhagem aparece e exibe tabelas relacionadas (neste exemplo, é a tabela
menu
). -
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 o Notebook associado à tabela
dinner
, selecione o Notebook no painel de conexão Lineage ou feche o gráfico de linhagem 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' mostra as colunas upstream das quais a coluna foi derivada:
Para view lineage usando um idioma diferente, por exemplo, Python:
-
Abra o Notebook que o senhor criou anteriormente, crie uma nova célula e digite o seguinte código Python:
Python%python
from pyspark.sql.functions import rand, round
df = spark.range(3).withColumn("price", round(10*rand(seed=42),2)).withColumnRenamed("id","recipe_id")
df.write.mode("overwrite").saveAsTable("lineage_data.lineagedemo.price")
dinner = spark.read.table("lineage_data.lineagedemo.dinner")
price = spark.read.table("lineage_data.lineagedemo.price")
dinner_price = dinner.join(price, on="recipe_id")
dinner_price.write.mode("overwrite").saveAsTable("lineage_data.lineagedemo.dinner_price") -
Execute a célula clicando na célula e pressionando shift+enter ou clicando em
e selecionando executar Cell .
-
Na caixa de pesquisa na barra superior do SAP Databricks workspace, procure a tabela
lineage_data.lineagedemo.price
e selecione-a. -
Acesse Lineage tab e clique em See Lineage gráfico . Clique nos ícones
para explorar a linhagem de dados gerada pelas consultas.
-
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.
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 da linhagem devem ter permissões específicas para view workspace objetos como o Notebook. 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.
Excluir dados de linhagem
As instruções a seguir excluem todos os objetos armazenados no Unity Catalog. Use essas instruções somente se necessário. Por exemplo, para atender aos requisitos do site compliance.
Para excluir os dados de linhagem, o senhor deve excluir o metastore que gerencia os objetos do Unity Catalog. Os dados serão excluídos dentro de 90 dias.
Obter a linhagem da tabela usando o Databricks Assistant
Databricks Assistant fornece informações detalhadas sobre as linhagens e percepções das mesas.
Para obter informações sobre a linhagem usando o Assistant:
- Acesse seu SAP Databricks páginas de aterrissagem e abra o Catalog Explorer clicando em
Catalog na barra lateral.
- 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”.