Compartilhar via


Explorar e validar relacionamentos em modelos semânticos e dataframes

Este artigo mostra como usar funções de link semântico SemPy para descobrir e validar relações em modelos semânticos do Power BI e DataFrames pandas.

Na ciência de dados e no aprendizado de máquina, é importante entender a estrutura e as relações em seus dados. O Power BI permite modelar e visualizar essas estruturas e relações. Para obter mais insights ou criar modelos de machine learning, use funções de link semântico em módulos de biblioteca SemPy.

Cientistas de dados e analistas de negócios usam funções SemPy para listar, visualizar e validar relações em modelos semânticos do Power BI ou localizar e validar relações no Pandas DataFrames.

Pré-requisitos

  • Crie um novo bloco de anotações para copiar e colar código em células.

  • Para o Spark 3.4 e superior, o link semântico está disponível no runtime padrão quando você usa o Fabric, portanto, não é necessário instalá-lo. Para o Spark 3.3 ou versões inferiores, ou para atualizar para a última versão do link semântico, faça a execução do seguinte comando:

    %pip install -U semantic-link
    
  • Adicionar um Lakehouse ao bloco de anotações

Relacionamentos de listas em modelos semânticos

A função list_relationships no módulo sempy.fabric retorna uma lista de todos os relacionamentos encontrados em um modelo semântico do Power BI. A lista ajuda você a ter um reconhecimento da estrutura dos dados e de como diferentes tabelas e colunas estão conectadas.

Esta função funciona ao usar um link semântico para fornecer DataFrames anotados. Os DataFrames incluem os metadados necessários para o reconhecimento dos relacionamentos em um modelo semântico. Os DataFrames anotados facilitam a análise da estrutura do modelo semântico e seu uso em modelos de machine learning ou outras tarefas de análise de dados.

Para usar a função list_relationships, primeiro importe o módulo sempy.fabric. Em seguida, chame a função ao usar o nome ou UUID do modelo semântico do Power BI, conforme mostrado no exemplo a seguir:

import sempy.fabric as fabric

fabric.list_relationships("my_dataset")

O código anterior chama a list_relationships função com um modelo semântico do Power BI chamado my_dataset. A função retorna um DataFrame pandas com uma linha para cada relação, para que você possa explorar e analisar rapidamente as relações no modelo semântico.

Observação

Seu Notebook, o modelo semântico do conjunto de dados do Power BI e o lakehouse podem estar localizados no mesmo espaço de trabalho ou em espaços de trabalho diferentes. Por padrão, o SemPy tenta acessar seu modelo semântico do:

  • O espaço de trabalho do lakehouse, se você tiver conectado um lakehouse ao Notebook.
  • O espaço de trabalho do seu Notebook, se não houver um lakehouse conectado.

Se o modelo semântico não estiver localizado em nenhum desses espaços de trabalho, você deverá especificar o espaço de trabalho do modelo semântico ao chamar um método SemPy.

Visualizar relacionamentos em modelos semânticos

Use a plot_relationship_metadata função para visualizar relações em um modelo semântico e saber como o modelo é estruturado. Essa função cria um grafo que mostra conexões entre tabelas e colunas, facilitando a visualização de como diferentes elementos estão relacionados.

Aqui está um exemplo de como usar a plot_relationship_metadata função:

import sempy.fabric as fabric
from sempy.relationships import plot_relationship_metadata

relationships = fabric.list_relationships("my_dataset")
plot_relationship_metadata(relationships)

No exemplo, a list_relationships função obtém as relações no modelo semântico my_dataset e a plot_relationship_metadata função cria um grafo para mostrar essas relações.

Personalize o grafo escolhendo quais colunas incluir, definindo como lidar com chaves ausentes e adicionando mais atributos graphviz .

Validar relacionamentos em modelos semânticos

Use a list_relationship_violations função para verificar relações em seu modelo semântico e encontrar problemas ou inconsistências. A list_relationship_violations função verifica suas tabelas para garantir que elas correspondam às relações em seu modelo semântico.

Essa função ajuda você a encontrar inconsistências com multiplicidade de relação e corrigir problemas antes que eles afetem seus modelos de análise de dados ou machine learning.

Para usar a list_relationship_violations função, importe o sempy.fabric módulo e leia as tabelas do modelo semântico. Em seguida, chame a função com um dicionário que mapeia os nomes das tabelas para DataFrames com os conteúdos das tabelas.

O código de exemplo a seguir mostra como listar violações de relacionamento:

import sempy.fabric as fabric

tables = {
    "Sales": fabric.read_table("my_dataset", "Sales"),
    "Products": fabric.read_table("my_dataset", "Products"),
    "Customers": fabric.read_table("my_dataset", "Customers"),
}

fabric.list_relationship_violations(tables)

O código anterior chama a list_relationship_violations função com um dicionário que tem as tabelas Vendas, Produtos e Clientes do modelo semântico my_dataset . Você pode personalizar a função definindo um limite de cobertura, escolhendo como lidar com chaves ausentes e definindo o número de chaves ausentes para relatar.

A função retorna um DataFrame do pandas com uma linha para cada violação de relacionamento, para que você possa encontrar e corrigir rapidamente os problemas em seu modelo semântico. Use a list_relationship_violations função para manter seu modelo semântico consistente e preciso, para que você crie modelos de machine learning mais confiáveis e obtenha melhores insights de seus dados.

Localizar relacionamentos no DataFrames do Pandas

As funções list_relationships, plot_relationships_df e list_relationship_violations no módulo Fabric são ferramentas avançadas para explorar relações em modelos semânticos. Às vezes, você precisa encontrar relações em outras fontes de dados, como o Pandas DataFrames.

Use a find_relationships função no sempy.relationship módulo para localizar relações no Pandas DataFrames.

A função find_relationships no módulo sempy.relationships permite que cientistas de dados e analistas de negócios encontrem relações potenciais em uma lista de pandas DataFrames. Essa função ajuda você a identificar conexões entre tabelas e colunas, para que você saiba mais sobre seus dados e como seus elementos se relacionam.

Veja como encontrar relações no Pandas DataFrames:

from sempy.relationships import find_relationships

tables = [df_sales, df_products, df_customers]

find_relationships(tables)

O código anterior chama a find_relationships função com uma lista de três DataFrames pandas: df_sales, df_productse df_customers. A função retorna um DataFrame pandas com uma linha para cada relação potencial, para que você possa explorar e analisar relações em seus dados.

Personalize a função definindo um limite de cobertura, um limite de similaridade de nome, uma lista de relações a serem excluídas e se deseja incluir relações muitos para muitos.

Validar relacionamentos no DataFrames do Pandas

Depois de encontrar possíveis relações em seus DataFrames pandas usando a função find_relationships, use a função list_relationship_violations para validar essas relações e identificar quaisquer problemas ou inconsistências.

A list_relationship_violations função verifica suas tabelas para garantir que elas correspondam às relações descobertas. Use essa função para encontrar inconsistências com a multiplicidade de relação especificada, para que você possa corrigir problemas antes que eles afetem a análise de dados ou os modelos de machine learning.

Aqui está um exemplo que mostra como encontrar violações de relação no Pandas DataFrames:

from sempy.relationships import find_relationships, list_relationship_violations

tables = [df_sales, df_products, df_customers]
relationships = find_relationships(tables)

list_relationship_violations(tables, relationships)

O exemplo chama a função list_relationship_violations com três DataFrames do pandas: df_sales, df_products e df_customers, juntamente com o DataFrame de relações da função find_relationships. A list_relationship_violations função retorna um pandas DataFrame com uma linha para cada violação de relação, permitindo encontrar e corrigir rapidamente quaisquer problemas nos seus dados.

Personalize a função definindo um limite de cobertura, escolhendo como lidar com chaves ausentes e definindo quantas chaves ausentes serão reportadas.

Use a função list_relationship_violations com pandas DataFrames para manter seus dados consistentes e precisos. Isso ajuda você a criar modelos confiáveis de machine learning e obter insights mais profundos de seus dados.