Compartilhar via


Explorar e validar relacionamentos em modelos semânticos e dataframes

Neste artigo, você aprenderá a usar as funções de link semântico do SemPy para descobrir e validar relacionamentos em modelos semânticos do Power BI e DataFrames do Pandas.

Em ciência de dados e aprendizado de máquina, é importante entender a estrutura e os relacionamentos dentro dos dados. O Power BI é uma ferramenta avançada que permite criar modelos e visualizar essas estruturas e relacionamentos. Para obter mais insights ou compilar modelos de machine learning, é possível se aprofundar mais ao usar as funções de link semântico nos módulos da biblioteca do SemPy.

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

Pré-requisitos

  • Crie um novo notebook para copiar/colar o código nas células.

  • Para o Spark 3.4 e versões posteriores, um link semântico está disponível no runtime padrão ao usar o Fabric, e não há necessidade de 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
    
  • Adicione um lakehouse ao Notebook.

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 função list_relationships com um modelo semântico do Power BI chamado my_dataset. A função retorna um DataFrame do Pandas com uma linha por relacionamento, permitindo explorar e analisar facilmente os relacionamentos dentro do 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

A função plot_relationship_metadata ajuda você a visualizar relacionamentos em um modelo semântico para que você possa ter um melhor reconhecimento 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 os diferentes elementos estão relacionados.

O exemplo a seguir mostra como usar a função plot_relationship_metadata:

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 função list_relationships recupera os relacionamentos no modelo semântico my_dataset, e a função plot_relationship_metadata cria um gráfico para visualizar os relacionamentos.

É possível personalizar o gráfico ao definir quais colunas incluir, especificar como lidar com chaves ausentes e fornecer mais atributos graphviz.

Validar relacionamentos em modelos semânticos

Agora que você tem um melhor reconhecimento dos relacionamentos em seu modelo semântico, é possível usar a função list_relationship_violations para validar esses relacionamentos e identificar possíveis problemas ou inconsistências. A função list_relationship_violations ajuda a validar o conteúdo das tabelas para garantir que elas correspondam aos relacionamentos definidos em seu modelo semântico.

Usando essa função, é possível identificar inconsistências com a multiplicidade de relacionamentos especificada e resolver problemas antes que eles afetem sua análise de dados ou modelos de machine learning.

Para usar a função list_relationship_violations, primeiro importe o módulo sempy.fabric e faça a leitura das tabelas do modelo semântico. Em seguida, chame a função com um dicionário que mapeia nomes de tabelas para os 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 função list_relationship_violations com um dicionário que contém as tabelas Vendas, Produtos e Clientes do modelo semântico my_dataset. É possível personalizar a função ao definir um limite de cobertura, especificar como lidar com chaves ausentes e definir o número de chaves ausentes a serem relatadas.

A função retorna um DataFrame do Pandas com uma linha por violação de relacionamento, permitindo identificar e resolver facilmente quaisquer problemas em seu modelo semântico. Usando a função list_relationship_violations, é possível garantir que seu modelo semântico seja consistente e preciso, permitindo criar modelos de machine learning mais confiáveis e obter insights mais profundos sobre seus dados.

Localizar relacionamentos no DataFrames do Pandas

Embora as funções list_relationships, plot_relationships_df e list_relationship_violations no módulo do Fabric sejam ferramentas avançadas para explorar relacionamentos dentro de modelos semânticos, talvez você também precise descobrir relacionamentos em outras fontes de dados importadas como DataFrames do Pandas.

É aí que a função find_relationships no módulo sempy.relationship entra em jogo.

A função find_relationships no módulo sempy.relationships ajuda cientistas de dados e analistas de negócios a descobrir relacionamentos potenciais em uma lista de DataFrames do Pandas. Usando essa função, você pode identificar possíveis conexões entre tabelas e colunas, permitindo uma melhor compreensão da estrutura de seus dados e como diferentes elementos estão relacionados.

O código de exemplo a seguir mostra como localizar relacionamentos em DataFrames do pandas:

from sempy.relationships import find_relationships

tables = [df_sales, df_products, df_customers]

find_relationships(tables)

O código anterior chama 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 do Pandas com uma linha por relacionamento potencial, permitindo explorar e analisar facilmente os relacionamentos dentro de seus dados.

Você pode personalizar a função ao especificar um limite de cobertura, um limite de similaridade de nomes, uma lista de relacionamentos a serem excluídos e se deseja incluir relações muitos para muitos.

Validar relacionamentos no DataFrames do Pandas

Depois de descobrir possíveis relacionamentos em seus DataFrames do Pandas ao usar a função find_relationships, você pode usar a função list_relationship_violations para validar esses relacionamentos e identificar possíveis problemas ou inconsistências.

A função list_relationship_violations valida o conteúdo das tabelas para garantir que elas correspondam aos relacionamentos descobertos. Ao usar esta função para identificar inconsistências com a multiplicidade de relacionamento especificada, é possível resolver problemas antes que eles afetem a análise de dados ou os modelos de machine learning.

O código de exemplo a seguir mostra como localizar violações de relacionamento em DataFrames do Pandas:

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 função list_relationship_violations com uma lista de três DataFrames, nomeadamente, df_sales, df_products e df_customers, do Pandas, mais os DataFrames de relacionamento da função find_relationships. A função list_relationship_violations retorna um DataFrame do Pandas com uma linha por violação de relacionamento, permitindo identificar e resolver facilmente quaisquer problemas em seus dados.

É possível personalizar a função ao definir um limite de cobertura, especificar como lidar com chaves ausentes e definir o número de chaves ausentes a serem relatadas.

Usando a função list_relationship_violations com DataFrames do Pandas, é possível garantir que seus dados sejam consistentes e precisos, permitindo criar modelos de machine learning mais confiáveis e obter insights mais profundos sobre seus dados.