Partilhar via


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

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 Datasetsemâ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:

  1. 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.
  2. Define group by colunas, usando os nomes de colunas resolvidos.
  3. Calcula uma ou mais medidas no group by nível.
  4. Filtra o resultado pelas linhas existentes no FabricDataFrame.