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 disponibili disponibili nell'articolo Connessione ors in Power Query che si applica 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 relativo alle funzionalità supportate da tale connettore. Se DirectQuery non è elencato in tale sezione per l'articolo dell'origine dati, DirectQuery non è supportato per tale connettore dati.

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

  • Importa: una copia dei dati dalle tabelle e dalle colonne selezionate importa in Power BI Desktop. Durante la creazione o l'interazione con le visualizzazioni, Power BI Desktop usa i dati importati. Per visualizzare le modifiche dei dati sottostanti dopo l'importazione iniziale o l'aggiornamento più recente, è necessario importare nuovamente il modello semantico completo per aggiornare i dati.

  • DirectQuery: nessuna importazione di dati 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 come SAP Business Warehouse (SAP BW), le dimensioni e le misure del cubo selezionato vengono visualizzate nell'elenco Campi . Durante la creazione o l'interazione con le visualizzazioni, Power BI Desktop esegue una query sull'origine dati sottostante, in modo da visualizzare sempre i dati correnti.

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

Molte trasformazioni di dati e modellazione dei dati sono disponibili quando si usa DirectQuery, anche se con alcune limitazioni basate sulle prestazioni. Per altre informazioni sui vantaggi, le limitazioni e le raccomandazioni di DirectQuery, vedere DirectQuery in Power BI.

Vantaggi di DirectQuery

Alcuni vantaggi dell'uso di DirectQuery includono:

  • DirectQuery consente di creare visualizzazioni su modelli semantici molto grandi, in cui non sarebbe possibile importare tutti i dati con pre-aggregazione.

  • I report DirectQuery usano sempre i dati correnti. La visualizzazione delle modifiche dei 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.

Connessione con 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à connettività dati selezionare DirectQuery.

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

Pubblicare nel servizio Power BI

È possibile pubblicare report DirectQuery nel servizio Power BI, ma è necessario eseguire ulteriori passaggi per consentire all'servizio Power BI di aprire i report.

  • Per connettere il servizio Power BI alle origini dati DirectQuery diverse da 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 è stato usato DirectQuery 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 il servizio Power BI per 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. Nella servizio Power BI selezionare l'icona a forma di ingranaggio in alto a destra e scegliere Impostazioni.

    Screenshot del menu a discesa servizio Power BI Impostazioni.

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

  3. In Connessione origine dati specificare 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. Alcune funzionalità della servizio Power BI, ad esempio informazioni rapide, non sono disponibili anche per i modelli semantici che usano DirectQuery. Quando si decide se usare DirectQuery, prendere in considerazione queste limitazioni delle funzionalità. Considerare anche i fattori seguenti:

Considerazioni sulle prestazioni e sul carico

DirectQuery invia tutte le richieste al database di origine, quindi il tempo di aggiornamento necessario per gli oggetti visivi dipende dal tempo necessario per restituire i risultati dall'origine sottostante. 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 di timeout nella 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 non 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. Le query aumentate aumentano significativamente il carico e potenzialmente influiscono sulle prestazioni.

Limite di una riga di un milione

DirectQuery definisce un limite di righe di un milione per i dati restituiti dalle origini dati cloud, che sono origini dati che non sono locali. 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 Power BI Premium nuove impostazioni di capacità.

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 avere solo colonne con cardinalità inferiore a 1 milione oppure 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 del set di amministratori. L'errore indica che il set di risultati di una query in un'origine dati esterna ha superato le dimensioni massime consentite di "1000000" righe.

Considerazioni sulla sicurezza

Per impostazione predefinita, tutti gli utenti che utilizzano un report pubblicato nella servizio Power BI si connettono all'origine dati sottostante usando 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 la sicurezza per utente implementata con le origini DirectQuery, usare la sicurezza a livello di riga o configurare l'autenticazione vincolata Kerberos nell'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 da servizio Power BI a origini dati locali.

Altre limitazioni di DirectQuery

Alcune altre limitazioni dell'uso di DirectQuery includono:

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

  • La gerarchia di data/ora automatica non è disponibile in DirectQuery. La modalità DirectQuery non supporta il drill-down delle colonne di data per anno, trimestre, mese o giorno.

  • Per le visualizzazioni di tabella o matrice, 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, FIRSTMAX, o LAST, perché non vengono conteggiati rispetto a questo valore massimo.

  • Non è possibile passare dall'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. I modelli DirectQuery su origini multidimensionali, ad esempio SAP BW, non possono essere passati da DirectQuery alla modalità di importazione, a causa del diverso trattamento di 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) non sono supportate nella servizio Power BI.