Exploración y validación de relaciones en modelos semánticos y elementos DataFrame
En este artículo, aprenderá a usar las funciones de vínculo semántico de SemPy para detectar y validar relaciones en los modelos semánticos de Power BI y los 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 es una herramienta eficaz que permite modelar y visualizar estas estructuras y relaciones. Para más información o crear modelos de aprendizaje automático, puede profundizar más mediante las funciones de vínculo semántico en los módulos de la biblioteca SemPy.
Los científicos de datos y los analistas de negocios pueden usar funciones de SemPy para enumerar, visualizar y validar relaciones en modelos semánticos de Power BI, o bien buscar y validar relaciones en elementos DataFrame de Pandas.
Requisitos previos
Obtenga una suscripción a Microsoft Fabric. También puede registrarse para obtener una evaluación gratuita de Microsoft Fabric.
Inicie sesión en Microsoft Fabric.
Cambie a la experiencia de ciencia de datos de Synapse mediante el conmutador de experiencia en el lado izquierdo de la página principal.
Cree un nuevo cuaderno, para copiar/pegar código en las celdas.
Para Spark 3.4 y versiones posteriores, el vínculo semántico está disponible en el entorno de ejecución predeterminado al usar Fabric y 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
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")
En el código anterior se llama a la función list_relationships
con un modelo semántico de Power BI denominado my_dataset. La función devuelve un DataFrame de Pandas con una fila por relación, lo que le permite explorar y analizar fácilmente las relaciones dentro del 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
La función plot_relationship_metadata
ayuda a visualizar las relaciones en un modelo semántico para que pueda comprender mejor la estructura del modelo semántico. Esta función crea un gráfico en el que se muestran las conexiones entre tablas y columnas. El gráfico facilita la comprensión de la estructura del modelo semántico y de cómo están relacionados los distintos elementos.
En el ejemplo siguiente se muestra cómo usar la función 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)
En el código anterior, la función list_relationships
recupera las relaciones del modelo semántico my_dataset y la función plot_relationship_metadata
crea un grafo para visualizar estas relaciones.
Puede personalizar el grafo si especifica las columnas que se van a incluir, cómo controlar las claves que faltan y si proporciona más atributos graphviz.
Validación de relaciones en modelos semánticos
Ahora que tiene una mejor comprensión de las relaciones del modelo semántico, puede usar la función list_relationship_violations
para validar estas relaciones e identificar posibles problemas o incoherencias. La función list_relationship_violations
le ayuda a validar el contenido de las tablas para asegurarse de que coinciden con las relaciones definidas en el modelo semántico.
Con esta función, puede identificar incoherencias con la multiplicidad de la relación especificada y solucionar los problemas antes de que afecten al análisis de datos o a los modelos de aprendizaje automático.
Para usar la función list_relationship_violations
, primero deberá importar el módulo sempy.fabric
y leer las tablas del modelo semántico.
Después, puede llamar a la función con un diccionario que asigne nombres de tabla a elementos DataFrame 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)
En el código anterior, se llama a la función list_relationship_violations
con un diccionario que contiene las tablas Sales, Products y Customers del modelo semántico my_dataset. Puede personalizar la función si establece un umbral de cobertura, especifica cómo controlar las claves que faltan y define el número de claves que faltan que se notifican.
La función devuelve un DataFrame de Pandas con una fila por infracción de relación, lo que le permite identificar y solucionar fácilmente los problemas del modelo semántico.
Mediante el uso de la función list_relationship_violations
, puede asegurarse de que el modelo semántico sea coherente y preciso, lo que le permite crear modelos de aprendizaje automático más confiables y obtener información más detallada sobre los datos.
Búsqueda de relaciones en DataFrames de Pandas
Aunque las funciones de list_relationships
, plot_relationships_df
y list_relationship_violations
del módulo de Fabric son herramientas eficaces para explorar las relaciones dentro de los modelos semánticos, es posible que también tenga que detectar relaciones de otros orígenes de datos importadas como elementos DataFrame de Pandas.
Aquí es donde entra en juego la función find_relationships
del módulo sempy.relationship
.
La función find_relationships
del módulo sempy.relationships
ayuda a los científicos de datos y a los analistas de negocios a detectar posibles relaciones dentro de una lista de elementos DataFrame de Pandas. Con esta función, puede identificar posibles conexiones entre tablas y columnas, lo que le permite comprender mejor la estructura de los datos y cómo están relacionados los distintos elementos.
En el ejemplo de código siguiente se muestra cómo buscar relaciones en elementos DataFrame de Pandas:
from sempy.relationships import find_relationships
tables = [df_sales, df_products, df_customers]
find_relationships(tables)
En el código anterior, se llama a la función find_relationships
con una lista de tres elementos DataFrame de Pandas: df_sales
, df_products
y df_customers
.
La función devuelve un DataFrame de Pandas con una fila por relación potencial, lo que le permite explorar y analizar fácilmente las relaciones dentro de los datos.
Puede personalizar la función si especifica 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 varios a varios.
Validación de relaciones en DataFrames de Pandas
Después de detectar posibles relaciones dentro de los DataFrames de Pandas, mediante la función find_relationships
, puede usar la función list_relationship_violations
para validar estas relaciones e identificar posibles problemas o incoherencias.
La función list_relationship_violations
valida el contenido de las tablas para asegurarse de que coinciden con las relaciones detectadas. Con esta función, puede identificar incoherencias con la multiplicidad de la relación especificada y solucionar los problemas antes de que afecten al análisis de datos o a los modelos de aprendizaje automático.
En el ejemplo de código siguiente se muestra cómo buscar infracciones de relaciones en elementos DataFrame 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 código anterior, se llama a la función list_relationship_violations
con una lista de tres elementos DataFrame de Pandas (df_sales
, df_products
y df_customers
), más las relaciones de DataFrame obtenidas de la función find_relationships
.
La función list_relationship_violations
devuelve un DataFrame de Pandas con una fila por infracción de relación, lo que le permite identificar y solucionar fácilmente los problemas de los datos.
Puede personalizar la función si establece un umbral de cobertura, especifica cómo controlar las claves que faltan y define el número de claves que faltan que se notifican.
Mediante el uso de la función list_relationship_violations
con DataFrames de Pandas, puede asegurarse de que los datos son coherentes y precisos, lo que le permite crear modelos de aprendizaje automático más confiables y obtener información más detallada sobre los datos.
Contenido relacionado
- Más información sobre las funciones semánticas
- Introducción a la documentación de referencia de SemPy
- Tutorial: Detección de relaciones en un modelo semántico mediante el vínculo semántico
- Tutorial: Detección de relaciones en el conjunto de datos de Synthea con el vínculo semántico
- Detección, exploración y validación de dependencias funcionales en los datos