Explore e valide relações em modelos semânticos e dataframes
Neste artigo, você aprenderá a usar as funções de link semântico SemPy para descobrir e validar relações em seus modelos semânticos do Power BI e pandas DataFrames.
Em ciência de dados e aprendizado de máquina, é importante entender a estrutura e as relações dentro de seus dados. O Power BI é uma ferramenta poderosa que permite modelar e visualizar essas estruturas e relacionamentos. Para obter mais informações ou criar modelos de aprendizado de máquina, você pode se aprofundar usando as funções de link semântico nos módulos da biblioteca SemPy.
Cientistas de dados e analistas de negócios podem usar 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.
Use o seletor de experiência no lado esquerdo da sua página inicial para alternar para a experiência Synapse Data Science.
Crie um novo bloco de notas para copiar/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 ao usar o Fabric e não há necessidade de 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
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 por relacionamento, permitindo que você explore e analise facilmente as relações dentro do 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
A plot_relationship_metadata
função ajuda a visualizar relações em um modelo semântico para que você possa obter uma melhor compreensão da estrutura do modelo. Esta função cria um gráfico que exibe as conexões entre tabelas e colunas. O gráfico facilita a compreensão da estrutura do modelo semântico e como diferentes elementos estão relacionados.
O exemplo a seguir mostra 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 código anterior, a list_relationships
função recupera as relações no modelo semântico my_dataset e a plot_relationship_metadata
função cria um gráfico para visualizar as relações.
Você pode personalizar o gráfico definindo quais colunas incluir, especificando como lidar com chaves ausentes e fornecendo mais atributos graphviz .
Validar relações em modelos semânticos
Agora que você tem uma melhor compreensão das relações em seu modelo semântico, você pode usar a list_relationship_violations
função para validar essas relações e identificar possíveis problemas ou inconsistências. A list_relationship_violations
função ajuda a validar o conteúdo de suas tabelas para garantir que elas correspondam às relações definidas em seu modelo semântico.
Usando essa função, você pode identificar inconsistências com a multiplicidade de relacionamento especificada e resolver quaisquer 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, primeiro importe o sempy.fabric
módulo e leia as tabelas do seu modelo semântico.
Em seguida, você chama a função com um dicionário que mapeia nomes de tabela para o DataFrames com 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 contém as tabelas Sales, Products e Customers do modelo semântico my_dataset. Você pode personalizar a função definindo um limite de cobertura, especificando como lidar com chaves ausentes e definindo o número de chaves ausentes a serem relatadas.
A função retorna um DataFrame pandas com uma linha por violação de relacionamento, permitindo que você identifique e resolva facilmente quaisquer problemas em seu modelo semântico.
Ao usar a list_relationship_violations
função, você pode garantir que seu modelo semântico seja consistente e preciso, permitindo que você crie modelos de aprendizado de máquina mais confiáveis e obtenha insights mais profundos sobre seus dados.
Encontrar relações em pandas DataFrames
Embora o list_relationships
, plot_relationships_df
e list_relationship_violations
as funções no módulo Fabric sejam ferramentas poderosas para explorar relacionamentos em modelos semânticos, você também pode precisar descobrir relacionamentos em outras fontes de dados importadas como pandas DataFrames.
É aqui que a find_relationships
sempy.relationship
função no módulo entra em jogo.
A find_relationships
função no módulo ajuda cientistas sempy.relationships
de dados e analistas de negócios a descobrir relacionamentos potenciais dentro de uma lista de pandas DataFrames. Ao usar essa função, você pode identificar possíveis conexões entre tabelas e colunas, permitindo que você entenda melhor a estrutura de seus dados e como diferentes elementos estão relacionados.
O código de exemplo a seguir mostra 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 chama a find_relationships
função com uma lista de três Pandas DataFrames: df_sales
, df_products
, e df_customers
.
A função retorna um DataFrame pandas com uma linha por relação potencial, permitindo que você explore e analise facilmente as relações dentro de seus dados.
Você pode personalizar a função especificando um limite de cobertura, um limite de semelhança de nome, uma lista de relacionamentos a serem excluídos e se deseja incluir relações muitos-para-muitos.
Validar relacionamentos em pandas DataFrames
Depois de descobrir relacionamentos potenciais em seus pandas DataFrames usando a find_relationships
função, você pode usar a list_relationship_violations
função para validar esses relacionamentos e identificar possíveis problemas ou inconsistências.
A list_relationship_violations
função valida o conteúdo de suas tabelas para garantir que elas correspondam às relações descobertas. Usando essa função para identificar inconsistências com a multiplicidade de relacionamento especificada, você pode resolver quaisquer problemas antes que eles afetem sua análise de dados ou modelos de aprendizado de máquina.
O código de exemplo a seguir 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 código anterior chama a list_relationship_violations
função com uma lista de três pandas DataFrames, df_sales
, df_products
, e df_customers
, mais as relações DataFrame da find_relationships
função.
A list_relationship_violations
função retorna um DataFrame pandas com uma linha por violação de relacionamento, permitindo que você identifique e resolva facilmente quaisquer problemas em seus dados.
Você pode personalizar a função definindo um limite de cobertura, especificando como lidar com chaves ausentes e definindo o número de chaves ausentes a serem relatadas.
Ao usar a list_relationship_violations
função com pandas DataFrames, você pode garantir que seus dados sejam consistentes e precisos, permitindo que você crie modelos de aprendizado de máquina mais confiáveis e obtenha insights mais profundos sobre seus dados.
Conteúdos relacionados
- Saiba mais sobre funções semânticas
- Introdução à documentação de referência do SemPy
- Tutorial: Descobrir relações em um modelo semântico usando link semântico
- Tutorial: Descubra relações no conjunto de dados Synthea usando o link semântico
- Detete, explore e valide dependências funcionais em seus dados