Compartir a través de


Cómo acceder a datos reflejados de Azure Cosmos DB en Lakehouse y a cuadernos a través de Microsoft Fabric

En esta guía, aprenderá a acceder a los datos replicados de Azure Cosmos DB en Lakehouse y en los cuadernos de Microsoft Fabric.

Prerrequisitos

Sugerencia

Se recomienda usar una copia de prueba o desarrollo de los datos existentes de Azure Cosmos DB que se pueden recuperar rápidamente de una copia de seguridad.

Configuración del mirroring y requisitos previos

Configurar el reflejo para la base de datos Azure Cosmos DB de NoSQL. Si no está seguro de cómo configurar el reflejo, consulte el tutorial para configurar la base de datos reflejada.

  1. Vaya al portal de Fabric.

  2. Cree una nueva conexión así como una base de datos duplicada utilizando las credenciales de su cuenta de Azure Cosmos DB.

  3. Espere a que la replicación finalice la instantánea inicial de los datos.

Acceso a datos reflejados en Lakehouse y cuadernos

Utilice Lakehouse para ampliar aún más el número de herramientas que puede usar para analizar los datos reflejados de Azure Cosmos DB para NoSQL. Aquí, usará Lakehouse para crear un cuaderno de Spark para consultar los datos.

  1. Vuelva a ir a la página principal del portal de Fabric.

  2. En el menú de navegación, seleccione Crear.

  3. Seleccione Crear, busque la sección Ingeniería de datos y, a continuación, seleccione Lakehouse.

  4. Proporcione un nombre para Lakehouse y, a continuación, seleccione Crear.

  5. Ahora seleccione Obtener datos y, después, Nuevo acceso directo. En la lista de opciones de acceso directo, seleccione Microsoft OneLake.

  6. Seleccione la base de datos replicada de Azure Cosmos DB para NoSQL de la lista de bases de datos replicadas en su área de trabajo de Fabric. Seleccione las tablas que se van a usar con Lakehouse, seleccione Siguiente y, a continuación, seleccione Crear.

  7. Abra el menú contextual de la tabla en Lakehouse y seleccione Nuevo o existente.

  8. Un nuevo cuaderno se abre automáticamente y carga un dataframe mediante SELECT LIMIT 1000.

  9. Ejecute consultas como SELECT * mediante Spark.

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

    Captura de pantalla de un cuaderno de Lakehouse con datos cargados previamente desde la base de datos reflejada.

    Nota:

    En este ejemplo se asume el nombre de su tabla. Use su propia tabla al escribir la consulta de Spark.

Reescritura mediante Spark

Por último, puede usar código de Spark y Python para volver a escribir datos en la cuenta de Azure Cosmos DB de origen desde cuadernos de Fabric. Es posible que quiera hacerlo para escribir los resultados analíticos en Cosmos DB, que luego se pueden usar como plano de servicio para las aplicaciones OLTP.

  1. Cree cuatro celdas de código en el cuaderno.

  2. En primer lugar, realice una consulta de los datos replicados.

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

    Sugerencia

    Los nombres de tabla de estos bloques de código de ejemplo asumen un esquema de datos determinado. No dude en reemplazarlo por sus propios nombres de tabla y columna.

  3. Ahora, transforme y agregue los datos.

    dfCDB = dfMirror.filter(dfMirror.categoryId.isNotNull()).groupBy("categoryId").agg(max("price").alias("max_price"), max("id").alias("id"))
    
  4. A continuación, configure Spark para volver a escribir en la cuenta de Azure Cosmos DB para NoSQL mediante las credenciales, el nombre de la base de datos y el nombre del contenedor.

    writeConfig = {
      "spark.cosmos.accountEndpoint" : "https://xxxx.documents.azure.com:443/",
      "spark.cosmos.accountKey" : "xxxx",
      "spark.cosmos.database" : "xxxx",
      "spark.cosmos.container" : "xxxx"
    }
    
  5. Por último, use Spark para volver a escribir en la base de datos de origen.

    dfCDB.write.mode("APPEND").format("cosmos.oltp").options(**writeConfig).save()
    
  6. Ejecute todas las celdas de código.

    Importante

    Las operaciones de escritura en Azure Cosmos DB consumirán unidades de solicitud (RU).