Compartir vía


Exploración y validación de relaciones en modelos semánticos y elementos DataFrame

En este artículo se muestra cómo usar las funciones de vínculo semántico de SemPy para detectar y validar relaciones en modelos semánticos de Power BI y dataFrames de Pandas.

En la ciencia de datos y el aprendizaje automático, es importante comprender la estructura y las relaciones de los datos. Power BI le permite modelar y visualizar estas estructuras y relaciones. Para obtener más información o crear modelos de aprendizaje automático, use funciones de vínculo semántico en módulos de biblioteca de SemPy.

Los científicos de datos y los analistas de negocios usan funciones de SemPy para enumerar, visualizar y validar relaciones en modelos semánticos de Power BI, o buscar y validar relaciones en dataFrames de Pandas.

Requisitos previos

  • Cree un cuaderno para copiar y pegar código en celdas.

  • Para Spark 3.4 y versiones posteriores, el vínculo semántico está disponible en el entorno de ejecución predeterminado cuando se usa Fabric, por lo que no es necesario instalarlo. Para Spark 3.3 y versiones anteriores, o para actualizar a la versión más reciente del vínculo semántico, ejecute el siguiente comando:

    %pip install -U semantic-link
    
  • Agrega un Lakehouse a tu cuaderno

Enumeración de relaciones en modelos semánticos

La función list_relationships del módulo sempy.fabric devuelve una lista de todas las relaciones que se encuentran en un modelo semántico de Power BI. La lista le ayuda a comprender la estructura de los datos y cómo se conectan las distintas tablas y columnas.

Esta función funciona mediante el vínculo semántico para proporcionar elementos DataFrame anotados. Los elementos DataFrame incluyen los metadatos necesarios para comprender las relaciones dentro del modelo semántico. Los elementos DataFrame anotados facilitan el análisis de la estructura del modelo semántico y su uso en modelos de aprendizaje automático u otras tareas de análisis de datos.

Para usar la función list_relationships, primero debe importar el módulo sempy.fabric. Después, puede llamar a la función con el nombre o UUID del modelo semántico de Power BI, como se muestra en el ejemplo siguiente:

import sempy.fabric as fabric

fabric.list_relationships("my_dataset")

El código anterior llama a la list_relationships función con un modelo semántico de Power BI denominado my_dataset. La función devuelve un DataFrame de Pandas con una fila para cada relación, por lo que puede explorar y analizar rápidamente las relaciones en el modelo semántico.

Nota:

El cuaderno, el modelo semántico de conjunto de datos de Power BI y el almacén de lago se pueden ubicar en la misma área de trabajo o en áreas de trabajo diferentes. De forma predeterminada, SemPy intenta acceder al modelo semántico desde:

  • El área de trabajo del almacén de lago, si ha asociado un almacén de lago al cuaderno.
  • El área de trabajo del cuaderno, si no hay ningún almacén de lago asociado.

Si el modelo semántico no se encuentra en ninguna de estas áreas de trabajo, debe especificar el área de trabajo del modelo semántico al llamar a un método de SemPy.

Visualización de relaciones en los modelos semánticos

Use la plot_relationship_metadata función para visualizar las relaciones en un modelo semántico y aprender cómo se estructura el modelo. Esta función crea un gráfico que muestra las conexiones entre tablas y columnas, lo que facilita la visualización de cómo están relacionados los distintos elementos.

Este es un ejemplo de cómo usar la plot_relationship_metadata función :

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

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

En el ejemplo, la list_relationships función obtiene las relaciones del modelo semántico my_dataset y la plot_relationship_metadata función crea un gráfico para mostrar esas relaciones.

Para personalizar el gráfico, elija las columnas que se van a incluir, establezca cómo controlar las claves que faltan y agregue más atributos graphviz .

Validación de relaciones en modelos semánticos

Use la función para comprobar las relaciones en el list_relationship_violations modelo semántico y encontrar cualquier problema o incoherencia. La list_relationship_violations función comprueba las tablas para asegurarse de que coinciden con las relaciones del modelo semántico.

Esta función le ayuda a encontrar incoherencias con la multiplicidad de relaciones y a corregir problemas antes de que afecten al análisis de datos o a los modelos de aprendizaje automático.

Para usar la list_relationship_violations función , importe el sempy.fabric módulo y lea las tablas del modelo semántico. A continuación, llame a la función con un diccionario que asigne nombres de tabla a DataFrames con contenido de tabla.

En el ejemplo de código siguiente se muestra cómo enumerar las infracciones de relación:

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)

El código anterior llama la función list_relationship_violations con un diccionario que tiene las tablas Sales, Products y Customers del modelo semántico de my_dataset. Puede personalizar la función estableciendo un umbral de cobertura, eligiendo cómo controlar las claves que faltan y estableciendo el número de claves que faltan para informar.

La función devuelve un DataFrame de pandas con una fila por cada violación de relación, de modo que pueda encontrar y corregir rápidamente problemas en su modelo semántico. Use la list_relationship_violations función para mantener el modelo semántico coherente y preciso, por lo que creará modelos de aprendizaje automático más confiables y obtendrá una mejor información de los datos.

Búsqueda de relaciones en DataFrames de Pandas

Las list_relationshipsfunciones , plot_relationships_dfy list_relationship_violations del módulo Fabric son herramientas eficaces para explorar relaciones en modelos semánticos. A veces, es necesario encontrar relaciones en otros orígenes de datos, como los DataFrames de pandas.

Usa la find_relationships función en el sempy.relationship módulo para buscar relaciones en DataFrames de pandas.

La función find_relationships del módulo sempy.relationships permite a los científicos de datos y analistas de negocio encontrar posibles relaciones en una lista de DataFrames de pandas. Esta función le ayuda a detectar conexiones entre tablas y columnas, por lo que obtendrá más información sobre los datos y cómo se relacionan sus elementos.

Aquí se muestra cómo buscar relaciones en dataFrames de Pandas:

from sempy.relationships import find_relationships

tables = [df_sales, df_products, df_customers]

find_relationships(tables)

El código anterior llama a la función find_relationships con una lista de tres DataFrames de pandas: df_sales, df_products, y df_customers. La función devuelve un DataFrame de Pandas con una fila para cada relación potencial, por lo que puede explorar y analizar relaciones en los datos.

Personalice la función estableciendo un umbral de cobertura, un umbral de similitud de nombres, una lista de relaciones que se van a excluir y si se deben incluir relaciones de muchos a muchos.

Validación de relaciones en DataFrames de Pandas

Después de encontrar posibles relaciones en los DataFrames de Pandas mediante la find_relationships función , use la list_relationship_violations función para validar estas relaciones e identificar cualquier problema o incoherencia.

La list_relationship_violations función comprueba las tablas para asegurarse de que coinciden con las relaciones detectadas. Use esta función para buscar incoherencias con la multiplicidad de relación especificada, por lo que puede corregir problemas antes de que afecten al análisis de datos o a los modelos de aprendizaje automático.

Este es un ejemplo que muestra cómo buscar infracciones de relación en dataFrames de 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)

En el ejemplo se llama a la función list_relationship_violations con tres DataFrames de pandas: df_sales, df_products, y df_customers, junto con el DataFrame de relaciones de la función find_relationships. La función list_relationship_violations devuelve un DataFrame de pandas con una fila para cada infracción de relación, por lo que puede encontrar y corregir rápidamente los problemas en sus datos.

Personalice la función estableciendo un umbral de cobertura, eligiendo cómo controlar las claves que faltan y definiendo cuántas claves faltan para informar.

Utilice la función list_relationship_violations con DataFrame de pandas para mantener los datos coherentes y precisos. Esto le ayuda a crear modelos de aprendizaje automático confiables y obtener información más detallada de los datos.