Condividi tramite


Visualizzare i dati di Azure Cosmos DB usando Power BI

SI APPLICA A: NoSQL

Questo articolo descrive i passaggi necessari per connettere i dati dell'account Azure Cosmos DB a Power BI Desktop.

È possibile connettersi ad Azure Cosmos DB da Power BI Desktop usando una delle opzioni seguenti:

  • Usare il mirroring in Microsoft Fabric per replicare i dati di Azure Cosmos DB in OneLake dell'infrastruttura. Le modifiche apportate al database vengono sincronizzate automaticamente con Fabric OneLake quasi in tempo reale, senza influire sulle prestazioni del database di origine o sull'utilizzo di unità di risorse (UR).

    I report di Power BI possono quindi accedere ai dati direttamente da OneLake usando la modalità DirectLake. Con le funzionalità avanzate di Copilot in Power BI all'interno di Fabric, è possibile sfruttare l'IA generativa per ottenere approfondimenti aziendali della chiave.

  • Usare Collegamento ad Azure Synapse per creare report di Power BI senza alcun impatto sulle prestazioni o sui costi per i carichi di lavoro transazionali e senza pipeline ETL.

    È possibile usare DirectQuery o la modalità Importa. Con DirectQuery, è possibile creare dashboard/report usando dati in tempo reale dagli account Azure Cosmos DB, senza importare o copiare i dati in Power BI.

  • Connettere Power BI Desktop all'account Azure Cosmos DB con il connettore Azure Cosmos DB per Power BI. Questa opzione è disponibile solo in modalità Importa e utilizzerà le UR allocate per i carichi di lavoro transazionali.

Nota

I report creati in Power BI Desktop possono essere pubblicati in PowerBI.com. Non è possibile estrarre direttamente da PowerBI.com dati di Azure Cosmos DB.

Prerequisiti

Prima di seguire le istruzioni di questa esercitazione su Power BI, verificare di avere accesso alle risorse seguenti:

Per condividere i report in PowerBI.com, è necessario avere un account in PowerBI.com. Per altre informazioni su Power BI e su Power BI Pro, visitare il sito https://powerbi.microsoft.com/pricing.

Attività iniziali

Compilazione di report BI usando il mirroring in Microsoft Fabric

È possibile abilitare il mirroring nei contenitori di Azure Cosmos DB esistenti e compilare report/dashboard BI su questi dati, quasi in tempo reale. Per istruzioni su come iniziare a usare Infrastruttura e mirroring, vedere l'esercitazione sul mirroring per Azure Cosmos DB.

È possibile abilitare Collegamento ad Azure Synapse nei contenitori di Azure Cosmos DB esistenti e creare report BI su questi dati in pochi clic usando il portale di Azure Cosmos DB. Power BI si connetterà ad Azure Cosmos DB usando la modalità Direct Query, consentendo di eseguire query sui dati di Azure Cosmos DB in tempo reale, senza influire sui carichi di lavoro transazionali.

Per creare un report o un dashboard di Power BI:

  1. Accedere al portale di Azure e passare all'account Azure Cosmos DB.

  2. Nella sezione Integrazioni aprire il riquadro Power BI e selezionare Introduzione.

    Nota

    Attualmente, questa opzione è disponibile solo per gli account API per NoSQL. È possibile creare viste T-SQL direttamente nei pool SQL serverless di Synapse e creare dashboard BI per Azure Cosmos DB for MongoDB. Per altre informazioni, vedere "Usare Power BI e il pool Synapse SQL serverless per analizzare i dati di Azure Cosmos DB con Synapse".

  3. Nella scheda Abilita Collegamento ad Azure Synapse è possibile abilitare Collegamento a Synapse nell'account dalla sezione Abilita Collegamento ad Azure Synapse per questo account. Se Collegamento a Synapse è già abilitato per l'account, questa scheda non verrà visualizzata. Questo passaggio è un prerequisito per iniziare ad abilitare Collegamento a Synapse nei contenitori.

    Nota

    L'abilitazione di Collegamento ad Azure Synapse ha implicazioni in termini di costi. Per altri dettagli, vedere la sezione Prezzi di Collegamento ad Azure Synapse.

  4. Nella sezione Abilita Collegamento ad Azure Synapse per i contenitori, scegliere i contenitori necessari per abilitare Collegamento a Synapse.

    • Se Collegamento a Synapse è già stato abilitato in alcuni contenitori, verrà visualizzata la casella di controllo accanto al nome del contenitore selezionato. Facoltativamente, è possibile deselezionarli in base ai dati da visualizzare in Power BI.

    • Se Collegamento a Synapse non è abilitato, è possibile abilitare questa opzione nei contenitori esistenti.

      Se l'abilitazione di Collegamento a Synapse è in corso in uno dei contenitori, i dati di tale contenitore non verranno inclusi. Tornare a questa scheda in un secondo momento e importare i dati quando i contenitori sono abilitati.

    Stato di Collegamento a Synapse abilitato nei contenitori esistenti.

  5. A seconda della quantità di dati nei contenitori, l'abilitazione di Collegamento a Synapse può richiedere del tempo. Per altre informazioni, vedere l'articolo Abilitare Collegamento a Synapse nei contenitori esistenti.

    È possibile controllare lo stato di avanzamento nel portale, come illustrato nella schermata seguente. I contenitori sono abilitati con Collegamento a Synapse quando lo stato di avanzamento raggiunge il 100%.

    Collegamento a Synapse abilitato correttamente nei contenitori selezionati.

  6. Nella scheda Selezionare l'area di lavoro scegliere l'area di lavoro di Azure Synapse Analytics e selezionare Avanti. Questo passaggio creerà automaticamente viste T-SQL in Synapse Analytics per i contenitori selezionati in precedenza. Per altre informazioni sulle viste T-SQL necessarie per connettere Azure Cosmos DB a Power BI, vedere Preparare le visualizzazioni.

    Nota

    Le proprietà dei contenitori di Azure Cosmos DB verranno rappresentate come colonne nelle viste T-SQL, inclusi i dati JSON annidati. Questa è una guida introduttiva per i dashboard BI. Queste viste saranno disponibili nell'area di lavoro/database di Synapse; è anche possibile usare queste stesse viste nell'area di lavoro Synapse per l'esplorazione dei dati, la data science, l'ingegneria dei dati e così via. Si noti che gli scenari avanzati possono richiedere viste o ottimizzazioni più complesse di queste viste, per ottenere prestazioni migliori. Per altre informazioni, vedere l'articolo relativo alle procedure consigliate per Collegamento a Synapse quando si usano i pool SQL serverless Synapse.

  7. È possibile scegliere un'area di lavoro esistente o crearne una nuova. Per selezionare un'area di lavoro esistente, specificare i dettagli di Sottoscrizione, Area di lavoro e Database. Il portale di Azure userà le credenziali di Microsoft Entra per connettersi automaticamente all'area di lavoro di Synapse e creare visualizzazioni T-SQL. Assicurarsi di disporre delle autorizzazioni di "Amministratore di Synapse" per questa area di lavoro.

    Connettersi all'area di lavoro Collegamento a Synapse e creare visualizzazioni.

  8. Selezionare quindi Scarica .pbids per scaricare il file di origine dati di Power BI. Aprire il file scaricato. Contiene le informazioni di connessione necessarie e apre Power BI Desktop.

    Scaricare i file di Power BI Desktop in formato pbids.

  9. È ora possibile connettersi ai dati di Azure Cosmos DB da Power BI Desktop. Viene visualizzato un elenco di viste T-SQL corrispondenti ai dati in ogni contenitore.

    Ad esempio, la schermata seguente mostra i dati della flotta di veicoli. È possibile caricare questi dati per ulteriori analisi o trasformarli prima del caricamento.

    Viste T-SQL corrispondenti ai dati in ogni contenitore.

  10. È ora possibile iniziare a creare il report usando i dati analitici di Azure Cosmos DB. Tutte le modifiche apportate ai dati verranno riflesse nel report non appena i dati vengono replicati nell'archivio analitico, il che in genere si verifica in un paio di minuti.

Compilazione di report BI con il connettore Power BI

Nota

La connessione ad Azure Cosmos DB con il connettore Power BI è attualmente supportata solo per gli account dell'API SQL di Azure Cosmos DB for NoSQL e dell'API per Gremlin.

  1. Eseguire Power BI Desktop.

  2. Le opzioni Recupera dati, Origini recenti e Apri altri report sono disponibili direttamente dalla schermata iniziale. Fare clic sulla X nell'angolo in alto a destra per chiudere la schermata. Apparirà la visualizzazione Report di Power BI Desktop.

    Visualizzazione report di Power BI Desktop - Connettore Power BI

  3. Selezionare Home sulla barra multifunzione, quindi fare clic su Recupera dati. Verrà visualizzata la finestra Recupera dati .

  4. Fare clic su Azure, selezionare Azure Cosmos DB (Beta) e quindi fare clic su Connetti.

    Recupero di dati in Power BI Desktop - Connettore Power BI

  5. Nella pagina Anteprima connettore fare clic su Continua. Viene visualizzata la finestra Azure Cosmos DB.

  6. Specificare l'URL dell'endpoint dell'account Azure Cosmos DB da cui recuperare i dati, come illustrato di seguito, e quindi fare clic su OK. Per usare il proprio account, è possibile recuperare l'URL dalla casella URI nel pannello Chiavi del portale di Azure. Facoltativamente è possibile specificare il nome del database, il nome della raccolta oppure selezionare il database e la raccolta per identificare la provenienza dei dati.

  7. Se ci si connette a questo endpoint per la prima volta, viene richiesta la chiave dell'account. Per il proprio account, recuperare la chiave dalla casella Chiave primaria nel pannello Chiavi di sola lettura del portale di Azure. Immettere la chiave appropriata e quindi fare clic su Connetti.

    È consigliabile usare la chiave di sola lettura durante la creazione di report. In questo modo si impedisce un'inutile esposizione della chiave primaria a potenziali rischi di sicurezza. La chiave di sola lettura è disponibile nel pannello Chiavi del portale di Azure.

  8. Una volta che l'account è connesso, viene visualizzato il riquadro Strumento di navigazione. Lo Strumento di navigazione mostra un elenco dei database che fanno parte dell'account.

  9. Fare clic ed espandere il database da cui provengono i dati per il report. A questo punto, selezionare una raccolta che contiene i dati da recuperare.

    Il riquadro di anteprima mostra un elenco di elementi Record . In Power BI un documento viene rappresentato come tipo di Record . In modo analogo, anche un blocco JSON annidato in un documento è un Record. Per visualizzare i documenti delle proprietà come colonne, fare clic sul pulsante grigio con due frecce in direzioni opposte che simboleggiano l'espansione del record. Si trova a destra del nome del contenitore, nello stesso riquadro di anteprima.

  10. È possibile iniziare a creare i rapporti nella visualizzazione Report di Power BI Desktop per visualizzare dati. È possibile creare report trascinando i campi nell'area di disegno Report .

  11. Esistono due modi per aggiornare i dati: procedura ad hoc e pianificata. Fare semplicemente clic su Aggiorna adesso per aggiornare i dati. Per altre informazioni sull'opzione di aggiornamento pianificato, vedere la documentazione di Power BI.

Problemi noti e limitazioni

  • Per i contenitori Cosmos DB partizionati, una query SQL con una funzione di aggregazione viene passata a Cosmos DB se la query contiene anche un filtro (clausola WHERE) sulla chiave di partizione. Se la query di aggregazione non contiene un filtro sulla chiave di partizione, l'aggregazione viene eseguita dal connettore.

  • Il connettore non passa una funzione di aggregazione se viene chiamata dopo l'applicazione di TOP o LIMIT. Cosmos DB elabora l'operazione TOP alla fine, durante l'elaborazione di una query. Nella query seguente, ad esempio, TOP viene applicato nella sottoquery, mentre la funzione di aggregazione viene applicata all'inizio del set di risultati:

    SELECT COUNT(1) FROM (SELECT TOP 4 * FROM EMP) E

  • Se DISTINCT viene fornita in una funzione di aggregazione, il connettore non passa la funzione di aggregazione a Cosmos DB se viene fornita una clausola DISTINCT in una funzione di aggregazione. Se presente in una funzione di aggregazione, DISTINCT non è supportata dall'API SQL di Cosmos DB.

  • Per la funzione di aggregazione SUM, Cosmos DB restituisce undefined come set di risultati se uno degli argomenti in SUM è stringa, booleano o null. Tuttavia, se sono presenti valori null, il connettore passa la query a Cosmos DB in modo che richieda all'origine dati di sostituire un valore null con zero come parte del calcolo SUM.

  • Per la funzione di aggregazione AVG, Cosmos DB restituisce undefined come set di risultati se uno degli argomenti in SUM è stringa, booleano o null. Il connettore espone una proprietà di connessione per disabilitare il passaggio della funzione di aggregazione AVG a Cosmos DB nel caso in cui questo comportamento predefinito di Cosmos DB debba essere sottoposto a override. Quando il passdown di AVG è disabilitato, non viene passata a Cosmos DB e il connettore gestisce l'esecuzione dell'operazione stessa di aggregazione di AVG. Per altre informazioni, vedere "Abilita passdown della funzione AVERAGE" in Opzioni avanzate.

  • Attualmente, nel connettore non sono supportati i contenitori di Azure Cosmos DB con chiave di partizione di grandi dimensioni.

  • Il passdown delle aggregazioni è disabilitato per la sintassi seguente a causa delle limitazioni del server:

    • Quando la query non filtra una chiave di partizione o quando il filtro della chiave di partizione usa l'operatore OR con un altro predicato al livello superiore nella clausola WHERE.

    • Quando la query ha una o più chiavi di partizione che vengono visualizzate in una clausola IS NOT NULL nella clausola WHERE.

  • Il connettore V2 non supporta tipi di dati complessi, ad esempio matrici, oggetti e strutture gerarchiche. Per tali scenari, è consigliabile usare la funzionalità [Mirroring dell'infrastruttura per Azure Cosmos DB](/articles/cosmos-db/analytics-and-business-intelligence-overview.md.

  • Il connettore V2 usa il campionamento dei primi 1.000 documenti per ottenere lo schema dedotto. Non è consigliabile per gli scenari di evoluzione dello schema quando viene aggiornata solo parte dei documenti. Ad esempio, una proprietà appena aggiunta a un documento in un contenitore con migliaia di documenti potrebbe non essere inclusa nello schema dedotto. Per questi scenari è consigliabile usare la funzionalità Mirroring dell'infrastruttura per Azure Cosmos DB.

  • Attualmente il connettore V2 non supporta valori non stringa nelle proprietà dell'oggetto.

  • Il passdown del filtro è disabilitato per la sintassi seguente a causa delle limitazioni del server:

  • Quando si fa riferimento alla query contenente una o più colonne di aggregazione nella clausola WHERE.

Passaggi successivi