Freigeben über


Azure Cosmos DB v2 (Beta)

Zusammenfassung

Element Beschreibung
Freigabestatus Beta
Produkte Power BI (Semantikmodelle)
Power BI (Dataflows)
Fabric (Dataflow Gen2)
Unterstützte Authentifizierungstypen Feedschlüssel

Voraussetzungen

Unterstützte Funktionen

  • Importieren
  • DirectQuery (semantische Power BI-Modelle)
  • Erweiterte Optionen
    • Anzahl an Wiederholungen
    • Passdown-Funktion „AVERAGE“ aktivieren
    • Passdown-Funktion „SORT“ für mehrere Spalten aktivieren

Herstellen der Verbindung mit Azure Cosmos DB

So stellen Sie eine Verbindung mit Azure Cosmos DB-Daten her:

  1. Starten Sie Power BI Desktop.

  2. Wählen Sie auf der Registerkarte Home die Option Daten abrufen aus.

  3. Geben Sie in das Suchfeld Cosmos DB v2 ein.

  4. Wählen Sie Azure Cosmos DB v2 (Beta) aus, und klicken Sie auf Verbinden.

    Screenshot der Auswahl von Azure Cosmos DB v2.

  5. Geben Sie auf der Azure Cosmos DB v2-Verbindungsseite für Cosmos Endpoint den URI des Azure Cosmos DB-Kontos ein, das Sie verwenden möchten. Wählen Sie für den Datenkonnektivitätsmodus einen Modus aus, der für Ihren Anwendungsfall geeignet ist, und befolgen Sie die folgenden allgemeinen Richtlinien:

    • Wählen Sie für kleinere Datasets die Option Import (Importieren) aus. Bei Verwendung des Importmodus arbeitet Power BI mit Cosmos DB zusammen, um den Inhalt des gesamten Datasets für die Verwendung in Ihren Visualisierungen zu importieren.

    • Der DirectQuery-Modus ermöglicht den Abfragepushdown zum Cosmos DB-Container zur Ausführung und verbessert die Leistung des Connectors. Bei partitionierten Cosmos DB-Containern wird eine SQL-Abfrage mit einer Aggregatfunktion an Cosmos DB übergeben, wenn die Abfrage auch einen Filter (WHERE-Klausel) für den Partitionsschlüssel enthält. Wenn z. B. der Partitionsschlüssel als „Product“ definiert ist, kann eine SQL-Abfrage, die übergeben und auf dem Cosmos DB-Server ausgeführt werden kann, wie folgt lauten:

      SELECT SUM(ColumnName) FROM TableName where Product = 'SampleValue'

    Hinweis

    Verwenden Sie Azure Synapse Link für Azure Cosmos DB, wenn Sie partitionierte Aggregatfunktionen für den Cosmos DB-Container ausführen möchten.

    Weitere Informationen:

    Screenshot des Verbindungsdialogfelds mit dem Eintrag „Cosmos-Endpunkt“ und dem Modus „Datenkonnektivität“, der auf „DirectQuery“ festgelegt ist.

  6. Geben Sie bei der Aufforderung zum Konfigurieren der Datenquellenauthentifizierung den Kontoschlüssel ein. Wählen Sie dann Verbinden aus. Ihr Datenkatalog, Ihre Datenbanken und Tabellen werden im Dialogfeld Navigator angezeigt.

  7. Aktivieren Sie im Bereich Anzeigeoptionen das Kontrollkästchen für das Dataset, das Sie verwenden möchten.

    Screenshot des Navigators, in dem die ausgewählten Daten hervorgehoben sind.

  8. Die optimale Möglichkeit zum Angeben des Partitionsschlüsselfilters (sodass die Aggregatfunktionen nach Cosmos DB weitergegeben werden können) ist die Verwendung dynamischer M-Parameter. Um dynamische M-Parameter zu verwenden, erstellen Sie ein Dataset mit eindeutigen Partitionsschlüsselwerten, erstellen einen Parameter, fügen ihn als einen Filter für das Hauptdatenset hinzu, binden sie an das eindeutige Partitionsschlüssel-Datset und verwenden es als Datenschnitt für das Hauptdatenset. Führen Sie die folgenden Schritte aus, um dynamische M-Parameter für die Partitionsschlüsselfilterung zu aktivieren.

    a. Erstellen eines Datasets mit eindeutigen Partitionsschlüsselwerten:

    Wählen Sie im Dialogfeld Navigator die Option Daten transformieren statt Laden aus, um den Power Query-Editor anzuzeigen. Klicken Sie mit der rechten Maustaste auf das Dataset „Abfragen“, und wählen Sie dann Duplizieren aus, um ein neues Dataset zu erstellen.

    Screenshot, der die Vorgehensweise zur Auswahl von „Duplizieren“ in der vorhandenen Abfrage im Power Query-Editor zeigt.

    Benennen Sie das neue Partitionsschlüssel-Modell um, und klicken Sie dann mit der rechten Maustaste auf die Spalte „Cosmos DB Partition Key“. In diesem Beispiel ist Produkt die Spalte „Cosmos DB Partition Key“. Wählen Sie Andere Spalten entfernen und dann Duplikate entfernen aus.

    Screenshot der eindeutigen Partitionsschlüssel im Power Query-Editor.

    b. Erstellen eines Parameters für die dynamische Filterung:

    Wählen Sie im Power Query-Editor die Option Parameter verwalten>Neuer Parameter aus. Benennen Sie den neuen Parameter um, um den Filterparameter widerzuspiegeln und einen gültigen Wert als aktuellen Wert einzugeben.

    Screenshot, der die Vorgehensweise zum Erstellen eines Parameters im Power Query-Editor zeigt.

    c. Anwenden eines parametrisierten Filters auf das Hauptdatenset:

    Wählen Sie das Dropdownsymbol der Spalte „Partitionsschlüssel“ und dann Textfilter>gleich aus. Ändern Sie den Filtertyp von „Text“ in „Parameter“. Wählen Sie dann den Parameter aus, der in Schritt (b) erstellt wurde. Klicken Sie auf Schließen & Anwenden in der oberen linken Ecke des Power Query-Editors.

    Screenshot mit den Schritten zum Anwenden des parametrisierten Filters.

    d. Erstellen eines Partitionsschlüssel-Datenschnitts mit Parameterbindung:

    Wählen Sie in Power BI die Registerkarte Modell und dann das Feld „Partitionsschlüssel“ aus. Wählen Sie im Bereich Eigenschaften die Option Erweitert>An Parameter binden aus. Wählen Sie den Parameter aus, der in Schritt (b) erstellt wurde.

    Screenshot, der die Schritte zur Bindung des Parameters zeigt.

    Wählen Sie die RegisterkarteBericht aus, und fügen Sie einen Datenschnitt mit dem eindeutigen Partitionsschlüssel hinzu.

    Screenshot des Datenschnitts.

    e. Hinzufügen von Visualisierungen und Anwenden des Partitionsschlüsselfilters aus dem Datenschnitt:

    Da der ausgewählte Partitionsschlüsselwert für den Datenschnitt an den Parameter (wie in Schritt (d) erfolgt) gebunden ist und der parametrisierte Filter auf das Hauptdatenset angewendet wird (siehe in Schritt (c)), wird der ausgewählte Partitionsschlüsselwert als Filter für das Hauptdatenset angewendet, und die Abfrage mit dem Partitionsschlüsselfilter wird in allen Visualisierungen an Cosmos DB übergeben.

    Screenshot der Visualisierung nach Anwendung des Partitionsschlüsselfilters.

Erweiterte Optionen

Power Query bietet eine Reihe erweiterter Optionen, die Sie bei Bedarf ihrer Abfrage hinzufügen können.

In der folgenden Tabelle sind alle erweiterten Optionen aufgeführt, die Sie in Power Query einstellen können.

Erweiterte Option Beschreibung
Anzahl an Wiederholungen Legt fest, wie oft es wiederholt werden soll, wenn HTTP-Rückgabecodes von 408 - Request Timeout 412 - Precondition Failed oder 429 - Too Many Requests vorhanden sind. Standardmäßig sind 5 erneute Versuche festgelegt.
Passdown-Funktion „AVERAGE“ aktivieren Gibt an, ob der Connector die AVG-Aggregatfunktion an die Cosmos DB übergeben kann. Der Standardwert ist 1, und der Connector versucht standardmäßig, die AVG-Aggregatfunktion an die Cosmos DB zu übergeben. Wenn das Argument Zeichenfolgen-, boolesche oder NULL-Werte für die AVG-Aggregatfunktion enthält, wird ein nicht definiertes Resultset vom Cosmos DB-Server zurückgegeben. Bei Festlegung auf den Wert 0 wird die AVG-Aggregatfunktion nicht an den Cosmos DB-Server übergeben, und der Connector verarbeitet den AVG-Aggregationsvorgang selbst.
Passdown-Funktion „SORT“ für mehrere Spalten aktivieren Gibt an, ob der Connector mehrere Spalten an Cosmos DB übergeben werden kann, wenn sie in der ORDER BY-Klausel der SQL-Abfrage angegeben sind. Der Standardwert ist 0 und wenn mehr als eine Spalte in der ORDER BY-Klausel angegeben wird, übergibt der Connector die Spalten nicht standardmäßig und behandelt stattdessen die Ausführung der Reihenfolge selbst. Bei Festlegung auf den Wert 1 versucht der Connector, mehrere Spalten an Cosmos DB zu übergeben, wenn dies in der ORDER BY-Klausel der SQL-Abfrage angegeben ist. Damit mehrere Spalten an Cosmos DB übergeben werden können, stellen Sie sicher, dass zusammengesetzte Indizes für die Spalten in den jeweiligen Auflistungen festgelegt sind. Bei partitionierten Auflistungen wird eine SQL-Abfrage mit ORDER BY nur dann an Cosmos DB übergeben, wenn die Abfrage einen Filter für den partitionierten Schlüssel enthält. Wenn in der ORDER BY-Klausel mehr als acht Spalten angegeben sind, übergibt der Connector nicht die ORDER BY-Klausel und behandelt stattdessen die Sortierausführung selbst.

Bekannte Probleme und Einschränkungen

  • Bei partitionierten Cosmos DB-Containern wird eine SQL-Abfrage mit einer Aggregatfunktion an Cosmos DB übergeben, wenn die Abfrage auch einen Filter (WHERE-Klausel) für den Partitionsschlüssel enthält. Wenn die Aggregatabfrage keinen Filter für den Partitionsschlüssel enthält, wird die Aggregation vom Connector ausgeführt.

  • Der Connector übergibt keine Aggregatfunktion, wenn sie aufgerufen wird, nachdem TOP oder LIMIT angewendet wurde. Cosmos DB verarbeitet den TOP-Vorgang am Ende beim Verarbeiten einer Abfrage. In der folgenden Abfrage wird TOP beispielsweise in der Unterabfrage angewendet, während die Aggregatfunktion über diesem Resultset angewendet wird:

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

  • Wenn DISTINCT in einer Aggregatfunktion bereitgestellt wird, übergibt der Connector die Aggregatfunktion nicht an Cosmos DB. Wenn sie in einer Aggregatfunktion vorhanden sind, wird DISTINCT von der Cosmos DB SQL-API nicht unterstützt.

  • Für die Aggregatfunktion SUMME gibt Cosmos DB als Resultset „Nicht definiert“ zurück, wenn eines der Argumente in SUMME Zeichenfolge, boolescher Wert oder Null ist. Wenn jedoch Nullwerte vorhanden sind, übergibt der Connector die Abfrage so an Cosmos DB, dass die Datenquelle aufgefordert wird, einen Nullwert durch Null als Teil der SUMME-Berechnung zu ersetzen.

  • Für die Aggregatfunktion SUMME gibt Cosmos DB als Resultset „Nicht definiert“ zurück, wenn eines der Argumente in SUMME Zeichenfolge, boolescher Wert oder Null ist. Der Connector macht eine Verbindungseigenschaft verfügbar, um die Übergabe der AVG-Aggregatfunktion an Cosmos DB zu deaktivieren, falls dieses Standardverhalten von Cosmos DB überschrieben werden muss. Wenn der AVG-Passdown deaktiviert ist, wird er nicht an Cosmos DB übergeben, und der Connector übernimmt den AVG-Aggregationsvorgang selbst. Weitere Informationen finden Sie unter „Passdown-Funktion „AVERAGE“ aktivieren“ im Abschnitt Erweiterte Optionen.

  • Azure Cosmos DB-Container mit großem Partitionsschlüssel werden derzeit nicht im Connector unterstützt.

  • Der Aggregations-Pssdown ist aufgrund von Serverbeschränkungen für die folgende Syntax deaktiviert:

    • Wenn die Abfrage nicht nach einem Partitionsschlüssel filtert oder wenn der Partitionsschlüsselfilter den OR-Operator mit einem anderen Prädikat auf der obersten Ebene in der WHERE-Klausel verwendet.

    • Wenn die Abfrage einen oder mehrere Partitionsschlüssel enthält, die in einer IS NOT NULL-Klausel in der WHERE-Klausel angezeigt werden.

  • Der V2-Connector unterstützt keine komplexen Datentypen wie Arrays, Objekte und hierarchische Strukturen. Für diese Szenarien empfehlen wir das Feature Fabric-Spiegelung für Azure Cosmos DB.

  • Der V2-Connector verwendet das Sampling der ersten 1.000 Dokumente, um das abgeleitete Schema zu erstellen. Für Szenarien zur Weiterentwicklung von Schemas, in denen nur ein Teil der Dokumente aktualisiert wird, wird es nicht empfohlen. Beispielsweise wird eine Eigenschaft, die einem Dokument in einem Container mit Tausenden von Dokumenten neu hinzugefügt wird, möglicherweise nicht in das abgeleitete Schema einbezogen. Für diese Szenarien empfehlen wir das Feature Fabric-Spiegelung für Azure Cosmos DB.

  • Derzeit unterstützt der V2-Connector keine Zeichenfolgenwerte in Objekteigenschaften.

  • Der Filter-Pssdown ist aufgrund von Serverbeschränkungen für die folgende Syntax deaktiviert:

    • Wenn auf die Abfrage mit einer oder mehreren Aggregatspalten in der WHERE-Klausel verwiesen wird.