Tutorial: Extracción y cálculo de medidas de Power BI de un cuaderno de Jupyter
En este tutorial se muestra cómo usar SemPy (versión preliminar) para calcular medidas en modelos semánticos (conjuntos de datos de Power BI).
En este tutorial, aprenderá a:
- Evalúe las medidas de Power BI mediante programación a través de una interfaz de Python de la biblioteca de Python de vínculo semántico (SemPy).
- Familiarícese con los componentes de SemPy que ayudan a salvar la brecha entre IA y BI. Estos componentes incluyen:
- FabricDataFrame: una estructura similar a Pandas mejorada con información semántica adicional.
- Funciones útiles que permiten capturar modelos semánticos, incluidos datos sin procesar, configuraciones y medidas.
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.
Seleccione Áreas de trabajo en el panel de navegación izquierdo para buscar y seleccionar el área de trabajo. Esta área de trabajo se convertirá en el área de trabajo actual.
Descargue el modelo semántico Retail Analysis Sample PBIX.pbix y cárguelo en el área de trabajo.
Seguimiento en el cuaderno
El cuaderno powerbi_measures_tutorial.ipynb acompaña a este tutorial.
Para abrir el cuaderno complementario para este tutorial, siga las instrucciones en Preparación del sistema para los tutoriales de ciencia de datos para importar el cuaderno en el área de trabajo.
Si prefiere copiar y pegar el código de esta página, puede crear un cuaderno nuevo.
Asegúrese de adjuntar una instancia de LakeHouse al cuaderno antes de empezar a ejecutar código.
Configuración del cuaderno
En esta sección, configurará un entorno de cuaderno con los módulos y los datos necesarios.
Instale
SemPy
desde PyPI mediante la funcionalidad de instalación en línea%pip
en el cuaderno:%pip install semantic-link
Realice las importaciones necesarias de módulos que necesitará más adelante:
import sempy.fabric as fabric
Puede conectarse al área de trabajo de Power BI. Enumere los modelos semánticos en el área de trabajo:
fabric.list_datasets()
Carga del modelo semántico. En este tutorial, usará el modelo semántico Ejemplo de análisis de minoristas PBIX:
dataset = "Retail Analysis Sample PBIX"
Enumeración de medidas del área de trabajo
Enumere las medidas del modelo semántico mediante la función list_measures
de SemPy de la siguiente manera:
fabric.list_measures(dataset)
Evaluación de medidas
En esta sección, evaluará las medidas de varias maneras mediante la función evaluate_measure
de SemPy.
Evaluación de una medida sin procesar
En el código siguiente, use la función evaluate_measure
de SemPy para calcular una medida preconfigurada denominada "Tamaño medio de área de venta". Puede ver la fórmula subyacente de esta medida en la salida de la celda anterior.
fabric.evaluate_measure(dataset, measure="Average Selling Area Size")
Evaluación de una medida con groupby_columns
Puede agrupar la salida de medida por determinadas columnas proporcionando el parámetro adicional groupby_columns
:
fabric.evaluate_measure(dataset, measure="Average Selling Area Size", groupby_columns=["Store[Chain]", "Store[DistrictName]"])
En el código anterior, ha agrupado por las columnas Chain
y DistrictName
de la Store
tabla del modelo semántico.
Evaluación de una medida con filtros
También puede usar el parámetro filters
para especificar valores específicos que el resultado puede contener para columnas concretas:
fabric.evaluate_measure(dataset, \
measure="Total Units Last Year", \
groupby_columns=["Store[Territory]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]})
En el código anterior, Store
es el nombre de la tabla, Territory
es el nombre de la columna y PA
es uno de los valores que permite el filtro.
Evaluación de una medida en varias tablas
Puede agrupar la medida por columnas que abarcan varias tablas del modelo semántico.
fabric.evaluate_measure(dataset, measure="Total Units Last Year", groupby_columns=["Store[Territory]", "Sales[ItemID]"])
Evaluación de varias medidas
La función evaluate_measure
permite proporcionar identificadores de varias medidas y generar los valores calculados en el mismo DataFrame:
fabric.evaluate_measure(dataset, measure=["Average Selling Area Size", "Total Stores"], groupby_columns=["Store[Chain]", "Store[DistrictName]"])
Uso del conector XMLA de Power BI
El cliente de modelo semántico predeterminado está respaldado por las API REST de Power BI. Si hay algún problema al ejecutar consultas con este cliente, es posible cambiar el back-end a la interfaz XMLA de Power BI mediante use_xmla=True
. Los parámetros SemPy siguen siendo los mismos para el cálculo de medida con XMLA.
fabric.evaluate_measure(dataset, \
measure=["Average Selling Area Size", "Total Stores"], \
groupby_columns=["Store[Chain]", "Store[DistrictName]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]}, \
use_xmla=True)
Contenido relacionado
Consulte otros tutoriales para el vínculo semántico/SemPy:
- Tutorial: Limpieza de datos con dependencias funcionales
- Tutorial: Análisis de dependencias funcionales en un modelo semántico de ejemplo
- 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 (versión preliminar)
- Tutorial: Validación de datos mediante SemPy y Grandes Expectativas (GX) (versión preliminar)