Compartir a través de


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

  • 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.

  1. Instale SemPy desde PyPI mediante la funcionalidad de instalación en línea %pip en el cuaderno:

    %pip install semantic-link
    
  2. Realice las importaciones necesarias de módulos que necesitará más adelante:

    import sempy.fabric as fabric
    
  3. Puede conectarse al área de trabajo de Power BI. Enumere los modelos semánticos en el área de trabajo:

    fabric.list_datasets()
    
  4. 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)

Consulte otros tutoriales para el vínculo semántico/SemPy: