Compartir a través de


Reflejar OneLake en la base de datos de Cosmos DB en Microsoft Fabric

Cada base de datos de Cosmos DB de Microsoft Fabric se refleja en OneLake en el formato delta Lake de código abierto. Esta característica no requiere ninguna configuración o configuración adicional y se habilita automáticamente cuando se crea la base de datos. Esta estrecha integración elimina la necesidad de canalizaciones de ETL (extracción, transformación, carga) y garantiza que los datos de Cosmos DB estén siempre listos para el análisis.

Esta compatibilidad automática con reflejo permite escenarios que incluyen, entre otros:

  • Consultas ad hoc mediante el lenguaje de consulta de Transact SQL (T-SQL)
  • Integración con Apache Spark
  • Análisis de datos en tiempo real mediante cuadernos
  • Flujos de trabajo de ciencia de datos y aprendizaje automático

Estado de reflejo

Para comprobar el estado de la replicación, vaya a la sección de replicación de la base de datos en el portal de Fabric. En esta sección se incluyen metadatos sobre la replicación, incluido el estado de la última sincronización.

Captura de pantalla del cuadro de diálogo de estado para la creación de reflejo de una base de datos de Cosmos DB en Fabric.

Consultas de punto de conexión de SQL Analytics

El punto de acceso de SQL Analytics permite consultar datos replicados de Cosmos DB directamente en el portal de Fabric mediante T-SQL. Puede cambiar en cualquier momento entre el explorador de datos NoSQL y el punto de conexión de análisis SQL de T-SQL.

Ejecución de consultas básicas

Use la sintaxis T-SQL estándar para consultar los datos reflejados. En el ejemplo siguiente se muestra una consulta de agregación simple:

SELECT
  categoryName,
  COUNT(*) AS quantity
FROM
  [<database-name>].[<database-name>].[<container-name>] -- Replace with your database and container name
GROUP BY
  categoryName

Captura de pantalla de una consulta de Transact SQL (T-SQL) mediante el editor de consultas en el punto de conexión de SQL Analytics para un escenario básico.

Análisis de datos de ejemplo con consultas avanzadas

Para escenarios de análisis más complejos, puede ejecutar consultas que combinen varias métricas y usen características avanzadas de T-SQL. En el ejemplo siguiente se usa el conjunto de datos de muestra integrado para calcular los KPI de producto y analizar las categorías. Para obtener más información sobre el conjunto de datos de ejemplo, vea Conjuntos de datos de ejemplo en Cosmos DB en Microsoft Fabric.

-- Product performance analysis by category
WITH SampleData AS (
  SELECT *
  FROM [<database-name>].[<database-name>].[<container-name>] -- Replace with your database and container name
),
TopProducts AS (
  SELECT 
    categoryName,
    name,
    ROW_NUMBER() OVER (PARTITION BY categoryName ORDER BY currentPrice DESC) AS rn
  FROM SampleData
  WHERE docType = 'product'
)
SELECT
  c.categoryName,
  COUNT(DISTINCT CASE WHEN c.docType = 'product' THEN c.productId END) AS totalProducts,
  ROUND(AVG(CASE WHEN c.docType = 'review' THEN CAST(c.stars AS FLOAT) END), 2) AS avgRating,
  tp.name AS topProduct,
  SUM(CASE WHEN c.docType = 'product' THEN c.currentPrice * c.inventory END) AS totalInventoryValue
FROM SampleData AS c
LEFT JOIN TopProducts AS tp ON c.categoryName = tp.categoryName AND tp.rn = 1
GROUP BY c.categoryName, tp.name
ORDER BY avgRating DESC;

Observe los resultados de la consulta en el editor de consultas:

[
  {
    "categoryName": "Devices, E-readers",
    "totalProducts": "10",
    "avgRating": "4.38",
    "topProduct": "eReader Lumina Edge X7",
    "totalInventoryValue": "890338.94"
  },
  {
    "categoryName": "Devices, Smartwatches",
    "totalProducts": "10",
    "avgRating": "4.37",
    "topProduct": "PulseSync Pro S7",
    "totalInventoryValue": "750008.86"
  },
  // Ommitted for brevity
]

Captura de pantalla de la consulta avanzada de Transact SQL (T-SQL) mediante el editor de consultas en el punto de conexión de SQL Analytics para un escenario avanzado.

Consulta de matrices JSON anidadas con OPENJSON

Use la OPENJSON función para analizar y consultar matrices JSON anidadas dentro de los documentos. En el ejemplo siguiente se muestra cómo analizar la priceHistory matriz para identificar los productos con los mayores aumentos de precios, lo que le ayuda a realizar un seguimiento de las tendencias de precios y a optimizar la estrategia de precios.

-- Identify products with significant price increases
WITH PriceChanges AS (
  SELECT
    p.productId,
    p.name,
    p.categoryName,
    p.currentPrice,
    ph.priceDate,
    ph.historicalPrice,
    p.currentPrice - ph.historicalPrice AS priceIncrease,
    ROUND(((p.currentPrice - ph.historicalPrice) / ph.historicalPrice) * 100, 1) AS percentIncrease
  FROM [<database-name>].[<database-name>].[<container-name>] AS p -- Replace with your database and container name
  CROSS APPLY OPENJSON(p.priceHistory) WITH (
    priceDate datetime2,
    historicalPrice float '$.price'
  ) AS ph
  WHERE p.docType = 'product'
)
SELECT TOP 10
  name,
  categoryName,
  currentPrice,
  priceIncrease,
  percentIncrease
FROM PriceChanges
WHERE priceIncrease > 0
ORDER BY percentIncrease DESC;

Observe los resultados de la consulta en el editor de consultas:

[
  {
    "name": "Resonova Elite360 Wireless ANC Headphones",
    "categoryName": "Accessories, Premium Headphones",
    "currentPrice": "523.66",
    "priceIncrease": "224.66",
    "percentIncrease": "75.1"
  },
  {
    "name": "AuraLux VX Pro Leather Case",
    "categoryName": "Accessories, Luxury Cases",
    "currentPrice": "129.96",
    "priceIncrease": "50.89",
    "percentIncrease": "64.4"
  },
  // Ommitted for brevity
]

Captura de pantalla de una consulta de Transact SQL (T-SQL) de OPENJSON mediante el editor de consultas en el punto de conexión de SQL Analytics para un escenario avanzado.

Pasos siguientes