Modalità del modello semantico nel servizio Power BI

Questo articolo fornisce una spiegazione tecnica delle modalità del modello semantico di Power BI. Si applica ai modelli semantici che rappresentano una connessione dinamica a un modello di Analysis Services ospitato esternamente e anche ai modelli sviluppati in Power BI Desktop. L'articolo evidenzia la logica che sta alla base di ogni modalità e il possibile impatto sulle risorse di capacità di Power BI.

Le tre modalità del modello semantico sono:

Modalità di importazione

La modalità importazione è quella più usata per lo sviluppo di modelli semantici. Questa modalità offre velocità di esecuzione elevate grazie all'esecuzione di query in memoria. Offre anche flessibilità di progettazione ai modellatori e supporto di funzionalità specifiche del servizio Power BI (Q&A, Informazioni rapide e così via). A causa di questi punti di forza, è la modalità predefinita per la creazione di una nuova soluzione Power BI Desktop.

È importante comprendere che i dati importati vengono sempre archiviati su disco. Quando vengono sottoposti a query o aggiornati, i dati devono essere completamente caricati nella memoria della capacità di Power BI. Una volta caricati in memoria, i modelli Importazione possono restituire risultati della query in tempi molto rapidi. È anche importante sottolineare che non esiste il concetto di modello Importazione caricato parzialmente in memoria.

Quando vengono aggiornati, i dati vengono compressi e ottimizzati e quindi archiviati su disco tramite il motore di archiviazione VertiPaq. Quando i dati vengono caricati dal disco in memoria, è possibile vedere la compressione di 10 volte. Quindi è ragionevole aspettarsi che 10 GB di dati di origine siano comprimibili in circa 1 GB. La compressione può determinare una riduzione del 20% delle dimensioni di archiviazione su disco. È possibile determinare la differenza di dimensioni confrontando le dimensioni del file di Power BI Desktop con l'utilizzo della memoria del file in Gestione attività.

La flessibilità di progettazione può essere ottenuta in tre modi:

  • Integrare i dati memorizzando nella cache dati da flussi e origini dati esterne, indipendentemente dal tipo o dal formato dell'origine dati.
  • Usare l'intero set di funzioni linguaggio di formula M di Power Query M, detto M, durante la creazione di query di preparazione dei dati.
  • Applicare l'intero set di funzioni DAX (Data Analysis Expressions) per ottimizzare il modello con la logica di business. È disponibile il supporto per le colonne calcolate, le tabelle calcolate e le misure.

Come illustrato nell'immagine seguente, un modello Importazione può integrare i dati da un numero qualsiasi di tipi di origini dati supportate.

Diagramma che mostra un modello di importazione in grado di integrare i dati da qualsiasi numero di tipi di origine dati esterni.

I modelli Importazione presentano vantaggi importanti ma anche alcuni svantaggi:

  • Prima che Power BI possa eseguire la query nel modello, l'intero modello deve essere caricato in memoria. Questo può influire sulle risorse di capacità disponibili, specie quando aumentano il numero e le dimensioni dei modelli Importazione.
  • I dati del modello sono aggiornati all'ultimo aggiornamento eseguito, pertanto i modelli Importazione devono essere aggiornati periodicamente, in genere sulla base di una pianificazione.
  • Un aggiornamento completo rimuove tutti i dati da tutte le tabelle e li ricarica dall'origine dati. Questa operazione può essere dispendiosa in termini di tempo e risorse, sia per il servizio Power BI sia per le origini dati.

Nota

Power BI può implementare un aggiornamento incrementale, per evitare la troncatura e il ricaricamento di intere tabelle. Per altre informazioni, inclusi i piani e le licenze supportati, vedere Aggiornamento incrementale e dati in tempo reale per i modelli semantici.

Dal punto di vista delle risorse del servizio Power BI, i modelli Importazione richiedono:

  • Una quantità di memoria sufficiente per caricare il modello quando viene sottoposto a query o aggiornato.
  • Risorse per l'elaborazione e risorse di memoria aggiuntive per l'aggiornamento dei dati.

Modalità DirectQuery

La modalità DirectQuery rappresenta un'alternativa alla modalità Importazione. I modelli sviluppati in modalità DirectQuery non importano dati. Sono invece costituiti solo da metadati, che definiscono la struttura del modello. Quando viene eseguita una query sul modello, vengono usate query native per recuperare i dati dall'origine dati sottostante.

Diagramma che mostra in che modo il modello DirectQuery genera query native nell'origine dati sottostante.

Esistono due situazioni principali per le quali vale la pena considerare lo sviluppo di un modello DirectQuery:

  • Il caso in cui i volumi di dati sono troppo grandi (anche dopo l'applicazione di metodi di riduzione dei dati) per il caricamento in un modello o l'aggiornamento in condizioni soddisfacenti.
  • Il caso in cui i report e i dashboard devono restituire dati quasi in tempo reale, condizione non ottenibile con gli aggiornamenti pianificati. I limiti previsti per l'aggiornamento pianificato sono otto volte al giorno per una capacità condivisa e 48 volte al giorno per una capacità Premium.

I modelli DirectQuery presentano diversi vantaggi:

  • I limiti di dimensioni per l'importazione del modello non sono applicabili.
  • I modelli non richiedono l'aggiornamento dati pianificato.
  • Gli utenti dei report visualizzano i dati più recenti quando interagiscono con i filtri e le sezioni dei report. Gli utenti dei report possono anche aggiornare l'intero report per recuperare i dati correnti.
  • È possibile sviluppare report in tempo reale usando la funzionalità Aggiornamento pagina automatico.
  • I riquadri del dashboard, se basati su modelli DirectQuery, possono essere aggiornati automaticamente anche ogni 15 minuti.

I modelli DirectQuery presentano tuttavia alcune limitazioni:

  • Le espressioni Power Query/Mashup possono essere solo funzioni che possono essere trasposte in query native riconosciute dall'origine dati.
  • Le formule DAX potranno usare solo espressioni e funzioni M che possono essere trasposte in query native interpretabili dall'origine dati. Tabelle calcolate non supportate.
  • Le funzionalità di Informazioni rapide non sono supportate.

Dal punto di vista delle risorse del servizio Power BI, i modelli DirectQuery richiedono:

  • Una quantità di memoria minima per caricare il modello (solo metadati) quando viene eseguita una query.
  • In alcuni casi il servizio Power BI deve usare una quantità elevata di risorse del processore per generare ed elaborare le query inviate all'origine dati. Quando si verifica, questa situazione può influire sulla velocità effettiva del sistema, specie quando più utenti eseguono simultaneamente query sul modello.

Per altre informazioni, vedere Usare DirectQuery in Power BI Desktop.

Modalità Composito

La modalità Composito consente di combinare le modalità Importazione e DirectQuery oppure di integrare più origini dati DirectQuery. I modelli sviluppati in modalità Composito supportano la configurazione della modalità di archiviazione per ogni tabella del modello. Questa modalità supporta anche le tabelle calcolate, definite con DAX.

La modalità di archiviazione delle tabelle può essere configurata come Importazione, DirectQuery o Doppia. Una tabella configurata con la modalità di archiviazione Doppia supporta le modalità Importazione e DirectQuery e consente al servizio Power BI di determinare la modalità più efficiente da usare a seconda della query.

Il diagramma mostra che un modello composito è una combinazione di modalità di archiviazione Import e DirectQuery configurate a livello di tabella.

I modelli di tipo Composito hanno lo scopo di offrire le migliori caratteristiche delle modalità Importazione e DirectQuery. Se configurati in modo appropriato, possono combinare le prestazioni elevate delle query dei modelli in memoria con la capacità di recuperare dati dalle origini dati quasi in tempo reale.

Per altre informazioni, vedere Usare modelli compositi in Power BI Desktop.

Tabelle Pure Import e DirectQuery

In genere gli esperti di modellazione dati che sviluppano modelli di tipo Composito configurano le tabelle delle dimensioni in modalità Importazione o Doppia e le tabelle dei fatti in modalità DirectQuery. Per altre informazioni sui ruoli delle tabelle del modello, vedere Informazioni su uno schema star e sull'importanza di questo schema per Power BI.

Considerare ad esempio un modello con una tabella di tipo dimensioni Product in modalità Doppia e una tabella di tipo fatti Sales in modalità DirectQuery. La tabella Product supporta l'esecuzione rapida ed efficiente di query in memoria per il rendering di un filtro dei dati del report. Allo stesso tempo è possibile eseguire query in modalità DirectQuery sulla tabella Sales con la tabella Product correlata. La seconda query può abilitare la generazione di un'unica ed efficace query SQL nativa, che integra le tabelle Product e Sales ed applica un filtro in base ai valori del filtro dei dati.

Tabelle ibride

I modelli di dati che sviluppano modelli compositi possono anche configurare tabelle dei fatti come tabelle ibride. Una tabella ibrida è una tabella con una o più partizioni di importazione e una partizione DirectQuery. Il vantaggio di una tabella ibrida consiste nel fatto che potrebbe essere eseguita una query in modo efficiente e rapido dalla memoria, includendo contemporaneamente le modifiche più recenti dei dati dall'origine dati che si sono verificate dopo l'ultimo ciclo di importazione, come illustrato nella visualizzazione seguente.

Screenshot che mostra una partizione di tabella ibrida con righe archiviate, aggiornamento incrementale e in tempo reale contrassegnate.

Il modo più semplice per creare una tabella ibrida consiste nel configurare un criterio di aggiornamento incrementale in Power BI Desktop e abilitare l'opzione Recupera i dati più recenti in tempo reale con DirectQuery (solo Premium). Quando Power BI applica un criterio di aggiornamento incrementale con questa opzione abilitata, la tabella viene partiziona come lo schema di partizionamento visualizzato nel diagramma precedente. Per garantire prestazioni ottimali, configurare le tabelle di tipo dimensione in modalità di archiviazione doppia in modo che Power BI possa generare query SQL native efficienti durante l'esecuzione di query sulla partizione DirectQuery.

Nota

Power BI supporta le tabelle ibride solo quando il modello semantico è ospitato nelle aree di lavoro nelle capacità Premium. Di conseguenza, è necessario caricare il modello semantico in un'area di lavoro Premium se si configura un criterio di aggiornamento incrementale con l'opzione per ottenere i dati più recenti in tempo reale con DirectQuery. Per altre informazioni, vedere Aggiornamento incrementale e dati in tempo reale per modelli semantici.

È anche possibile convertire una tabella Import in una tabella ibrida aggiungendo una partizione DirectQuery tramite TMSL (Tabular Model Scripting Language) o il modello a oggetti tabulare (TOM) o usando uno strumento di terze parti. Ad esempio, è possibile partizionare una tabella dei fatti in modo che la maggior parte dei dati venga lasciata nel data warehouse mentre viene importata solo una frazione dei dati più recenti. Questo approccio consente di ottimizzare le prestazioni se la maggior parte di questi dati sono dati cronologici a cui si accede raramente. Una tabella ibrida può avere più partizioni di importazione, ma solo una partizione DirectQuery.