Pular para o conteúdo principal

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

nota
  • Os exemplos a seguir usam o nome do catálogo lineage_data e o nome do esquema lineagedemo. 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 e USE SCHEMA em um esquema. Um administrador da metastore, proprietário do catálogo, proprietário do esquema ou usuário com o privilégio MANAGE 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 esquema lineagedemo no catálogo lineage_data, um usuário com um dos privilégios ou funções acima pode executar as seguintes consultas:

    SQL
    CREATE 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:

  1. Acesse seu SAP Databricks páginas de aterrissagem, clique em Novo ícone New na barra lateral e selecione Notebook no menu.

  2. Digite um nome para o Notebook e selecione SQL no idioma padrão .

  3. Clique em Criar .

  4. Na primeira célula do Notebook, digite as seguintes consultas:

    SQL
    CREATE 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
  5. Para executar as consultas, clique na célula e pressione shift+enter ou clique em Menu Executar e selecione Executar célula .

Para usar o Catalog Explorer para view a linhagem gerada por essas consultas:

  1. Na caixa de pesquisa na barra superior do SAP Databricks workspace, procure a tabela lineage_data.lineagedemo.dinner e selecione-a.

  2. Selecione a linhagem tab. O painel de linhagem aparece e exibe tabelas relacionadas (neste exemplo, é a tabela menu).

  3. 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.

  4. 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.

    Lineage gráfico.

  5. 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.

  6. 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:

    Linhagem completa da coluna do menu.

Para view lineage usando um idioma diferente, por exemplo, Python:

  1. 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")
  2. Execute a célula clicando na célula e pressionando shift+enter ou clicando em Menu Executar e selecionando executar Cell .

  3. Na caixa de pesquisa na barra superior do SAP Databricks workspace, procure a tabela lineage_data.lineagedemo.price e selecione-a.

  4. Acesse Lineage tab e clique em See Lineage gráfico . Clique nos ícones Ícone Plus Sign para explorar a linhagem de dados gerada pelas consultas.

    Gráfico de linhagem expandido.

  5. 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:

SQL
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:

SQL
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

atenção

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:

  1. Acesse seu SAP Databricks páginas de aterrissagem e abra o Catalog Explorer clicando em Ícone de dados. Catalog na barra lateral.
  2. Clique no nome do catálogo e, em seguida, clique no ícone Ícone do assistente de ajuda do produto - cor Assistente no canto superior direito.
  3. 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”.

Databricks Assistant fornece a linhagem e as percepções da tabela.