Informationen zum Zugriff auf gespiegelte Azure Cosmos DB-Daten in Lakehouse und Notebooks von Microsoft Fabric (Vorschau)

In dieser Anleitung erfahren Sie, wie Sie auf gespiegelte Azure Cosmos DB-Daten in Lakehouse und Notebooks von Microsoft Fabric (Preview) zugreifen.

Wichtig

Die Spiegelung für Azure Cosmos DB befindet sich derzeit in der Vorschau. Produktionsworkloads werden in der Vorschauversion nicht unterstützt. Derzeit werden nur Azure Cosmos DB for NoSQL-Konten unterstützt.

Voraussetzungen

Tipp

Es wird empfohlen, während der öffentlichen Vorschau eine Test- oder Entwicklungskopie Ihrer bestehenden Azure Cosmos DB-Daten zu verwenden, die schnell aus einem Backup wiederhergestellt werden kann.

Einrichten der Spiegelung und Voraussetzungen

Konfigurieren Sie die Spiegelung für die Azure Cosmos DB for NoSQL-Datenbank. Wenn Sie sich nicht sicher sind, wie Sie die Spiegelung konfigurieren, lesen Sie die Anleitung zur Konfiguration gespiegelter Datenbanken.

  1. Navigieren Sie zum Fabric-Portal.

  2. Erstellen Sie eine neue Verbindung und eine gespiegelte Datenbank mit den Anmeldedaten Ihres Azure Cosmos DB-Kontos.

  3. Warten Sie, bis die Replikation die Anfangsmomentaufnahme der Daten abgeschlossen hat.

Zugriff auf gespiegelte Daten in Lakehouse und Notebooks

Verwenden Sie Lakehouse, um die Anzahl der Tools, die Sie für die Analyse Ihrer gespiegelten Azure Cosmos DB for NoSQL-Daten verwenden können, weiter zu erhöhen. Hier verwenden Sie Lakehouse, um ein Spark-Notebook zur Abfrage Ihrer Daten zu erstellen.

  1. Navigieren Sie zurück zur Fabric-Portal-Startseite.

  2. Wählen Sie im Navigationsmenü Erstellen.

  3. Wählen Sie Erstellen, suchen Sie den Abschnitt Datentechnik und wählen Sie dann Lakehouse.

  4. Geben Sie einen Namen für das Lakehouse ein und wählen Sie dann Erstellen.

  5. Wählen Sie nun Daten abrufen und dann Neue Verknüpfung. Wählen Sie aus der Liste der Verknüpfungsoptionen Microsoft OneLake.

  6. Wählen Sie die gespiegelte Azure Cosmos DB for NoSQL-Datenbank aus der Liste der gespiegelten Datenbanken in Ihrem Fabric-Arbeitsbereich. Wählen Sie die Tabellen aus, die Sie mit Lakehouse verwenden möchten, klicken Sie auf Weiter und dann auf Erstellen.

  7. Öffnen Sie das Kontextmenü für die Tabelle in Lakehouse und wählen Sie Neues oder bestehendes Notebook.

  8. Dadurch wird automatisch ein neues Notebook geöffnet und ein DataFrame mit Datenrahmen mit SELECT LIMIT 1000 geladen.

  9. Führen Sie Abfragen wie SELECT * mit Spark aus.

    df = spark.sql("SELECT * FROM Lakehouse.OrdersDB_customers LIMIT 1000")
    display(df)
    

    Screenshot eines Lakehouse-Notebooks mit vorgeladenen Daten aus der gespiegelten Datenbank.

    Hinweis

    In diesem Beispiel wird der Name der Tabelle vorausgesetzt. Verwenden Sie beim Schreiben ihrer Spark-Abfrage Ihre eigene Tabelle.

Rückschreiben mithilfe von Spark

Schließlich können Sie Spark- und Python-Code verwenden, um Daten aus Notebooks in Fabric zurück in Ihr Azure Cosmos DB-Quellkonto zu schreiben. Vielleicht möchten Sie dies tun, um Analyseergebnisse in Cosmos DB rückzuschreiben, was dann als Bereitstellungsebene für OLTP-Anwendungen verwendet werden kann.

  1. Erstellen Sie vier Codezellen in Ihrem Notebook.

  2. Fragen Sie zunächst Ihre gespiegelten Daten ab.

    fMirror = spark.sql("SELECT * FROM Lakehouse1.OrdersDB_ordercatalog")
    

    Tipp

    Die Tabellennamen in diesen Beispielcodeblöcken setzen ein bestimmtes Datenschema voraus. Sie können diese durch Ihre eigenen Tabellen- und Spaltennamen ersetzen.

  3. Transformieren und aggregieren Sie nun die Daten.

    dfCDB = dfMirror.filter(dfMirror.categoryId.isNotNull()).groupBy("categoryId").agg(max("price").alias("max_price"), max("id").alias("id"))
    
  4. Als nächstes konfigurieren Sie Spark so, dass es unter Verwendung Ihrer Anmeldeinformationen, des Datenbanknamens und des Containernamens in Ihr Azure Cosmos DB for NoSQL-Konto zurückschreibt.

    writeConfig = {
      "spark.cosmos.accountEndpoint" : "https://xxxx.documents.azure.com:443/",
      "spark.cosmos.accountKey" : "xxxx",
      "spark.cosmos.database" : "xxxx",
      "spark.cosmos.container" : "xxxx"
    }
    
  5. Verwenden Sie schließlich Spark, um zurück in die Quelldatenbank zu schreiben.

    dfCDB.write.mode("APPEND").format("cosmos.oltp").options(**writeConfig).save()
    
  6. Führen Sie alle Codezellen aus.

    Wichtig

    Schreibvorgänge in Azure Cosmos DB verbrauchen Anforderungseinheiten (Request Units, RUs).