# 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](https://learn.microsoft.com/en-us/python/api/semantic-link-sempy/sempy?view=semantic-link-python)) 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.

```plaintext
#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

```plaintext
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

![](https://media.licdn.com/dms/image/D4D12AQFawV3LypMcOQ/article-inline_image-shrink_1500_2232/0/1710973767317?e=1716422400&v=beta&t=h1U4uT3TvlOu5_tt4b6R8BSIwWVYzqufgmS5JHrXdi4 align="left")

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

```plaintext
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

![](https://media.licdn.com/dms/image/D4D12AQF2A2-Z9Gu6cg/article-inline_image-shrink_1500_2232/0/1710974553726?e=1716422400&v=beta&t=OPNf5bAetVYHH8Ad4oFEFZ-nRVfVdqh6DpCfgCYkAxk align="left")

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.

```plaintext
import sempy.fabric as fabric 

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

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

[Qui](https://github.com/microsoft/fabric-samples/tree/main/docs-samples/data-science/semantic-link-samples) trovate un set di interessanti notebook
