Tutorial: Extrair e calcular medidas do Power BI de um notebook do Jupyter
Este tutorial ilustra como usar o SemPy (versão prévia) para calcular medidas em modelos semânticos (conjuntos de dados do Power BI).
Neste tutorial, você aprenderá a:
- Avalie as medidas do Power BI programaticamente por meio de uma interface Python da biblioteca Python de Semantic Link (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 que você busque 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 alternador de experiência no lado esquerdo da sua página inicial para mudar para a experiência de Ciência de Dados Synapse.
Selecione Workspaces no painel de navegação esquerdo para localizar e selecionar seu workspace. Esse workspace se torna seu workspace atual.
Faça o download do modelo semântico Retail Analysis Sample PBIX.pbix e carregue-o em seu espaço de trabalho.
Acompanhar no notebook
O notebook powerbi_measures_tutorial.ipynb acompanha este tutorial.
Para abrir o notebook que acompanha este tutorial, siga as instruções em Preparar seu sistema para tutoriais de ciência de dados para importar os notebooks para seu workspace.
Se preferir copiar e colar o código a partir dessa página, você poderá criar um novo notebook.
Certifique-se de anexar um lakehouse ao notebook antes de começar a executar o código.
Configurar o notebook
Nesta seção, você configura um ambiente de notebook com os módulos e dados necessários.
Instale
SemPy
por meio do PyPI usando a funcionalidade de instalação em linha%pip
dentro do notebook:%pip install semantic-link
Realize as importações necessárias de módulos que você precisará mais tarde:
import sempy.fabric as fabric
Você pode se conectar ao espaço de trabalho do Power BI. Liste os modelos semânticos no workspace:
fabric.list_datasets()
Carregue o modelo semântico. Neste tutorial, você usa o modelo semântico Retail Analysis Sample PBIX:
dataset = "Retail Analysis Sample PBIX"
Listar medidas do espaço de trabalho
Listar medidas no modelo semântico, usando a função list_measures
do 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 evaluate_measure
do SemPy.
Avaliar uma medida bruta
No código a seguir, use a função evaluate_measure
do SemPy para calcular uma medida pré-configurada chamada "Average Selling Area Size". 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")
Avaliar uma medida com groupby_columns
Você pode agrupar a saída da medida através de determinadas colunas fornecendo o parâmetro extra groupby_columns
:
fabric.evaluate_measure(dataset, measure="Average Selling Area Size", groupby_columns=["Store[Chain]", "Store[DistrictName]"])
No código anterior, você fez agrupamento através das colunas Chain
e DistrictName
da tabela Store
no modelo semântico.
Avaliar uma medida com filtros
Você também pode usar o parâmetro filters
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 entre 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 na execução de consultas com esse cliente, é possível alternar o back-end para a interface XMLA do Power BI usando use_xmla=True
. Os parâmetros de 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)
Conteúdo relacionado
Faça o check-out de outros tutoriais sobre link semântico / SemPy:
- Tutorial: Limpar dados com dependências funcionais
- Tutorial: Analisar dependências funcionais em um modelo semântico de exemplo
- Tutorial: Descobrir relações em um modelo semântico usando o link semântico
- Tutorial: descoberta de relacionamentos no conjunto de dados Synthea utilizando o link semântico (versão prévia)
- Tutorial: validar dados usando SemPy e Great Expectations (GX) (versão prévia)