Semantic Link

Semantic Link

Fabric Semantic Link è stato finalmente annunciato ed è disponibile per tutti. Il semantik link permette di accedere facilmente al modello semantico di Power BI utilizzando Python/R/Spark in un notebook in modo da poter arricchire/aumentare i report di Power BI con i dati provenienti da altri mondi come ad esempio quello della data science.

Con il collegamento semantico è possibile usare modelli semantici di Power BI all'interno di un progetto di data science per eseguire attività come analisi statistiche approfondite e modellazione predittiva con tecniche di machine learning. L'output può essere archiviato in OneLake utilizzando Apache Spark e inserito in Power BI utilizzando Direct Lake.

Il Semantic Link include una semplice libreria Python (sampy) che può essere utilizzata nel notebook Fabric per accedere a qualsiasi set di dati Power BI (ovvero modello semantico), incluse tutte le relazioni, i dati, le misure, le colonne calcolate, le gerarchie, DMV ed eseguire DAX rispetto nei notebook utilizzando Python o Spark.

#Configurazione libreria
!pip install semantic-link --q 

import pandas as pd
import sempy.fabric as fabric

Alcuni esempi di utilizzo

Eseguire una misura di un modello semantico di power bi da un notebook spark in Fabric

import requests
import pandas as pd
import sempy.fabric as fabric

TotalSales= (fabric.evaluate_measure(workspace="Modelli-Demo",dataset = "FinancialAnalytics", measure='Total Sales'))

TotalSales

risultato è nell'immagine sottostante

Eseguire un codice DAX in un modello semantico di power bi da un notebook spark in Fabric

import requests
import pandas as pd
import sempy.fabric as fabric

fabric.evaluate_dax(workspace="Modelli-Demo",dataset = "FinancialAnalytics", dax_string="""EVALUATE SUMMARIZE('Sales Orders','Sales Orders'[OrderStatus])""")

Il risultato è nell'immagine sottostante

Oltre a comandi di eseguzione di comandi per ottenere dei dati è possibile anche eseguire l'aggiornamento dei dataset di power bi attraverso il seguente script.

import sempy.fabric as fabric 

script = [
    {
        "table": "Sales Orders"
    }
]

fabric.refresh_dataset(
    workspace="Modelli-Demo",
    dataset="FinancialAnalytics", 
    objects=script,
)

Qui trovate un set di interessanti notebook