Partager via


Mettre en miroir OneLake dans la base de données Cosmos DB dans Microsoft Fabric

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.

Capture d’écran de la boîte de dialogue d’état pour la mise en miroir d’une base de données Cosmos DB dans Fabric.

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

Capture d’écran d’une requête Transact SQL (T-SQL) à l’aide de l’éditeur de requête dans le point de terminaison d’analytique SQL pour un scénario de base.

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
]

Capture d’écran de la requête Transact SQL (T-SQL) avancée à l’aide de l’éditeur de requête dans le point de terminaison d’analytique SQL pour un scénario avancé.

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
]

Capture d’écran d’une requête Transact SQL (T-SQL) OPENJSON à l’aide de l’éditeur de requête dans le point de terminaison de SQL Analytics pour un scénario avancé.

Étapes suivantes