Azure Cosmos DB v2 (Beta)
Riepilogo
Articolo | Descrizione |
---|---|
Stato di rilascio | Beta |
Prodotti | Power BI (modelli semantici) Power BI (flussi di dati) Infrastruttura (Dataflow Gen2) |
Tipi di autenticazione supportati | Chiave del feed |
Prerequisiti
Capacità supportate
- Import
- DirectQuery (modelli semantici di Power BI)
- Opzioni avanzate
- Numero di tentativi
- Abilitare la funzione "AVERAGE" Passdown
- Abilitare il passdown "SORT" per più colonne
Connettersi ad Azure Cosmos DB
Per connettersi ai dati di Azure Cosmos DB:
Avviare Power BI Desktop.
Nella scheda Home selezionare Recupera dati.
Nella casella di ricerca immettere Cosmos DB v2.
Selezionare Azure Cosmos DB v2 (Beta) e quindi selezionare Connetti.
Nella pagina connessione di Azure Cosmos DB v2 immettere l'URI dell'account Azure Cosmos DB che si vuole usare. Per la modalità connettività dati, scegliere una modalità appropriata per il caso d'uso, seguendo queste linee guida generali:
Per set di dati più piccoli, scegliere Importa. Quando si usa la modalità di importazione, Power BI funziona con Cosmos DB per importare il contenuto dell'intero set di dati da usare nelle visualizzazioni.
La modalità DirectQuery consente il pushdown delle query nel contenitore Cosmos DB per l'esecuzione e migliora le prestazioni del connettore. 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. Ad esempio, se la chiave di partizione è definita come "Product", una query SQL che può essere passata ed eseguita nel server Cosmos DB può essere:
SELECT SUM(ColumnName) FROM TableName where Product = 'SampleValue'
Nota
Usare Azure Collegamento a Synapse per Azure Cosmos DB se si vuole eseguire funzioni di aggregazione tra partizionate nel contenitore Cosmos DB.
Ulteriori informazioni:
Al prompt per configurare l'autenticazione dell'origine dati, immettere la chiave dell'account. Selezionare Connetti. Il catalogo dati, i database e le tabelle vengono visualizzati nella finestra di dialogo Strumento di navigazione .
Nel riquadro Opzioni di visualizzazione selezionare la casella di controllo per il set di dati da usare.
Il modo più ottimale per specificare il filtro Chiave di partizione (in modo che le funzioni di aggregazione possano essere spostate in Cosmos DB) consiste nell'usare parametri M dinamici. Per usare i parametri M dinamici, è necessario creare un set di dati con valori univoci di Chiave di partizione, creare un parametro, aggiungerlo come filtro nel set di dati principale, associarlo al set di dati della chiave di partizione univoco e usarlo come filtro dei dati per il set di dati principale. Usare la procedura seguente per abilitare i parametri M dinamici per il filtro della chiave di partizione.
a. Creare un set di dati con valori di chiave di partizione univoci:
In Strumento di navigazione selezionare Trasforma dati anziché Carica per visualizzare l'editor di Power Query. Fare clic con il pulsante destro del mouse sul set di dati query e quindi scegliere Duplica per creare un nuovo set di dati.
Rinominare il nuovo modello di chiave di partizione, quindi fare clic con il pulsante destro del mouse sulla colonna chiave di partizione di Cosmos DB. In questo esempio Product è la colonna chiave di partizione di Cosmos DB. Selezionare Rimuovi altre colonne e quindi Rimuovi duplicati.
b. Creare un parametro per il filtro dinamico:
Nell'editor di Power Query selezionare Gestisci parametri>Nuovo parametro. Rinominare il nuovo parametro per riflettere il parametro di filtro e immettere un valore valido come Valore corrente.
c. Applicare un filtro con parametri nel set di dati principale:
Selezionare l'icona a discesa della colonna Chiave di partizione, quindi selezionare Filtri di>testo uguali. Modificare il tipo di filtro da Testo a Parametro. Scegliere quindi il parametro creato nel passaggio b. Selezionare Chiudi e applica nell'angolo superiore sinistro dell'editor di Power Query.
d. Creare un filtro dei dati dei valori della chiave di partizione con l'associazione di parametri:
In Power BI selezionare la scheda Modello . Selezionare quindi il campo Chiave di partizione. Nel riquadro Proprietà selezionare Associazione avanzata>al parametro. Scegliere il parametro creato nel passaggio b.
Selezionare la scheda Report e aggiungere un filtro dei dati con la chiave di partizione univoca.
e. Aggiungere visualizzazioni e applicare il filtro della chiave di partizione dal filtro dei dati:
Poiché il valore della chiave di partizione scelto nel filtro dei dati è associato al parametro (come fatto nel passaggio d) e il filtro con parametri viene applicato al set di dati principale (come fatto nel passaggio c), il valore della chiave di partizione scelto viene applicato come filtro sul set di dati principale e la query con il filtro della chiave di partizione viene passata a Cosmos DB in tutte le visualizzazioni.
Opzioni avanzate
Power Query offre un set di opzioni avanzate che è possibile aggiungere alla query, se necessario.
Nella tabella seguente sono elencate tutte le opzioni avanzate che è possibile impostare in Power Query.
Opzione avanzata | Descrizione |
---|---|
Numero di tentativi | Quante volte riprovare se sono presenti codici restituiti HTTP di 408 - Request Timeout , 412 - Precondition Failed o 429 - Too Many Requests . Il numero predefinito di tentativi è 5. |
Abilitare la funzione AVERAGE Passdown | Specifica se il connettore consente il passaggio della funzione di aggregazione AVG a Cosmos DB. Il valore predefinito è 1 e il connettore tenta di passare la funzione di aggregazione AVG a Cosmos DB per impostazione predefinita. Se l'argomento contiene valori stringa, booleani o null per la funzione di aggregazione AVG, viene restituito un set di risultati non definito dal server Cosmos DB. Se impostato sul valore 0, la funzione di aggregazione AVG non viene passata al server Cosmos DB e il connettore gestisce l'esecuzione dell'operazione di aggregazione AVG stessa. |
Abilitare il passdown SORT per più colonne | Specifica se il connettore consente di passare più colonne a Cosmos DB quando specificato nella clausola ORDER BY della query SQL. Il valore predefinito è 0 e se nella clausola ORDER BY vengono specificate più colonne, il connettore non passa le colonne per impostazione predefinita e gestisce l'esecuzione dell'ordine da solo. Se impostato sul valore 1, il connettore tenta di passare più colonne a Cosmos DB quando specificato nella clausola ORDER BY della query SQL. Per consentire il passaggio di più colonne a Cosmos DB, assicurarsi di impostare indici compositi sulle colonne nelle rispettive raccolte. Per le raccolte partizionate, una query SQL con ORDER BY verrà passata a Cosmos DB solo se la query contiene un filtro sulla chiave partizionata. Inoltre, se nella clausola ORDER BY sono specificate più di otto colonne, il connettore non passa la clausola ORDER BY e gestisce invece l'esecuzione dell'ordinamento stesso. |
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 fornito 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 è supportato 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 AVG è disabilitato, non viene passato a Cosmos DB e il connettore gestisce l'esecuzione dell'operazione di aggregazione AVG stessa. Per altre informazioni, vedere "Enable AVERAGE function Passdown" (Abilita passdown funzione AVERAGE) in Opzioni avanzate.
I contenitori di Azure Cosmos DB con chiave di partizione di grandi dimensioni non sono attualmente supportati nel connettore.
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 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 questi scenari è consigliabile usare la funzionalità Mirroring dell'infrastruttura per Azure Cosmos DB .
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 vengono aggiornati solo parte dei documenti. Ad esempio, una proprietà appena aggiunta a un documento in un contenitore con agenti di documenti potrebbe non essere inserita 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.