Fare riferimento a query di Power Query
Questo articolo è destinato agli autori di modelli di dati che usano Power BI Desktop. Contiene istruzioni relative alla definizione delle query di Power Query che fanno riferimento ad altre query.
Si esaminerà ora il significato seguente: Quando una query fa riferimento a una seconda query, è come se i passaggi nella seconda query vengano combinati con, ed eseguiti prima, i passaggi della prima query.
Si considerino diverse query: Query1 fornisce dati da un servizio Web, e il relativo carico è disabilitato. Query2, Query3 e Query4 fanno tutte riferimento a Query1 e i relativi output vengono caricati nel modello di dati.
Quando il modello di dati viene aggiornato, spesso si presuppone che Power Query recuperi il risultato di Query1 e che tale risultato venga usato dalle query di riferimento. Questa supposizione non è corretta. Di fatto, Power Query esegue Query2, Query3 e Query4 separatamente.
Si può pensare che in Query2 siano incorporati i passaggi di Query1. Ciò vale anche per Query3 e Query4. Il diagramma seguente presenta un'immagine più chiara del modo in cui vengono eseguite le query.
Query1 viene eseguita tre volte. Le esecuzioni multiple possono causare un aggiornamento dei dati lento e influire negativamente sull'origine dati.
L'uso della funzione Table.Buffer in Query1 non eliminerà il recupero dei dati aggiuntivi. Questa funzione memorizza una tabella nel buffer e la tabella memorizzata nel buffer può essere usata solo all'interno della stessa esecuzione di query. Quindi, nell'esempio, se Query1 viene memorizzata nel buffer quando viene eseguita Query2, i dati memorizzati nel buffer non possono essere usato quando vengono eseguite Query3 e Query4. Essi stessi memorizzano i dati nel buffer due volte di più. Questo risultato può di fatto comportare prestazioni negative, perché la tabella viene memorizzata nel buffer da ogni query di riferimento.
Nota
L'architettura di memorizzazione nella cache di Power Query è complessa e non è l'argomento principale di questo articolo. Power Query è in grado di memorizzare nella cache i dati recuperati da un'origine dati. Tuttavia, quando esegue una query può recuperare i dati dall'origine dati più di una volta.
Consigli
In generale, si consiglia di fare riferimento alle query per evitare la duplicazione della logica nelle query. Tuttavia, come descritto in questo articolo, questo approccio di progettazione può contribuire a rallentare gli aggiornamenti dei dati e a sovraccaricare le origini dati.
Si consiglia invece di creare un flusso di dati. L'uso di un flusso di dati può migliorare i tempi di aggiornamento e ridurre l'impatto sulle origini dati.
È possibile progettare il flusso di dati per incapsulare i dati di origine e le trasformazioni. Poiché il flusso di dati è un archivio permanente dei dati nel servizio Power BI, il recupero dei dati è rapido. Quindi, anche se facendo riferimento alle query vengono generate più richieste per il flusso di dati, è possibile migliorare i tempi di aggiornamento dei dati.
Nell'esempio, se Query1 viene riprogettata come entità del flusso di dati, Query2, Query3 e Query4 possono utilizzarla come origine dati. Con questa progettazione, l'entità originata da Query1 verrà valutata una sola volta.
Contenuto correlato
Per altre informazioni correlate a questo articolo, vedere le risorse seguenti: