Partilhar via


Tutorial: Extrair e calcular medidas do Power BI a partir de um bloco de notas Jupyter

Este tutorial ilustra como usar o SemPy (visualização) para calcular medidas em modelos semânticos (conjuntos de dados do Power BI).

Neste tutorial, irá aprender a:

  • Avalie as medidas do Power BI programaticamente por meio de uma interface Python da biblioteca Python do link semântico (SemPy).
  • Familiarize-se com os componentes do SemPy que ajudam a preencher a lacuna entre IA e BI. Esses componentes incluem:
    • FabricDataFrame - uma estrutura semelhante a pandas aprimorada com informações semânticas adicionais.
    • Funções úteis que permitem buscar modelos semânticos, incluindo dados brutos, configurações e medidas.

Pré-requisitos

  • Obtenha uma assinatura do Microsoft Fabric. Ou inscreva-se para uma avaliação gratuita do Microsoft Fabric.

  • Entre no Microsoft Fabric.

  • Use o seletor de experiência no lado esquerdo da sua página inicial para alternar para a experiência Synapse Data Science.

    Captura de tela do menu do seletor de experiência, mostrando onde selecionar Ciência de Dados.

  • Selecione Espaços de trabalho no painel de navegação esquerdo para localizar e selecionar seu espaço de trabalho. Este espaço de trabalho torna-se o seu espaço de trabalho atual.

  • Transfira o modelo semântico PBIX.pbix de exemplo de análise de retalho e carregue-o para a sua área de trabalho.

Acompanhe no caderno

O notebook powerbi_measures_tutorial.ipynb acompanha este tutorial.

Para abrir o bloco de anotações que acompanha este tutorial, siga as instruções em Preparar seu sistema para tutoriais de ciência de dados, para importar o bloco de anotações para seu espaço de trabalho.

Se preferir copiar e colar o código desta página, pode criar um novo bloco de notas.

Certifique-se de anexar um lakehouse ao bloco de anotações antes de começar a executar o código.

Configurar o bloco de notas

Nesta seção, você configura um ambiente de notebook com os módulos e dados necessários.

  1. Instale SemPy a partir do PyPI usando o %pip recurso de instalação em linha no notebook:

    %pip install semantic-link
    
  2. Execute as importações necessárias de módulos que você precisará mais tarde:

    import sempy.fabric as fabric
    
  3. Você pode se conectar ao espaço de trabalho do Power BI. Liste os modelos semânticos no espaço de trabalho:

    fabric.list_datasets()
    
  4. Carregue o modelo semântico. Neste tutorial, você usa o modelo semântico PBIX de exemplo de análise de varejo:

    dataset = "Retail Analysis Sample PBIX"
    

Listar medidas do espaço de trabalho

Listar medidas no modelo semântico, usando a função do list_measures SemPy da seguinte maneira:

fabric.list_measures(dataset)

Avaliar medidas

Nesta seção, você avalia as medidas de várias maneiras, usando a função do evaluate_measure SemPy.

Avaliar uma medida bruta

No código a seguir, use a função do SemPy para calcular uma medida pré-configurada evaluate_measure chamada "Tamanho médio da área de venda". Você pode ver a fórmula subjacente para essa medida na saída da célula anterior.

fabric.evaluate_measure(dataset, measure="Average Selling Area Size")

Avalie uma medida com groupby_columns

Você pode agrupar a saída da medida por determinadas colunas fornecendo o parâmetro groupby_columnsextra :

fabric.evaluate_measure(dataset, measure="Average Selling Area Size", groupby_columns=["Store[Chain]", "Store[DistrictName]"])

No código anterior, você agrupado pelas colunas Chain e DistrictName da Store tabela no modelo semântico.

Avaliar uma medida com filtros

Você também pode usar o filters parâmetro para especificar valores específicos que o resultado pode conter para colunas específicas:

fabric.evaluate_measure(dataset, \
                        measure="Total Units Last Year", \
                        groupby_columns=["Store[Territory]"], \
                        filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]})

No código anterior, Store é o nome da tabela, Territory é o nome da coluna e PA é um dos valores que o filtro permite.

Avaliar uma medida em várias tabelas

Você pode agrupar a medida por colunas que se estendem por várias tabelas no modelo semântico.

fabric.evaluate_measure(dataset, measure="Total Units Last Year", groupby_columns=["Store[Territory]", "Sales[ItemID]"])

Avaliar várias medidas

A função evaluate_measure permite que você forneça identificadores de várias medidas e produza os valores calculados no mesmo DataFrame:

fabric.evaluate_measure(dataset, measure=["Average Selling Area Size", "Total Stores"], groupby_columns=["Store[Chain]", "Store[DistrictName]"])

Usar o conector XMLA do Power BI

O cliente de modelo semântico padrão é apoiado pelas APIs REST do Power BI. Se houver algum problema ao executar consultas com esse cliente, é possível alternar o back-end para a interface XMLA do Power BI usando use_xmla=Trueo . Os parâmetros SemPy permanecem os mesmos para o cálculo de medidas com 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)

Confira outros tutoriais para link semântico / SemPy: