Compartir vía


Instrucciones: Acceso a datos reflejados de Azure Cosmos DB en Lakehouse y cuadernos desde Microsoft Fabric (versión preliminar)

En esta guía, aprenderá a acceder a datos reflejados de Azure Cosmos DB en Lakehouse y cuadernos desde Microsoft Fabric (versión preliminar)

Importante

La creación de reflejo para Azure Cosmos DB está actualmente en versión preliminar. No se admiten cargas de trabajo de producción durante la versión preliminar. Actualmente, solo se admiten cuentas de Azure Cosmos DB for NoSQL.

Requisitos previos

Sugerencia

En la versión preliminar pública, se recomienda usar una copia de prueba o desarrollo de los datos existentes de Azure Cosmos DB que se pueda recuperar rápidamente de una copia de seguridad.

Configuración de la creación de reflejo y requisitos previos

Configure la creación de reflejo para la base de datos de Azure Cosmos DB for NoSQL. Si no está seguro de cómo configurar la creación de reflejo, consulte el tutorial para configurar bases de datos reflejadas.

  1. Vaya al portal de Fabric.

  2. Cree una nueva conexión y una base de datos reflejada con las credenciales de la 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

Use Lakehouse para ampliar aún más el número de herramientas que puede usar para analizar los datos reflejados de Azure Cosmos DB for NoSQL. Aquí utilizará Lakehouse para crear un cuaderno de Spark y 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. Ponga un nombre a Lakehouse y seleccione Crear.

  5. A continuación, seleccione Obtener datos y Nueva combinación de teclas. En la lista de opciones de combinaciones de teclas, seleccione Microsoft OneLake.

  6. Seleccione la base de datos de Azure Cosmos DB for NoSQL reflejada en la lista de bases de datos reflejadas del área de trabajo de Fabric. Seleccione las tablas que se van a usar con Lakehouse. A continuación, seleccione Siguiente y Crear.

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

  8. Se abrirá automáticamente un cuaderno nuevo y se cargará un dataframe mediante SELECT LIMIT 1000.

  9. Ejecute consultas como SELECT * con 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 supone el nombre de la tabla. Use su propia tabla al escribir la consulta de Spark.

Escritura diferida con Spark

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

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

  2. Antes de nada, consulte los datos reflejados.

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

    Sugerencia

    Los nombres de tabla en estos bloques de código de ejemplo asumen un esquema de datos determinado. Reemplácelo con sus propios nombres de tabla y columna.

  3. A continuación, transforme y agregue los datos.

    dfCDB = dfMirror.filter(dfMirror.categoryId.isNotNull()).groupBy("categoryId").agg(max("price").alias("max_price"), max("id").alias("id"))
    
  4. Después, configure Spark para volver a escribir en la cuenta de Azure Cosmos DB for NoSQL mediante las credenciales, el nombre de la base de datos y el nombre de 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).