Partilhar via


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

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

Neste tutorial, irá aprender a:

  • Avaliar medidas do Power BI programaticamente usando a interface Python da biblioteca de Link Semântico (SemPy)
  • Saiba mais sobre os componentes do SemPy que ajudam a unir 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

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

  • Inicie sessão no Microsoft Fabric.

  • Altera para o Fabric usando o alternador de experiência no canto inferior esquerdo da sua página inicial.

    Captura de ecrã que mostra a seleção de Fabric no menu do comutador de experiências.

  • No painel de navegação, selecione Espaços de trabalho e, em seguida, selecione o espaço de trabalho para defini-lo como o 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.

Configurar o portátil

Nesta seção, você configura um ambiente de bloco de anotações.

  1. Instale SemPy a partir do PyPI usando %pip inline 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 espaço de trabalho do Power BI e 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 Retail Analysis Sample.

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

Listar medidas do espaço de trabalho

Use o SemPy list_measures para 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 evaluate_measure SemPy para calcular a medida pré-configurada chamada "Tamanho Médio da Área de Venda".

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

Avalie 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]"])

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

Avaliar uma medida com filtros

Use o parâmetro para limitar os filters 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 é a tabela, Territory é a coluna e PA é um valor permitido.

Avaliar uma medida em 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 este cliente, alterne para o ponto de extremidade XML 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)

Veja outros links semânticos e tutoriais do SemPy: