Uso dell'aggiornamento incrementale con flussi di dati

Con i flussi di dati, è possibile inserire grandi quantità di dati in Power BI o nell'archiviazione fornita dall'organizzazione. In alcuni casi, tuttavia, non è pratico aggiornare una copia completa dei dati di origine in ogni aggiornamento. Una buona alternativa è l'aggiornamento incrementale, che offre i vantaggi seguenti per i flussi di dati:

  • L'aggiornamento si verifica più velocemente: è necessario aggiornare solo i dati modificati. Ad esempio, aggiornare solo gli ultimi cinque giorni di un flusso di dati di 10 anni.
  • L'aggiornamento è più affidabile: ad esempio, non è necessario mantenere connessioni a esecuzione prolungata a sistemi di origine volatili.
  • L'utilizzo delle risorse è ridotto: un minor numero di dati da aggiornare riduce il consumo complessivo di memoria e altre risorse.

L'aggiornamento incrementale è disponibile nei flussi di dati creati in Power BI e nei flussi di dati creati in Power Apps. Questo articolo illustra le schermate di Power BI, ma queste istruzioni si applicano ai flussi di dati creati in Power BI o in Power Apps.

Nota

Quando lo schema di una tabella in un flusso di dati analitici cambia, viene eseguito un aggiornamento completo per garantire che tutti i dati risultanti corrispondano al nuovo schema. Di conseguenza, tutti i dati archiviati in modo incrementale vengono aggiornati e in alcuni casi, se il sistema di origine non conserva i dati cronologici, viene perso.

Aggiornamento incrementale per i flussi di dati.

L'uso dell'aggiornamento incrementale nei flussi di dati creati in Power BI richiede che il flusso di dati risieda in un'area di lavoro nella capacità Premium. L'aggiornamento incrementale in Power Apps richiede piani power apps per app o per utente ed è disponibile solo per i flussi di dati con Azure Data Lake Archiviazione come destinazione.

In Power BI o Power Apps, l'aggiornamento incrementale richiede che i dati di origine inseriti nel flusso di dati abbiano un campo DateTime in cui l'aggiornamento incrementale può filtrare.

Configurazione dell'aggiornamento incrementale per i flussi di dati

Un flusso di dati può contenere molte tabelle. L'aggiornamento incrementale viene configurato a livello di tabella, consentendo a un flusso di dati di contenere sia tabelle completamente aggiornate che tabelle aggiornate in modo incrementale.

Per configurare una tabella aggiornata in modo incrementale, iniziare configurando la tabella come qualsiasi altra tabella.

Dopo aver creato e salvato il flusso di dati, selezionare AggiornamentoAggiornamento incrementale. incrementale nella visualizzazione tabella, come illustrato nell'immagine seguente.

Icona di aggiornamento incrementale per i flussi di dati.

Quando si seleziona l'icona, viene visualizzata la finestra Impostazioni di aggiornamento incrementale. Attivare l'aggiornamento incrementale.

Aggiornamento incrementale per i flussi di dati.

L'elenco seguente illustra le impostazioni nella finestra Impostazioni di aggiornamento incrementale.

  • Attivazione/disattivazione dell'aggiornamento incrementale: attiva o disattiva i criteri di aggiornamento incrementale per la tabella.

  • Elenco a discesa Campo filtro: seleziona il campo della query in cui filtrare la tabella per gli incrementi. Questo campo contiene solo campi DateTime. Non è possibile usare l'aggiornamento incrementale se la tabella non contiene un campo DateTime.

    Importante

    Scegliere un campo data non modificabile per il filtro di aggiornamento incrementale. Se il valore del campo cambia (ad esempio, con un campo di data modificato ), questo può causare errori di aggiornamento a causa di valori duplicati nei dati.

  • Archiviare/aggiornare le righe del passato: l'esempio nell'immagine precedente illustra queste impostazioni successive.

    In questo esempio vengono definiti criteri di aggiornamento per archiviare cinque anni di dati in totale e aggiornare in modo incrementale 10 giorni di dati. Supponendo che la tabella venga aggiornata ogni giorno, vengono eseguite le azioni seguenti per ogni operazione di aggiornamento:

    • Aggiungere un nuovo giorno di dati.

    • Aggiorna 10 giorni, fino alla data corrente.

    • Rimuovere gli anni di calendario precedenti a cinque anni prima della data corrente. Ad esempio, se la data corrente è il 1° gennaio 2019, l'anno 2013 viene rimosso.

    Il primo aggiornamento del flusso di dati potrebbe richiedere un po' di tempo per importare tutti i cinque anni, ma è probabile che gli aggiornamenti successivi vengano completati molto più rapidamente.

  • Rilevare le modifiche ai dati: un aggiornamento incrementale di 10 giorni è molto più efficiente di un aggiornamento completo di cinque anni, ma potrebbe essere possibile fare ancora meglio. Quando si seleziona la casella di controllo Rileva modifiche ai dati, è possibile selezionare una colonna data/ora per identificare e aggiornare solo i giorni in cui i dati sono stati modificati. Si presuppone che tale colonna esista nel sistema di origine, che in genere è a scopo di controllo. Il valore massimo di questa colonna viene valutato per ogni punto nell'intervallo incrementale. Se i dati non sono stati modificati dopo l'ultimo aggiornamento, non è necessario aggiornare il periodo. Nell'esempio questo potrebbe ridurre ulteriormente i giorni aggiornati in modo incrementale da 10 a 2.

    Suggerimento

    La progettazione corrente richiede che la colonna usata per rilevare le modifiche ai dati sia persistente e memorizzata nella cache in memoria. È possibile prendere in considerazione una delle tecniche seguenti per ridurre la cardinalità e il consumo di memoria:

    • Rendere persistente solo il valore massimo di questa colonna al momento dell'aggiornamento, ad esempio usando una funzione di Power Query.
    • Ridurre la precisione a un livello accettabile in base ai requisiti di frequenza di aggiornamento.
  • Solo i periodi di completamento dell'aggiornamento: si supponga che l'aggiornamento sia pianificato per l'esecuzione alle 4:00 ogni giorno. Se i dati vengono visualizzati nel sistema di origine durante le prime quattro ore di quel giorno, potrebbe non essere necessario tener conto di tali dati. Alcune metriche aziendali, ad esempio barili al giorno nel settore del petrolio e del gas, non sono pratiche o sensibili a tenere conto in base a giorni parziali.

    Un altro esempio in cui l'aggiornamento dei periodi completi è appropriato consiste nell'aggiornare i dati da un sistema finanziario. Si immagini un sistema finanziario in cui i dati per il mese precedente vengano approvati il 12° giorno di calendario del mese. È possibile impostare l'intervallo incrementale su un mese e pianificare l'aggiornamento da eseguire il 12° giorno del mese. Con questa opzione selezionata, il sistema aggiornerà i dati di gennaio (il periodo mensile più recente completo) il 12 febbraio.

Nota

L'aggiornamento incrementale del flusso di dati determina le date in base alla logica seguente: se un aggiornamento è pianificato, l'aggiornamento incrementale per i flussi di dati usa il fuso orario definito nei criteri di aggiornamento. Se non esiste alcuna pianificazione per l'aggiornamento, l'aggiornamento incrementale utilizza l'ora dal computer che esegue l'aggiornamento.

Dopo la configurazione dell'aggiornamento incrementale, il flusso di dati modifica automaticamente la query in modo da includere il filtro in base alla data. Se il flusso di dati è stato creato in Power BI, è anche possibile modificare la query generata automaticamente usando l'editor avanzato in Power Query per ottimizzare o personalizzare l'aggiornamento. Altre informazioni sull'aggiornamento incrementale e sul relativo funzionamento sono disponibili nelle sezioni seguenti.

Nota

Quando si modifica il flusso di dati, l'editor di Power Query si connette direttamente all'origine dati e non visualizza i dati memorizzati nella cache o filtrati nel flusso di dati dopo l'elaborazione dei criteri di aggiornamento incrementale. Per controllare i dati memorizzati nella cache all'interno del flusso di dati, connettersi da Power BI Desktop al flusso di dati dopo aver configurato i criteri di aggiornamento incrementale e aggiornare il flusso di dati.

Aggiornamento incrementale e tabelle collegate e tabelle calcolate

Per le tabelle collegate , l'aggiornamento incrementale aggiorna la tabella di origine. Poiché le tabelle collegate sono semplicemente un puntatore alla tabella originale, l'aggiornamento incrementale non ha alcun impatto sulla tabella collegata. Quando la tabella di origine viene aggiornata in base ai criteri di aggiornamento definiti, qualsiasi tabella collegata deve presupporre che i dati nell'origine vengano aggiornati.

Le tabelle calcolate sono basate su query in esecuzione su un archivio dati, che può essere un altro flusso di dati. Di conseguenza, le tabelle calcolate si comportano allo stesso modo delle tabelle collegate.

Poiché le tabelle calcolate e le tabelle collegate si comportano in modo analogo, i requisiti e i passaggi di configurazione sono gli stessi per entrambi. Una differenza è che per le tabelle calcolate, in determinate configurazioni, l'aggiornamento incrementale non può essere eseguito in modo ottimizzato a causa della modalità di compilazione delle partizioni.

Modifica tra aggiornamento incrementale e completo

I flussi di dati supportano la modifica dei criteri di aggiornamento tra aggiornamento incrementale e completo. Quando si verifica una modifica in entrambe le direzioni (da completa a incrementale o incrementale a completa), la modifica influisce sul flusso di dati dopo l'aggiornamento successivo.

Quando si sposta un flusso di dati dall'aggiornamento completo al incrementale, la nuova logica di aggiornamento aggiorna il flusso di dati rispettando la finestra di aggiornamento e incrementando come definito nelle impostazioni di aggiornamento incrementale.

Quando si sposta un flusso di dati dall'aggiornamento incrementale all'aggiornamento completo, tutti i dati accumulati nell'aggiornamento incrementale vengono sovrascritti dal criterio definito nell'aggiornamento completo. È necessario approvare questa azione.

Supporto del fuso orario nell'aggiornamento incrementale

L'aggiornamento incrementale del flusso di dati dipende dal momento in cui viene eseguito. Il filtro della query dipende dal giorno in cui viene eseguita.

Per soddisfare tali dipendenze e garantire la coerenza dei dati, l'aggiornamento incrementale per i flussi di dati implementa l'euristica seguente per gli scenari di aggiornamento ora :

  • Nel caso in cui nel sistema sia definito un aggiornamento pianificato, l'aggiornamento incrementale usa le impostazioni del fuso orario dalla sezione dell'aggiornamento pianificato. Ciò garantisce che il fuso orario in cui si trova la persona che aggiorna il flusso di dati sia sempre coerente con la definizione del sistema.

  • Se non viene definito alcun aggiornamento pianificato, i flussi di dati usano il fuso orario del computer dell'utente che esegue l'aggiornamento.

L'aggiornamento incrementale può essere richiamato anche usando le API. In questo caso, la chiamata API può contenere un'impostazione del fuso orario usata nell'aggiornamento. L'uso delle API può essere utile per scopi di test e convalida.

Dettagli sull'implementazione dell'aggiornamento incrementale

I flussi di dati usano il partizionamento per l'aggiornamento incrementale. L'aggiornamento incrementale nei flussi di dati mantiene il numero minimo di partizioni per soddisfare i requisiti dei criteri di aggiornamento. Le partizioni precedenti che escono dall'intervallo vengono eliminate, che mantiene una finestra mobile. Le partizioni vengono unite opportunisticamente, riducendo il numero totale di partizioni necessarie. Ciò migliora la compressione e, in alcuni casi, può migliorare le prestazioni delle query.

Gli esempi in questa sezione condividono i criteri di aggiornamento seguenti:

  • Archiviare le righe nell'ultimo trimestre
  • Aggiornare le righe negli ultimi 10 giorni
  • Rilevare le modifiche ai dati = False
  • Solo i giorni di completamento dell'aggiornamento = True

Unire partizioni

In questo esempio, le partizioni giorno vengono unite automaticamente al livello del mese dopo che non rientrano nell'intervallo incrementale. Le partizioni nell'intervallo incrementale devono essere mantenute con granularità giornaliera per consentire solo l'aggiornamento di tali giorni. L'operazione di aggiornamento con data di esecuzione 12/11/2016 unisce i giorni di novembre, perché non rientrano nell'intervallo incrementale.

Unire partizioni nei flussi di dati.

Eliminare le partizioni precedenti

Le partizioni precedenti che non rientrano nell'intervallo totale vengono rimosse. L'operazione di aggiornamento con data di esecuzione 1/2/2017 elimina la partizione per Q3 del 2016 perché non rientra nell'intervallo totale.

Eliminare le partizioni precedenti nei flussi di dati.

Ripristino da un errore prolungato

Questo esempio simula il modo in cui il sistema viene ripristinato normalmente da un errore prolungato. Si supponga che l'aggiornamento non venga eseguito correttamente perché le credenziali dell'origine dati sono scadute e il problema richiede 13 giorni per risolvere. L'intervallo incrementale è di soli 10 giorni.

L'operazione di aggiornamento successiva, con data di esecuzione 1/15/2017, deve eseguire il backfill dei 13 giorni mancanti e aggiornarli. È anche necessario aggiornare i nove giorni precedenti perché non sono stati aggiornati in base alla pianificazione normale. In altre parole, l'intervallo incrementale viene aumentato da 10 a 22 giorni.

L'operazione di aggiornamento successiva, con data di esecuzione 1/16/2017, consente di unire i giorni nel mese di dicembre e i mesi nel trimestre 2016.

Ripristino da un errore prolungato nei flussi di dati.

Aggiornamento incrementale del flusso di dati e set di dati

L'aggiornamento incrementale del flusso di dati e l'aggiornamento incrementale del set di dati sono progettati per funzionare in parallelo. È accettabile e supportato l'aggiornamento incrementale di una tabella in un flusso di dati, il caricamento completo in un set di dati o una tabella completamente caricata in un flusso di dati caricato in modo incrementale in un set di dati.

Entrambi gli approcci funzionano in base alle definizioni specificate nelle impostazioni di aggiornamento. Altre informazioni: Aggiornamento incrementale in Power BI Premium

Vedi anche

Questo articolo descrive l'aggiornamento incrementale per i flussi di dati. Ecco altri articoli che potrebbero essere utili:

Per ulteriori informazioni su Power Query e l'aggiornamento pianificato, leggi questi articoli:

Per altre informazioni su Common Data Model, vedere il relativo articolo di panoramica: