Partager via


Aide et astuces pour accéder aux données Azure Cosmos DB en miroir dans Lakehouse et notebooks à partir de Microsoft Fabric (préversion)

Dans ce guide, vous apprendrez comment accéder aux données Azure Cosmos DB en miroir dans Lakehouse et les notebooks depuis Microsoft Fabric (préversion).

Important

La mise en miroir d'Azure Cosmos DB est actuellement en préversion. Les charges de travail de production ne sont pas prises en charge dans la préversion. Seuls les comptes Azure Cosmos DB for NoSQL sont pris en charge.

Prérequis

Conseil

Pendant la préversion publique, il est recommandé d'utiliser une copie de test ou de développement de vos données Azure Cosmos DB existantes qui peuvent être récupérées rapidement à partir d'une sauvegarde.

Configurer la mise en miroir et les prérequis

Configurez la mise en miroir pour la base de données Azure Cosmos DB for NoSQL. Si vous ne savez pas comment configurer la mise en miroir, reportez-vous au tutoriel de configuration de base de données miroir.

  1. Accédez au portail Microsoft Fabric.

  2. Créez une connexion et une base de données miroir à l'aide des identifiants de votre compte Azure Cosmos DB.

  3. Patientez que la réplication termine la capture instantanée initiale des données.

Accéder aux données miroir dans Lakehouse et les notebooks

Utilisez Lakehouse pour étendre davantage le nombre d'outils que vous pouvez utiliser pour analyser vos données Azure Cosmos DB for NoSQL en miroir. Ici, vous utilisez Lakehouse pour créer un notebook Spark pour interroger vos données.

  1. Accédez à la page d'accueil du portail Microsoft Fabric.

  2. Dans le menu de navigation, sélectionnez Créer.

  3. Sélectionnez Créer, recherchez la section Ingénieurs de données, puis sélectionnez Lakehouse.

  4. Spécifiez un nom pour Lakehouse, puis sélectionnez Créer.

  5. Sélectionnez à présent Obtenir des données, puis Nouveau raccourci. Dans la liste des options de raccourci, sélectionnez Microsoft OneLake.

  6. Sélectionnez la base de données Azure Cosmos DB for NoSQL en miroir dans la liste des bases de données miroir dans votre espace de travail Microsoft Fabric. Sélectionnez les tables à utiliser avec Lakehouse, sélectionnez Suivant, puis Créer.

  7. Ouvrez le menu contextuel de la table dans Lakehouse, puis sélectionnez Notebook nouveau ou existant.

  8. Un nouveau notebook s'ouvre et charge automatiquement un dataframe à l'aide de SELECT LIMIT 1000.

  9. Exécutez des requêtes telles que SELECT * en utilisant Spark.

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

    Capture d'écran d'un notebook Lakehouse avec des données préchargées à partir de la base de données miroir.

    Remarque

    Cet exemple suppose le nom de votre table. Utilisez votre table lors de l'écriture de votre requête Spark.

Réécrire à l'aide de Spark

Enfin, vous pouvez utiliser Spark et du code Python pour réécrire des données dans votre compte Azure Cosmos DB à partir de notebooks dans Microsoft Fabric. Vous pouvez effectuer cette opération pour réécrire les résultats analytiques dans Cosmos DB, qui peuvent ensuite être utilisés comme plan de service pour les applications OLTP.

  1. Créez quatre cellules de code dans votre notebook.

  2. Tout d'abord, interrogez vos données miroir.

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

    Conseil

    Les noms de la table de ces exemples de blocs de code supposent un schéma de données spécifique. N'hésitez pas à remplacer cela par vos propres noms de la table et de colonne.

  3. À présent, effectuez une transformation et une agrégation des données.

    dfCDB = dfMirror.filter(dfMirror.categoryId.isNotNull()).groupBy("categoryId").agg(max("price").alias("max_price"), max("id").alias("id"))
    
  4. Ensuite, configurez Spark pour réécrire votre compte Azure Cosmos DB for NoSQL à l'aide de vos identifiants, de votre nom de base de données et de votre nom de conteneur.

    writeConfig = {
      "spark.cosmos.accountEndpoint" : "https://xxxx.documents.azure.com:443/",
      "spark.cosmos.accountKey" : "xxxx",
      "spark.cosmos.database" : "xxxx",
      "spark.cosmos.container" : "xxxx"
    }
    
  5. Enfin, utilisez Spark pour réécrire dans la base de données source.

    dfCDB.write.mode("APPEND").format("cosmos.oltp").options(**writeConfig).save()
    
  6. Exécutez toutes les cellules de code.

    Important

    Les opérations d'écriture dans Azure Cosmos DB consomment des unités de requête (RU).