Risolvere i problemi relativi all'aggiornamento incrementale e ai dati in tempo reale

Esistono due fasi quando si implementa una soluzione di aggiornamento incrementale e dati in tempo reale: la prima è la configurazione di parametri e filtri e la definizione di un criterio in Power BI Desktop, mentre la seconda è l'operazione di aggiornamento semantico iniziale e gli aggiornamenti successivi nel servizio. Questo articolo illustra la risoluzione dei problemi separatamente per ognuna di queste fasi.

Dopo aver partizionato la tabella nel servizio Power BI, è importante tenere presente che le tabelle aggiornate in modo incrementale che ottengono anche dati in tempo reale con DirectQuery funzionano in modalità ibrida, ovvero operano sia in modalità di importazione che in modalità DirectQuery. Tutte le tabelle con relazioni con una tabella ibrida aggiornata in modo incrementale devono usare la modalità Dual in modo che possano essere usate in modalità importazione e DirectQuery senza compromettere le prestazioni. Inoltre, gli oggetti visivi del report potrebbero memorizzare nella cache i risultati per evitare l'invio di query all'origine dati, impedendo così alla tabella di raccogliere gli aggiornamenti dei dati più recenti in tempo reale. La sezione finale sulla risoluzione dei problemi illustra questi problemi in modalità ibrida.

Prima di risolvere i problemi relativi all'aggiornamento incrementale e ai dati in tempo reale, assicurarsi di esaminare l'aggiornamento incrementale per i modelli e i dati in tempo reale e le informazioni dettagliate in Configurare l'aggiornamento incrementale e i dati in tempo reale.

Configurazione in Power BI Desktop

La maggior parte dei problemi che si verificano durante la configurazione dell'aggiornamento incrementale e dei dati in tempo reale deve avere a che fare con la riduzione delle query. Come descritto in Panoramica dell'aggiornamento incrementale per i modelli - Origini dati supportate, l'origine dati deve supportare la riduzione delle query.

Problema: il caricamento dei dati richiede troppo tempo

Nell'editor di Power Query, dopo aver selezionato Applica, il caricamento dei dati richiede una quantità eccessiva di tempo e risorse del computer. Esistono diverse possibili cause.

Causa: mancata corrispondenza del tipo di dati

Questo problema può essere causato da una mancata corrispondenza del tipo di dati in cui Date/Time è il tipo di dati richiesto per i parametri RangeStart e RangeEnd, ma la colonna data della tabella in cui vengono applicati i filtri non è il tipo di dati Date/Time o viceversa. Sia il tipo di dati dei parametri che la colonna di dati filtrata devono essere del tipo di dati Date/Time e il formato deve essere lo stesso. In caso contrario, la query non può essere eseguita.

Soluzione: verificare il tipo di dati

Verificare che la colonna data/ora per la tabella di aggiornamento incrementale sia del tipo di dati Date/Time. Se la tabella non contiene una colonna di tipo di dati Date/Time, ma usa invece un tipo di dati integer, è possibile creare una funzione che converte il valore di data/ora nei parametri RangeStart e RangeEnd in modo che corrisponda alla chiave surrogata integer della tabella dell'origine dati. Per altre informazioni, vedere Configurare l'aggiornamento incrementale - Convertire DateTime in Integer.

Causa: l'origine dati non supporta la riduzione delle query

Come descritto in Aggiornamento incrementale e dati in tempo reale per i modelli - Requisiti, l'aggiornamento incrementale è progettato per le origini dati che supportano la riduzione delle query. Assicurarsi che le query sull'origine dati vengano ridotte in Power BI Desktop prima della pubblicazione nel servizio, in cui i problemi di riduzione delle query possono essere notevolmente composti. Questo approccio è particolarmente importante quando si includono dati in tempo reale in un criterio di aggiornamento incrementale perché la partizione DirectQuery in tempo reale richiede la riduzione delle query.

Soluzione: verificare e testare le query

Nella maggior parte dei casi viene visualizzato un avviso nella finestra di dialogo Criteri di aggiornamento incrementale che indica se la query da eseguire sull'origine dati non supporta la riduzione delle query. Tuttavia, in alcuni casi potrebbe essere necessario assicurarsi che la riduzione delle query sia possibile. Se possibile, monitorare la query passata all'origine dati usando uno strumento come SQL Profiler. Una query con filtri basati su RangeStart e RangeEnd deve essere eseguita in una singola query.

È anche possibile specificare un periodo di data/ora breve nei parametri RangeStart e RangeEnd che includono non più di poche migliaia di righe. Se il carico di dati filtrati dall'origine dati al modello richiede molto tempo, è probabile che la query non venga piegata.

Se si determina che la query non viene piegata, vedere Linee guida per la riduzione delle query in Power BI Desktop e Riduzione delle query di Power Query per identificare cosa potrebbe impedire la riduzione delle query e come o se l'origine dati può anche supportare la riduzione delle query.

Aggiornamento semantico del modello nel servizio

La risoluzione dei problemi di aggiornamento incrementale nel servizio varia a seconda del tipo di capacità in cui è stato pubblicato il modello. I modelli semantici nelle capacità Premium supportano l'uso di strumenti come SQL Server Management Studio (SSMS) per visualizzare e aggiornare in modo selettivo singole partizioni. I modelli di Power BI Pro, d'altra parte, non forniscono l'accesso agli strumenti tramite l'endpoint XMLA, quindi la risoluzione dei problemi di aggiornamento incrementale potrebbe richiedere più prove ed errori.

Problema: timeout dell'aggiornamento iniziale

L'aggiornamento pianificato per i modelli di Power BI Pro in una capacità condivisa prevede un limite di tempo di due ore. Questo limite di tempo è aumentato a cinque ore per i modelli in una capacità Premium. I sistemi di origine dati possono anche imporre un limite di dimensioni restituite dalla query o un timeout delle query.

Causa: le query di origine dati non vengono piegate

Anche se i problemi di riduzione delle query possono essere in genere determinati in Power BI Desktop prima della pubblicazione nel servizio, è possibile che le query di aggiornamento del modello non vengano ridotte, causando tempi di aggiornamento eccessivi e l'utilizzo eccessivo delle risorse del motore mashup delle query. Questa situazione si verifica perché viene creata una query per ogni partizione nel modello. Se le query non vengono piegate e i dati non vengono filtrati nell'origine dati, il motore tenta di filtrare i dati.

Soluzione: verificare la riduzione delle query

Usare uno strumento di traccia nell'origine dati per determinare la query passata per ogni partizione è una singola query che include un filtro basato sui parametri RangeStart e RangeEnd. In caso contrario, verificare che la riduzione delle query si verifichi nel modello di Power BI Desktop durante il caricamento di una piccola quantità di dati filtrata nel modello. In caso contrario, recuperarlo prima nel modello, eseguire un aggiornamento dei metadati solo al modello (usando l'endpoint XMLA) o se un modello Di Power BI Pro su una capacità condivisa, eliminare il modello incompleto nel servizio, ripubblicare e riprovare a eseguire un'operazione di aggiornamento iniziale.

Se si determina che le query non vengono piegate, vedere le Linee guida per la riduzione delle query in Power BI Desktop e Riduzione delle query di Power Query per informazioni sull'identificazione di ciò che potrebbe impedire la riduzione delle query.

Causa: i dati caricati nelle partizioni sono troppo grandi

Soluzione: ridurre le dimensioni del modello

In molti casi, il timeout è causato dalla quantità di dati che devono essere sottoposti a query e caricati nelle partizioni del modello supera i limiti di tempo imposti dalla capacità. Ridurre le dimensioni o la complessità del modello o valutare la possibilità di suddividere il modello in parti più piccole.

Soluzione: abilitare il formato di archiviazione di modelli di grandi dimensioni

Per i modelli pubblicati nelle capacità Premium, se il modello supera i 1 GB o più, è possibile migliorare le prestazioni dell'operazione di aggiornamento e assicurarsi che il modello non limiti di dimensioni massime abilitando il formato di archiviazione dei modelli di grandi dimensioni prima di eseguire la prima operazione di aggiornamento nel servizio. Per altre informazioni, vedere Modelli di grandi dimensioni in Power BI Premium.

Soluzione: aggiornamento iniziale bootstrap

Per i modelli pubblicati nelle capacità Premium, è possibile eseguire il bootstrap dell'operazione di aggiornamento iniziale. Il bootstrap consente al servizio di creare oggetti tabella e partizione per il modello, ma non di caricare ed elaborare i dati cronologici in una delle partizioni. Per altre informazioni, vedere Aggiornamento incrementale avanzato - Impedire i timeout nell'aggiornamento completo iniziale.

Causa: timeout query origine dati

Le query possono essere limitate da un limite di tempo predefinito per l'origine dati.

Soluzione: eseguire l'override del limite di tempo nell'espressione di query

Molte origini dati consentono l'override del limite di tempo nell'espressione di query. Per altre informazioni, vedere Aggiornamento incrementale per i modelli - Limiti di tempo.

Problema: l'aggiornamento non riesce a causa di valori duplicati

Causa: le date post sono state modificate

Con un'operazione di aggiornamento, nel modello vengono aggiornati solo i dati modificati nell'origine dati. Poiché i dati sono divisi per una data, è consigliabile che le date successive (transazioni) non vengano modificate.

Se una data viene modificata accidentalmente, possono verificarsi due problemi: gli utenti notano che alcuni totali modificati nei dati cronologici (che non dovrebbero verificarsi) o durante un aggiornamento viene restituito un errore che indica che un valore univoco non è effettivamente univoco. Per quest'ultimo, questa situazione può verificarsi quando la tabella con aggiornamento incrementale configurato viene usata in una relazione 1:N con un'altra tabella come lato 1 e deve avere valori univoci. Quando i dati vengono modificati per un ID specifico, tale ID viene quindi visualizzato in un'altra partizione e il motore rileva che il valore non è univoco.

Soluzione: aggiornare partizioni specifiche

In caso di necessità aziendale di modificare alcuni dati passati dalle date, una possibile soluzione consiste nell'usare SSMS per aggiornare tutte le partizioni dal punto in cui si trova la modifica fino alla partizione di aggiornamento corrente, mantenendo così il lato 1 della relazione univoca.

Problema: i dati vengono troncati

Causa: è stato superato il limite di query dell'origine dati

Alcune origini dati, ad esempio Esplora dati di Azure, Log Analytics e Application Insights, hanno un limite di 64 MB (compressi) sui dati che possono essere restituiti per una query esterna. Esplora dati di Azure potrebbe restituire un errore esplicito, ma per altri utenti, ad esempio Log Analytics e Application Insights, i dati restituiti vengono troncati.

Soluzione: specificare periodi di aggiornamento e archiviazione più piccoli

Specificare periodi di aggiornamento e archiviazione più piccoli nei criteri. Ad esempio, se è stato specificato un periodo di aggiornamento di un anno e viene restituito un errore di query o i dati restituiti vengono troncati, provare un periodo di aggiornamento di 12 mesi. Si vuole assicurarsi che le query per la partizione di aggiornamento corrente o qualsiasi partizione cronologica in base ai periodi di aggiornamento e archiviazione non restituiscano più di 64 MB di dati.

Problema: l'aggiornamento non riesce a causa di conflitti tra chiavi di partizione

Causa: la data nella colonna data nell'origine dati viene aggiornata

Il filtro sulla colonna data viene usato per partizionare in modo dinamico i dati in intervalli di tempo nel servizio Power BI. L'aggiornamento incrementale non è progettato per supportare i casi in cui la colonna data filtrata viene aggiornata nel sistema di origine. Un aggiornamento viene interpretato come un inserimento e un'eliminazione, non come un aggiornamento effettivo. Se l'eliminazione si verifica nell'intervallo cronologico e non nell'intervallo incrementale, non viene prelevata, il che può causare errori di aggiornamento dei dati a causa di conflitti di chiave di partizione.

Modalità ibrida nel servizio (anteprima)

Quando Power BI applica criteri di aggiornamento incrementale con dati in tempo reale, la tabella aggiornata in modo incrementale viene trasformata in una tabella ibrida che opera sia in modalità di importazione che in modalità DirectQuery. Si noti la partizione DirectQuery alla fine dell'elenco di partizioni seguenti di una tabella di esempio. La presenza di una partizione DirectQuery ha implicazioni per le tabelle correlate e gli oggetti visivi del report che eseguono query in questa tabella.

Screenshot della tabella ibrida.

Problema: le prestazioni delle query sono scarse

Le tabelle ibride che operano sia in modalità di importazione che DirectQuery richiedono che tutte le tabelle correlate funzionino in modalità doppia in modo che possano fungere da cache o non memorizzate nella cache, a seconda del contesto della query inviata al modello di Power BI. La modalità doppia consente a Power BI di ridurre il numero di relazioni limitate nel modello e generare query efficienti sulle origini dati per garantire prestazioni ottimali. Non è possibile eseguire il push di relazioni limitate nell'origine dati che richiede Power BI per recuperare più dati del necessario. Poiché le tabelle in modalità Doppia possono fungere da tabelle in modalità DirectQuery o Importa, questa situazione viene evitata.

Quando si configura un criterio di aggiornamento incrementale, Power BI Desktop ricorda di passare a qualsiasi tabella correlata in modalità doppia quando si seleziona Recupera i dati più recenti in tempo reale con DirectQuery (solo Premium). Assicurarsi inoltre di esaminare tutte le relazioni tra tabelle esistenti in Visualizzazione modello.

Screenshot che mostra la conversione di tabelle correlate in modalità doppia.

Le tabelle attualmente in modalità DirectQuery sono facilmente commutate in modalità Dual. Nelle proprietà della tabella, in Avanzate, selezionare Dual dalla casella di riepilogo Modalità di archiviazione. Le tabelle attualmente in uso in modalità di importazione, tuttavia, richiedono il lavoro manuale. Le tabelle Dual hanno gli stessi vincoli funzionali delle tabelle DirectQuery, Power BI Desktop non è quindi in grado di convertire le tabelle di importazione perché potrebbero basarsi su altre funzionalità non disponibili in modalità doppia. È necessario ricreare manualmente queste tabelle in modalità DirectQuery e quindi convertirle in modalità doppia. Per altre informazioni, vedere Gestire la modalità di archiviazione in Power BI Desktop.

Problema: gli oggetti visivi del report non mostrano i dati più recenti

Causa: Power BI memorizza nella cache i risultati delle query che migliorano le prestazioni e riducono il carico back-end

Per impostazione predefinita, Power BI memorizza nella cache i risultati delle query in modo che le query degli oggetti visivi del report possano essere elaborate rapidamente anche se sono basate su DirectQuery. Evitare query di origine dati non necessarie migliora le prestazioni e riduce il carico dell'origine dati, ma potrebbe anche significare che le modifiche più recenti ai dati nell'origine non sono incluse nei risultati.

Soluzione: configurare l'aggiornamento pagina automatico

Per mantenere il recupero delle modifiche più recenti dei dati dall'origine, configurare l'aggiornamento pagina automatico per i report nel servizio Power BI. L'aggiornamento automatico delle pagine può essere eseguito a intervalli fissi, ad esempio cinque secondi o dieci minuti. Quando viene raggiunto tale intervallo specifico, tutti gli oggetti visivi nella pagina inviano una query di aggiornamento all'origine dati e vengono aggiornati di conseguenza. In alternativa, è possibile aggiornare gli oggetti visivi in una pagina in base al rilevamento delle modifiche nei dati. Questo approccio richiede una misura di rilevamento delle modifiche usata da Power BI per eseguire il polling dell'origine dati per le modifiche. Il rilevamento delle modifiche è supportato solo nelle aree di lavoro che fanno parte di una capacità Premium. Per altre informazioni, vedere Aggiornamento automatico della pagina in Power BI.