Partilhar via


Explore e valide relações 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 pandas DataFrames.

Em ciência de dados e aprendizado de máquina, entender a estrutura e os relacionamentos em seus dados é importante. O Power BI permite modelar e visualizar essas estruturas e relações. Para obter mais informações ou criar modelos de aprendizado de máquina, use funções de link semântico nos módulos da biblioteca SemPy.

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

Pré-requisitos

  • Obtenha uma assinatura do Microsoft Fabric. Ou inscreva-se para uma avaliação gratuita do Microsoft Fabric.

  • Entre no Microsoft Fabric.

  • Altera para o Fabric usando o alternador de experiência no canto inferior esquerdo da sua página inicial.

    Captura de ecrã que mostra a seleção de Fabric no menu do comutador de experiências.

  • Crie um novo bloco de notas para copiar e colar código nas células.

  • Para o Spark 3.4 e superior, o link semântico está disponível no tempo de execução padrão quando você usa o Fabric, portanto, não é necessário instalá-lo. Para o Spark 3.3 ou inferior, ou para atualizar para a versão mais recente do link semântico, execute o seguinte comando:

    %pip install -U semantic-link
    
  • Adicionar uma casa de lago ao seu bloco de notas

Listar relações em modelos semânticos

A list_relationships função no módulo retorna uma lista de todas as relações encontradas em um modelo semântico sempy.fabric do Power BI. A lista ajuda você a entender a estrutura de seus dados e como diferentes tabelas e colunas estão conectadas.

Esta função funciona usando link semântico para fornecer DataFrames anotados. Os DataFrames incluem os metadados necessários para entender as relações dentro do modelo semântico. Os DataFrames anotados facilitam a análise da estrutura do modelo semântico e o uso em modelos de aprendizado de máquina ou outras tarefas de análise de dados.

Para usar a list_relationships função, primeiro importe o sempy.fabric módulo. Em seguida, você chama a função usando o nome ou UUID do seu 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 função com um modelo semântico list_relationships 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.

Nota

Seu bloco de anotações, modelo semântico de conjunto de dados do Power BI e 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 de:

  • O espaço de trabalho da sua casa do lago, se você anexou uma casa do lago ao seu notebook.
  • O espaço de trabalho do seu notebook, se não houver uma casa do lago anexada.

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

Visualizar relações em modelos semânticos

Use a função para visualizar relações em um modelo semântico plot_relationship_metadata e aprender como o modelo é estruturado. Esta função cria um gráfico que mostra conexões entre tabelas e colunas, tornando mais fácil ver 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 gráfico para mostrar essas relações.

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

Validar relações em modelos semânticos

Use a list_relationship_violations função para verificar relações em seu modelo semântico e encontrar quaisquer 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 a multiplicidade de relacionamentos e corrigir problemas antes que eles afetem sua análise de dados ou modelos de aprendizado de máquina.

Para usar a list_relationship_violations função, importe o sempy.fabric módulo e leia as tabelas do seu modelo semântico. Em seguida, chame a função com um dicionário que associa nomes de tabela a DataFrames que contêm conteúdo de tabela.

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 Sales, Products e Customers 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 relatório.

A função retorna um DataFrame do pandas com uma linha para cada violação de relacionamento, permitindo-lhe identificar e corrigir rapidamente problemas no seu modelo semântico. Use a função para manter seu modelo semântico list_relationship_violations consistente e preciso, para que você crie modelos de aprendizado de máquina mais confiáveis e obtenha melhores insights de seus dados.

Encontrar relações em pandas DataFrames

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

Use a find_relationships função no sempy.relationship módulo para encontrar relações em pandas DataFrames.

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

Veja como encontrar relacionamentos em pandas DataFrames:

from sempy.relationships import find_relationships

tables = [df_sales, df_products, df_customers]

find_relationships(tables)

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

Personalize a função ao estabelecer um limite de cobertura, um limite de semelhança de nome, uma lista de relacionamentos a serem excluídos e se deseja incluir relacionamentos muitos-para-muitos.

Validar relacionamentos em pandas DataFrames

Depois de encontrar relacionamentos potenciais nos seus DataFrames de pandas usando a função find_relationships, use a função list_relationship_violations para validar esses relacionamentos 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 relacionamento especificada, para que você possa corrigir problemas antes que eles afetem sua análise de dados ou modelos de aprendizado de máquina.

Aqui está um exemplo que mostra como encontrar violações de relacionamento em 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 pandas DataFrames: df_sales, df_products e df_customers, juntamente com o DataFrame de relações da função find_relationships. A função list_relationship_violations retorna um DataFrame pandas com uma linha para cada violação de relacionamento, para que possa detetar 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 devem ser relatadas.

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