Condividi tramite


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:

  1. Avviare Power BI Desktop.

  2. Nella scheda Home selezionare Recupera dati.

  3. Nella casella di ricerca immettere Cosmos DB v2.

  4. Selezionare Azure Cosmos DB v2 (Beta) e quindi selezionare Connessione.

    Screenshot showing Select Azure Cosmos DB v2 selection.

  5. Nella pagina connessione di Azure Cosmos DB v2 immettere l'URI dell'account Azure Cosmos DB che si vuole usare. Per La modalità data Connessione ivity 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:

    Screenshot of the connection dialog box showing the Cosmos Endpoint entry and Data connectivity mode set to DirectQuery.

  6. 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 .

  7. Nel riquadro Opzioni di visualizzazione selezionare la casella di controllo per il set di dati da usare.

    Screenshot of the Navigator emphasizing the data you've selected.

  8. 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.

    Screenshot showing how to select duplicate from your existing query in the Power Query editor.

    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.

    Screenshot showing the unique Partition Keys in Power Query editor.

    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.

    Screenshot showing how to create a parameter in the Power Query editor.

    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.

    Screenshot showing the steps to apply the parameterized filter.

    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.

    Screenshot showing the steps to bind the parameter.

    Selezionare la scheda Report e aggiungere un filtro dei dati con la chiave di partizione univoca.

    Screenshot of the slicer.

    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.

    Screenshot of the visualization after the partition key filter is applied.

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 Avanzate Descrizione
Numero di tentativi Quante volte riprovare se sono presenti codici restituiti HTTP di 408 - Request Timeout, 412 - Precondition Failedo 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 Connessione or.

  • 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 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.