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
- Una cuenta existente de Azure Cosmos DB for NoSQL.
- Si no tiene una suscripción de Azure, pruebe Azure Cosmos DB for NoSQL gratis.
- Si tiene una suscripción de Azure existente, cree una cuenta de Azure Cosmos DB for NoSQL.
- Una capacidad de Fabric existente. Si no tiene una capacidad existente, inicie una versión de prueba de Fabric.
- Habilite la creación de reflejo en el espacio de trabajo o el suscriptor de Fabric. Si la característica aún no está habilitada, habilite la creación de reflejo en el suscriptor de Fabric.
- La cuenta de Azure Cosmos DB for NoSQL debe configurarse para la creación de reflejo de Fabric. Para obtener más información, consulte Requisitos de la cuenta.
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.
Vaya al portal de Fabric.
Cree una nueva conexión y una base de datos reflejada con las credenciales de la cuenta de Azure Cosmos DB.
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.
Vuelva a ir a la página principal del portal de Fabric.
En el menú de navegación, seleccione Crear.
Seleccione Crear, busque la sección Ingeniería de datos y, a continuación, seleccione Lakehouse.
Ponga un nombre a Lakehouse y seleccione Crear.
A continuación, seleccione Obtener datos y Nueva combinación de teclas. En la lista de opciones de combinaciones de teclas, seleccione Microsoft OneLake.
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.
Abra el menú contextual de la tabla en Lakehouse y seleccione Cuaderno nuevo o existente.
Se abrirá automáticamente un cuaderno nuevo y se cargará un dataframe mediante
SELECT LIMIT 1000
.Ejecute consultas como
SELECT *
con Spark.df = spark.sql("SELECT * FROM Lakehouse.OrdersDB_customers LIMIT 1000") display(df)
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.
Cree cuatro celdas de código en el cuaderno.
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.
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"))
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" }
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()
Ejecute todas las celdas de código.
Importante
Las operaciones de escritura en Azure Cosmos DB consumirán unidades de solicitud (RU).