Conectividade do Power BI com link semântico
A conectividade do Power BI está no centro do link semântico no Microsoft Fabric. Este artigo descreve as maneiras pelas quais o link semântico fornece conectividade a modelos semânticos para usuários dos ecossistemas Python pandas e Apache Spark.
Um modelo semântico geralmente representa um alto padrão de dados que é o resultado do processamento e refinamento de dados upstream. Os analistas de negócios podem:
- Codifique o conhecimento de domínio e a lógica de negócios em medidas do Power BI.
- Crie relatórios do Power BI usando modelos semânticos.
- Use esses relatórios para orientar as decisões de negócios.
Quando cientistas de dados que trabalham com os mesmos modelos semânticos tentam duplicar a lógica de negócios em diferentes ambientes de código ou linguagens, erros críticos podem resultar. O link semântico preenche a lacuna entre os modelos semânticos e a experiência Synapse Data Science no Microsoft Fabric para fornecer uma maneira para analistas de negócios e cientistas de dados colaborarem perfeitamente e reduzirem a incompatibilidade de dados.
O link semântico oferece conectividade para:
- O ecossistema Python pandas através da biblioteca Python SemPy.
- Modelos semânticos através do conector nativo do Spark que suporta PySpark, Spark SQL, R e Scala.
Conectividade de dados através da biblioteca Python SemPy para usuários de pandas
A biblioteca Python SemPy faz parte do recurso de link semântico e serve aos usuários pandas. A funcionalidade SemPy inclui recuperação de dados de tabelas, cálculo de medidas e execução de consultas e metadados DAX (Data Analysis Expressions).
Para o Spark 3.4 e superior, o link semântico está disponível no tempo de execução padrão ao usar o Fabric e não há necessidade de instalá-lo.
Para o Spark 3.3 ou inferior, ou para atualizar para a versão mais recente do link semântico, execute o seguinte comando:
%pip install -U semantic-link
O SemPy também estende pandas DataFrames com metadados adicionados propagados da fonte de dados do Power BI. Estes metadados incluem:
- Categorias de dados do Power BI:
- Geográfico: Endereço, lugar, cidade
- URL: URL da Web, URL da imagem
- Código de Barras
- Relações entre tabelas
- Hierarquias
Conectividade de dados através do link semântico Conector nativo do Spark
O conector nativo do Spark de link semântico permite que os usuários do Spark acessem tabelas e medidas do Power BI. O conector é independente de linguagem e suporta PySpark, Spark SQL, R e Scala.
Para usar o conector nativo do Spark, você representa modelos semânticos como namespaces do Spark e expõe de forma transparente as tabelas do Power BI como tabelas do Spark.
O comando a seguir configura o Spark para usar o conector nativo do Power BI Spark para o Spark SQL:
spark.conf.set("spark.sql.catalog.pbi", "com.microsoft.azure.synapse.ml.powerbi.PowerBICatalog")
# Optionally, configure the workspace using its ID
# Resolve workspace name to ID using fabric.resolve_workspace_id("My workspace")
# Replace 00000000-0000-0000-0000-000000000000 with your own workspace ID
# spark.conf.set("spark.sql.catalog.pbi.workspace, "00000000-0000-0000-0000-000000000000")
O comando a seguir lista todas as tabelas em um modelo semântico chamado Sales Dataset
:
%%sql
SHOW TABLES FROM pbi.`Sales Dataset`
O comando a seguir exibe dados da Customer
tabela no modelo Sales Dataset
semântico:
%%sql
SELECT * FROM pbi.`Sales Dataset`.Customer
As medidas do Power BI podem ser acessadas por meio da tabela virtual _Metrics
para fazer a ponte entre o Spark SQL relacional e o Power BI multidimensional. No exemplo a seguir, Total Revenue
e Revenue Budget
são medidas definidas no Sales Dataset
modelo semântico, e as outras colunas são dimensões. Funções de agregação como AVG
são ignoradas para medidas e estão presentes apenas para fornecer consistência com SQL.
O conector suporta a redução de predicados de cálculos, como Customer[State] in ('CA', 'WA')
de expressões Spark, para o mecanismo do Power BI para habilitar o uso do mecanismo otimizado do Power BI.
SELECT
`Customer[Country/Region]`,
`Industry[Industry]`,
AVG(`Total Revenue`),
AVG(`Revenue Budget`)
FROM
pbi.`Sales Dataset`.`_Metrics`
WHERE
`Customer[State]` in ('CA', 'WA')
GROUP BY
`Customer[Country/Region]`,
`Industry[Industry]`
Aumento de dados com medidas do Power BI
A add_measure
operação é um recurso poderoso de link semântico que permite aumentar dados com medidas de modelos semânticos. Esta operação está disponível apenas na biblioteca Python SemPy e não é suportada no conector nativo do Spark. Para obter mais informações sobre o add_measure
método, consulte add_measure na documentação da FabricDataFrame
classe.
Para usar a biblioteca Python SemPy, instale-a no kernel do seu notebook executando o seguinte código em uma célula do notebook:
# %pip and import only needs to be done once per notebook
%pip install semantic-link
from sempy.fabric import FabricDataFrame
O exemplo de código a seguir pressupõe que você tenha um FabricDataFrame existente com dados que deseja aumentar com medidas de um modelo semântico.
df = FabricDataFrame({
"Sales Agent": ["Agent 1", "Agent 1", "Agent 2"],
"Customer[Country/Region]": ["US", "GB", "US"],
"Industry[Industry]": ["Services", "CPG", "Manufacturing"],
}
)
joined_df = df.add_measure(["Total Revenue", "Total Budget"], dataset="Sales Dataset")
O add_measure
método executa as seguintes etapas:
- Resolve nomes de coluna nas dimensões FabricDataFrame para Power BI. A operação ignora quaisquer nomes de coluna que não possam ser resolvidos dentro do modelo semântico fornecido. Para obter mais informações, consulte a sintaxe DAX suportada.
- Define
group by
colunas, usando os nomes de colunas resolvidos. - Calcula uma ou mais medidas no
group by
nível. - Filtra o resultado pelas linhas existentes no FabricDataFrame.