Usare DirectQuery in Power BI Desktop

Quando ci si connette a qualsiasi origine dati con Power BI Desktop, è possibile importare una copia dei dati. Per alcune origini dati, è anche possibile connettersi direttamente all'origine dati senza importare dati tramite DirectQuery.

Per determinare se un'origine dati supporta DirectQuery, visualizzare l'elenco completo delle origini dati disponibili nell'articolo Connettori in Power Query, applicabile anche a Power BI, selezionare l'articolo che descrive l'origine dati a cui si è interessati dall'elenco dei connettori supportati, quindi vedere la sezione nell'articolo di tale connettore intitolata Funzionalità supportate. Se DirectQuery non è elencato in tale sezione dell'articolo dell'origine dati, DirectQuery non è supportato per tale connettore dati.

Ecco le differenze tra l'uso delle modalità di connettività dell'importazione e di DirectQuery:

  • Importa: una copia dei dati dalle tabelle e dalle colonne selezionate viene importata in Power BI Desktop. Quando si crea o si interagisce con le visualizzazioni, Power BI Desktop usa i dati importati. Per visualizzare le modifiche apportate ai dati sottostanti dopo l'importazione iniziale o l'aggiornamento più recente, è necessario importare nuovamente il modello semantico completo in modo da aggiornare i dati.

  • DirectQuery: nessun dato viene importato in Power BI Desktop. Per le origini relazionali, è possibile selezionare tabelle e colonne da visualizzare nell'elenco Campi di Power BI Desktop. Per origini multidimensionali, ad esempio SAP Business Warehouse (SAP BW), le dimensioni e misure del cubo selezionato vengono visualizzate nell'elenco Campi. Quando si creano visualizzazioni o si interagisce con esse, Power BI Desktop esegue una query sull'origine dati sottostante, in modo che i dati visualizzati siano sempre correnti.

Con DirectQuery, quando si crea o si interagisce con una visualizzazione, è necessario eseguire una query sull'origine sottostante. Il tempo impiegato per aggiornare la visualizzazione dipende dalle prestazioni dell'origine dati sottostante. Se i dati necessari per soddisfare la richiesta erano stati richiesti di recente, Power BI Desktop usa i dati recenti per ridurre il tempo necessario per mostrare la visualizzazione. Se si seleziona Aggiorna dalla barra multifunzione Home, tutte le visualizzazioni vengono aggiornate con i dati correnti.

Quando si usa DirectQuery, sono disponibili molte modellazioni e trasformazioni dei dati, seppur con alcune limitazioni basate sulle prestazioni. Per altre informazioni sui vantaggi, le limitazioni e gli elementi consigliati di DirectQuery, vedere DirectQuery in Power BI.

Vantaggi di DirectQuery

Ecco alcuni vantaggi dell'uso di DirectQuery:

  • DirectQuery consente di creare visualizzazioni su modelli semantici molto grandi, per i quali non sarebbe fattibile importare tutti i dati con la pre-aggregazione.

  • I report di DirectQuery usano sempre dati aggiornati. La visualizzazione delle modifiche apportate ai dati sottostanti richiede l'aggiornamento dei dati e la reimportazione di modelli semantici di grandi dimensioni per aggiornare i dati potrebbe non essere possibile.

  • La limitazione del modello semantico da 1 GB non si applica a DirectQuery.

Connettersi tramite DirectQuery

Per connettersi a un'origine dati con DirectQuery:

  1. Nel gruppo Home della barra multifunzione di Power BI Desktop selezionare Recupera dati e quindi selezionare un'origine dati supportata da DirectQuery, ad esempio SQL Server.

  2. Nella finestra di dialogo per la connessione, in Modalità di connettività dei dati selezionare DirectQuery.

Opzioni Importa e DirectQuery, finestra di dialogo Database SQL Server, Power BI Desktop

Pubblicare nel servizio Power BI

È possibile pubblicare report DirectQuery nel servizio Power BI, ma è necessario eseguire passaggi aggiuntivi per aprire i report dal servizio Power BI.

  • Per connettere il servizio Power BI a origini dati DirectQuery diverse dal database SQL di Azure, Azure Synapse Analytics (in precedenza SQL Data Warehouse), Amazon Redshift e Snowflake Data Warehouse, installare un gateway dati locale e registrare l'origine dati.

  • Se DirectQuery è stato usato con origini cloud come database SQL di Azure, Azure Synapse, Amazon Redshift o Snowflake Data Warehouse, non è necessario un gateway dati locale. È comunque necessario specificare le credenziali per permettere al servizio Power BI di aprire il report pubblicato. Senza credenziali, si verifica un errore quando si tenta di aprire un report pubblicato o di esplorare un modello semantico creato con una connessione DirectQuery.

Per fornire le credenziali per l'apertura del report e l'aggiornamento dei dati:

  1. Nel servizio Power BI selezionare l'icona a forma di ingranaggio in alto a destra e scegliere Impostazioni.

    Screenshot del menu a discesa Impostazioni del servizio Power BI.

  2. Nella pagina Impostazioni selezionare la scheda Modelli semantici e scegliere il modello semantico che usa DirectQuery.

  3. In Connessione origine dati fornire le credenziali per connettersi all'origine dati.

Nota

Se è stato usato DirectQuery con un database SQL di Azure con un indirizzo IP privato, è necessario usare un gateway locale.

Considerazioni e limitazioni

Alcune funzionalità di Power BI Desktop non sono supportate in modalità DirectQuery o presentano limitazioni. Anche alcune funzionalità del servizio Power BI, ad esempio le informazioni rapide, non sono disponibili per i modelli semantici che usano DirectQuery. Quando si decide se usare DirectQuery, prendere in considerazione queste limitazioni delle funzionalità. È inoltre opportuno valutare i fattori seguenti:

Considerazioni sulle prestazioni e sul carico

DirectQuery invia tutte le richieste al database di origine, quindi il tempo necessario per l'aggiornamento degli oggetti visivi dipende dal tempo necessario all'origine sottostante per restituire i risultati. Cinque secondi o meno è il tempo di risposta consigliato per la ricezione dei dati richiesti per gli oggetti visivi. I tempi di aggiornamento di oltre 30 secondi generano un'esperienza non accettabile per gli utenti che utilizzano il report. Una query che richiede più di quattro minuti va in timeout nel servizio Power BI e l'utente riceve un errore.

Il carico nel database di origine dipende anche dal numero di utenti di Power BI che utilizzano il report pubblicato, soprattutto se il report usa la sicurezza a livello di riga. L'aggiornamento di un riquadro del dashboard senza sicurezza a livello di riga condiviso da più utenti invia una singola query al database, ma l'aggiornamento di un riquadro del dashboard che usa la sicurezza a livello di riga richiede una query per utente. L'aumento delle query aumenta significativamente il carico e potenzialmente influisce sulle prestazioni.

Limite di un milione di righe

DirectQuery definisce un limite di un milione di righe per i dati restituiti dalle origini dati cloud, ovvero qualsiasi origine dati che non sia locale. Le origini locali sono limitate a un payload definito di circa 4 MB per riga, a seconda dell'algoritmo di compressione proprietario o di 16 MB per l'intero oggetto visivo. Le capacità Premium possono impostare limiti massimi diversi per le righe, come descritto nel post di blog Nuove impostazioni di capacità di Power BI Premium.

Power BI crea query il più efficienti possibile, ma alcune query generate potrebbero recuperare troppe righe dall'origine dati sottostante. Ad esempio, questa situazione può verificarsi con un grafico semplice che include una colonna di cardinalità elevata, con l'opzione di aggregazione impostata su Non riepilogare. L'oggetto visivo deve contenere solo colonne con una cardinalità inferiore a un milione o deve applicare i filtri appropriati.

Il limite di righe non si applica alle aggregazioni o ai calcoli usati per selezionare il modello semantico restituito da DirectQuery, ma solo alle righe restituite. Ad esempio, la query eseguita nell'origine dati può aggregare 10 milioni di righe. Se i dati restituiti a Power BI sono inferiori a 1 milione di righe, la query può restituire in modo accurato i risultati. Se i dati superano 1 milione di righe, Power BI visualizza un errore, ad eccezione della capacità Premium con limiti diversi impostati dall'amministratore. L'errore indica: Il set di risultati di una query sull'origine dati esterna ha superato le dimensioni massime consentite di '1000000' righe.

Considerazioni sulla sicurezza

Per impostazione predefinita, tutti gli utenti che usano un report pubblicato nel servizio Power BI si connettono all'origine dati sottostante con le credenziali immesse dopo la pubblicazione. Questa situazione è identica a quella dei dati importati. Tutti gli utenti visualizzano gli stessi dati, indipendentemente dalle regole di sicurezza definite dall'origine sottostante.

Se è necessaria l'implementazione della sicurezza per singolo utente con origini DirectQuery, usare la sicurezza a livello di riga o configurare l'autenticazione vincolata Kerberos per l'origine. Kerberos non è disponibile per tutte le origini. Per altre informazioni, vedere Sicurezza a livello di riga con Power BI e Configurare l'accesso SSO basato su Kerberos dal servizio Power BI alle origini dati locali.

Altre limitazioni di DirectQuery

Di seguito sono indicate alcune altre limitazioni dell'uso di DirectQuery:

  • Se la query dell'editor di Power Query è eccessivamente complessa, si verifica un errore. Per correggere l'errore, è necessario eliminare il passaggio problematico nell'editor di Power Query o passare alla modalità di importazione. Origini multidimensionali come SAP BW non possono usare l'editor di Power Query.

  • La gerarchia di data/ora automatica non è disponibile in DirectQuery. La modalità DirectQuery non supporta il drill-down della colonna della data in base all'anno, al trimestre, al mese o al giorno.

  • Per le visualizzazioni di tabelle o matrici, esiste un limite di 125 colonne per i risultati che restituiscono più di 500 righe dalle origini DirectQuery. Questi risultati visualizzano una barra di scorrimento nella tabella o nella matrice che consente di recuperare più dati. In questo caso, il numero massimo di colonne nella tabella o nella matrice è 125. Se è necessario includere più di 125 colonne in una singola tabella o matrice, è consigliabile creare misure che usano MIN, MAX, FIRST o LAST, perché non vengono conteggiati per questo valore massimo.

  • Non è possibile passare dalla modalità di importazione alla modalità DirectQuery. È possibile passare dalla modalità DirectQuery alla modalità di importazione se si importano tutti i dati necessari. Non è possibile tornare indietro, principalmente a causa del set di funzionalità che DirectQuery non supporta. Non è possibile passare dalla modalità DirectQuery alla modalità di importazione nemmeno per i modelli DirectQuery su origini multidimensionali come SAP BW, a causa del diverso trattamento delle misure esterne.

  • Le tabelle calcolate e le colonne calcolate che fanno riferimento a una tabella DirectQuery da un'origine dati con autenticazione Single Sign-On (SSO) sono supportate nel servizio Power BI con una connessione cloud condivisibile assegnata e/o un controllo di accesso granulare.