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 sottolinea la logica per ogni modalità e i possibili effetti sulle risorse di capacità di Power BI.

Le tre modalità del modello semantico sono:

Modalità di importazione

La modalità di importazione è la modalità più comune usata per sviluppare modelli semantici. Questa modalità offre prestazioni veloci grazie all'esecuzione di query in memoria. Offre inoltre flessibilità di progettazione per i modelli e il supporto per funzionalità di servizio Power BI specifiche (Q&A, Informazioni rapide e così via). A causa di questi punti di forza, è la modalità predefinita quando si crea una nuova soluzione Power BI Desktop.

È importante comprendere che i dati importati vengono sempre archiviati su disco. Quando vengono eseguite query o aggiornate, i dati devono essere caricati completamente in memoria della capacità di Power BI. Una volta in memoria, i modelli di importazione possono quindi ottenere risultati di query molto veloci. È anche importante comprendere che non esiste alcun concetto di modello di importazione parzialmente caricato in memoria.

Quando vengono aggiornati, i dati vengono compressi e ottimizzati e quindi archiviati su disco dal motore di archiviazione VertiPaq. Quando viene caricato dal disco in memoria, è possibile visualizzare la compressione di 10 volte. Pertanto, è ragionevole aspettarsi che 10 GB di dati di origine possano comprimere fino a circa 1 GB di dimensioni. Archiviazione dimensioni del disco possono ottenere una riduzione del 20% rispetto alle dimensioni compresse. La differenza nelle dimensioni può essere determinata confrontando le dimensioni del file di Power BI Desktop con l'utilizzo della memoria di Gestione attività del file.

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

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

Come illustrato nell'immagine seguente, un modello di importazione può integrare i dati da un numero qualsiasi di tipi di origine dati supportati.

Diagram shows an Import model can integrate data from any number of external data source types.

Tuttavia, anche se esistono vantaggi interessanti associati ai modelli di importazione, esistono anche svantaggi:

  • L'intero modello deve essere caricato in memoria prima che Power BI possa eseguire query sul modello, che può influire sulle risorse di capacità disponibili, soprattutto quando aumenta il numero e le dimensioni dei modelli di importazione.
  • I dati del modello sono aggiornati solo come l'aggiornamento più recente e quindi è necessario aggiornare i modelli di importazione, in genere in base a una pianificazione.
  • Un aggiornamento completo rimuove tutti i dati da tutte le tabelle e lo ricarica dall'origine dati. Questa operazione può essere costosa in termini di tempo e risorse per il servizio Power BI e le origini dati.

Nota

Power BI può ottenere un aggiornamento incrementale per evitare il troncamento 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 della risorsa servizio Power BI, i modelli di importazione richiedono:

  • Memoria sufficiente per caricare il modello quando viene eseguita una query o un aggiornamento.
  • Elaborazione di risorse e risorse di memoria aggiuntive per aggiornare i dati.

Modalità DirectQuery

La modalità DirectQuery è un'alternativa alla modalità di 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, le query native vengono usate per recuperare i dati dall'origine dati sottostante.

Diagram shows how DirectQuery model issues native queries to the underlying data source.

Esistono due motivi principali per considerare lo sviluppo di un modello DirectQuery:

  • Quando i volumi di dati sono troppo grandi, anche quando vengono applicati metodi di riduzione dei dati, per il caricamento in un modello o praticamente l'aggiornamento.
  • Quando i report e i dashboard devono distribuire dati quasi in tempo reale, oltre a quanto possibile raggiungere entro i limiti di aggiornamento pianificati. I limiti di aggiornamento pianificati sono otto volte al giorno per la capacità condivisa e 48 volte al giorno per una capacità Premium.

Esistono diversi vantaggi associati ai modelli DirectQuery:

  • I limiti delle dimensioni del modello di importazione non si applicano.
  • I modelli non richiedono l'aggiornamento dati pianificato.
  • Gli utenti del report visualizzano i dati più recenti durante l'interazione con filtri dei dati e filtri dei dati dei report. Inoltre, gli utenti del report possono aggiornare l'intero report per recuperare i dati correnti.
  • I report in tempo reale possono essere sviluppati usando la funzionalità Aggiornamento pagina automatico.
  • I riquadri del dashboard, in base ai modelli DirectQuery, possono essere aggiornati automaticamente ogni 15 minuti.

Esistono tuttavia alcune limitazioni associate ai modelli DirectQuery:

  • Le espressioni Power Query/Mashup possono essere solo funzioni che possono essere trasposte in query native riconosciute dall'origine dati.
  • Le formule DAX sono limitate all'uso solo di funzioni che possono essere trasposte in query native riconosciute dall'origine dati. Le tabelle calcolate non sono supportate.
  • Informazioni rapide funzionalità non sono supportate.

Dal punto di vista della risorsa servizio Power BI, i modelli DirectQuery richiedono:

  • Memoria minima per caricare il modello (solo metadati) quando viene eseguita una query.
  • A volte il servizio Power BI deve usare risorse del processore significative per generare ed elaborare query inviate all'origine dati. Quando si verifica questa situazione, può influire sulla velocità effettiva, soprattutto quando gli utenti simultanei eseguono query sul modello.

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

Modalità composita

La modalità composita può combinare le modalità Import e DirectQuery o integrare più origini dati DirectQuery. I modelli sviluppati in modalità composita 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 tabelle può essere configurata come Importazione, DirectQuery o Doppia. Una tabella configurata come modalità di archiviazione doppia è Importa e DirectQuery e questa impostazione consente al servizio Power BI di determinare la modalità più efficiente da usare su base query.

Diagram shows that a Composite model is a combination of Import and DirectQuery storage modes, configured at table level.

I modelli compositi si sforzano di offrire le migliori modalità Import e DirectQuery. Se configurati in modo appropriato, possono combinare le prestazioni elevate delle query dei modelli in memoria con la possibilità di recuperare dati quasi in tempo reale dalle origini dati.

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

Tabelle Pure Import e DirectQuery

È probabile che i modelli di dati che sviluppano modelli compositi configurino tabelle di tipo dimensione in modalità di importazione o di archiviazione doppia e tabelle di tipo fatto in modalità DirectQuery. Per altre informazioni sui ruoli della tabella dei modelli, vedere Informazioni sullo schema star e sull'importanza di Power BI.

Si consideri, ad esempio, un modello con una tabella product di tipo dimensione in modalità duale e una tabella dei fatti Sales in modalità DirectQuery. La tabella Product può essere eseguita in modo efficiente e rapido da query in memoria per eseguire il rendering di un filtro dei dati del report. È anche possibile eseguire query sulla tabella Sales in modalità DirectQuery con la tabella Product correlata. La seconda query potrebbe consentire la generazione di una singola query SQL nativa efficiente che unisce le tabelle Product e Sales e filtra 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 shows a hybrid table partition with Archived, Incremental refresh, and Real time rows marked.

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 i 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 è dati cronologici a cui si accede raramente. Una tabella ibrida può avere più partizioni di importazione, ma solo una partizione DirectQuery.