Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Chaque base de données Cosmos DB de Microsoft Fabric est mise en miroir dans OneLake au format Delta Lake open source. Cette fonctionnalité ne nécessite aucune configuration ou configuration supplémentaire et est automatiquement activée lors de la création de la base de données. Cette intégration étroite élimine le besoin de pipelines ETL (Extract, Transform, Load) et garantit que les données Cosmos DB sont toujours prêtes à l’analytique.
Cette prise en charge de la mise en miroir automatique active les scénarios, notamment, sans s'y limiter :
- Requêtes ad hoc utilisant le langage de requête Transact SQL (T-SQL)
- Intégration à Apache Spark
- Analyse des données en temps réel à l'aide de notebooks
- Flux de travail de science des données et de machine learning
État de la mise en miroir
Vous pouvez vérifier l’état de la réplication en accédant à la section de réplication de la base de données dans le portail Fabric. Cette section inclut les métadonnées relatives à la réplication, y compris l’état de la dernière synchronisation.
Requêtes de point de terminaison d’analytique SQL
Le point de terminaison d’analytique SQL vous permet d’interroger des données Cosmos DB mises en miroir directement dans le portail Fabric à l’aide de T-SQL. Vous pouvez basculer entre l’Explorateur de données NoSQL et le point de terminaison d’analytique SQL T-SQL à tout moment.
Exécution de requêtes de base
Utilisez la syntaxe T-SQL standard pour interroger vos données mises en miroir. L’exemple suivant montre une requête d’agrégation simple :
SELECT
categoryName,
COUNT(*) AS quantity
FROM
[<database-name>].[<database-name>].[<container-name>] -- Replace with your database and container name
GROUP BY
categoryName
Analyser des exemples de données avec des requêtes avancées
Pour les scénarios d’analytique plus complexes, vous pouvez exécuter des requêtes qui combinent plusieurs métriques et utilisent des fonctionnalités T-SQL avancées. L’exemple suivant utilise l’exemple de jeu de données intégré pour calculer les indicateurs de performance clés de produit et passer en revue les insights entre les catégories. Pour plus d’informations sur l’exemple de jeu de données, consultez Exemples de jeux de données dans Cosmos DB dans 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;
Observez les résultats de la requête dans l’éditeur de requête :
[
{
"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
]
Interroger des tableaux JSON imbriqués avec OPENJSON
Utilisez la OPENJSON fonction pour analyser et interroger des tableaux JSON imbriqués dans vos documents. L’exemple suivant montre comment analyser le priceHistory tableau pour identifier les produits avec les plus grandes augmentations de prix, ce qui vous aide à suivre les tendances tarifaires et à optimiser votre stratégie de tarification.
-- 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;
Observez les résultats de la requête dans l’éditeur de requête :
[
{
"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
]