Delen via


Het spiegelen van OneLake naar de Cosmos DB-database in Microsoft Fabric

Elke Cosmos DB in de Microsoft Fabric-database wordt gespiegeld in OneLake in de open-source Delta Lake-indeling. Deze functie vereist geen extra configuratie of installatie en wordt automatisch ingeschakeld wanneer de database wordt gemaakt. Deze nauwe integratie elimineert de noodzaak van ETL-pijplijnen (extraheren, transformeren, laden) en zorgt ervoor dat Cosmos DB-gegevens altijd gereed zijn voor analyse.

Deze automatische mirror-ondersteuning maakt scenario's mogelijk, waaronder, maar niet beperkt tot:

  • Ad-hocquery's met behulp van de Transact SQL-querytaal (T-SQL)
  • Integratie met Apache Spark
  • Analyse van realtime gegevens met behulp van notebooks
  • Data science- en machine learning-werkstromen

Status van spiegeling

U kunt de status van de replicatie controleren door te navigeren naar de sectie Replicatie voor de database in de Fabric-portal. Deze sectie bevat metagegevens over replicatie, inclusief de status van de laatste synchronisatie.

Schermopname van het statusdialoogvenster voor spiegeling voor een Cosmos DB in Fabric-database.

SQL Analytics-eindpuntquery's

Met het EINDPUNT van SQL Analytics kunt u query's uitvoeren op gespiegelde Cosmos DB-gegevens rechtstreeks in de Fabric-portal met behulp van T-SQL. U kunt op elk gewenst moment schakelen tussen NoSQL Data Explorer en het T-SQL SQL-analyse-eindpunt.

Basisquery's uitvoeren

Gebruik de standaard T-SQL-syntaxis om een query uit te voeren op uw gespiegelde gegevens. In het volgende voorbeeld ziet u een eenvoudige aggregatiequery:

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

Schermopname van een Transact SQL-query (T-SQL) met behulp van de queryeditor in het SQL Analytics-eindpunt voor een basisscenario.

Voorbeeldgegevens analyseren met geavanceerde query's

Voor complexere analysescenario's kunt u query's uitvoeren die meerdere metrische gegevens combineren en geavanceerde T-SQL-functies gebruiken. In het volgende voorbeeld wordt de ingebouwde set voorbeeldgegevens gebruikt om KPI's van producten te berekenen en inzichten in verschillende categorieën te bekijken. Voor meer informatie over de voorbeeldgegevenssets, zie Voorbeeldgegevenssets in Cosmos DB in 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;

Bekijk de resultaten van de query in de queryeditor:

[
  {
    "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
]

Schermopname van geavanceerde Transact SQL-query (T-SQL) met behulp van de query-editor in het SQL Analytics-eindpunt voor een geavanceerd scenario.

Query's uitvoeren op geneste JSON-matrices met OPENJSON

Gebruik de OPENJSON functie om geneste JSON-matrices in uw documenten te parseren en er query's op uit te voeren. In het volgende voorbeeld ziet u hoe u de priceHistory matrix analyseert om producten te identificeren met de grootste prijsverhogingen, zodat u prijstrends kunt bijhouden en uw prijsstrategie kunt optimaliseren.

-- 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;

Bekijk de resultaten van de query in de queryeditor:

[
  {
    "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
]

Schermopname van een OPENJSON Transact SQL-query (T-SQL) met behulp van de queryeditor in het SQL Analytics-eindpunt voor een geavanceerd scenario.

Volgende stappen