Compartilhar via


Extrair e calcular medidas do Power BI de um jupyter notebook

Este tutorial mostra como usar SemPy (versão prévia) para calcular medidas em modelos semânticos do Power BI.

Neste tutorial, você aprenderá a:

  • Avaliar as medidas do Power BI programaticamente usando a interface Python da SemPy (biblioteca de link semântico)
  • Saiba mais sobre os componentes do SemPy que ajudam a fazer a ponte entre IA e BI:
    • FabricDataFrame — estrutura semelhante a pandas aprimorada com informações semânticas
    • Funções que obtêm modelos semânticos, incluindo dados brutos, configurações e medidas

Pré-requisitos

Acompanhar no notebook

O notebook powerbi_measures_tutorial.ipynb acompanha este tutorial.

Configurar o notebook

Nesta seção, você configurará um ambiente de notebook.

  1. Instale SemPy por meio do PyPI usando %pip embutido no notebook.

    %pip install semantic-link-sempy
    
  2. Importe os módulos que você usará mais tarde.

    import sempy.fabric as fabric
    
  3. Conecte-se ao workspace do Power BI e liste os modelos semânticos no workspace.

    fabric.list_datasets()
    
  4. Carregue o modelo semântico. Neste tutorial, você usará o modelo semântico de Exemplo de Análise de Varejo.

    dataset = "Retail Analysis Sample"
    
    dataset = "Retail Analysis Sample PBIX"
    

Listar medidas do espaço de trabalho

Use SemPy para list_measures listar medidas em um modelo semântico:

fabric.list_measures(dataset)

Avaliar medidas

Use a função do evaluate_measure SemPy para avaliar medidas de diferentes maneiras.

Avaliar uma medida bruta

Use a função do SemPy para calcular a medida pré-configurada chamada "Tamanho médio da evaluate_measure área de venda".

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

Avaliar uma medida com groupby_columns

Agrupe o resultado por colunas usando o groupby_columns parâmetro:

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

Esse código agrupa por Store[Chain] e Store[DistrictName].

Avaliar uma medida com filtros

Use o filters parâmetro para limitar os resultados a valores de coluna específicos:

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

Neste exemplo, Store está a tabela, Territory é a coluna e PA é um valor permitido.

Avaliar uma medida entre várias tabelas

Agrupar por colunas em 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 evaluate_measure função permite fornecer vários identificadores de medida e retorna os valores calculados em um único 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 usa as APIs REST do Power BI. Se as consultas falharem com esse cliente, alterne para o ponto de extremidade XMLA do Power BI definindo use_xmla=True. Os parâmetros SemPy são os mesmos para cálculos de medida 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)

Consulte outros tutoriais semânticos e semânticos do SemPy: