Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
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
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
]
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
]