Del via


Spejl OneLake i Cosmos DB-databasen i Microsoft Fabric

Hver Cosmos DB i Microsoft Fabric-databasen afspejles i OneLake i Delta Lake-formatet med åben kildekode. Denne funktion kræver ikke nogen ekstra konfiguration eller konfiguration og aktiveres automatisk, når databasen oprettes. Denne tætte integration fjerner behovet for ETL-pipelines (Extract, Transform, Load) og sikrer, at Cosmos DB-data altid er analyseklare.

Denne automatiske spejlingssupport muliggør scenarier, herunder, men ikke begrænset til:

  • Ad hoc-forespørgsler ved hjælp af forespørgselssproget Transact SQL (T-SQL)
  • Integration med Apache Spark
  • Analyse over data i realtid ved hjælp af notesbøger
  • Arbejdsprocesser for datavidenskab og maskinel indlæring

Spejlingsstatus

Du kan kontrollere status for replikering ved at gå til replikeringsafsnittet for databasen på Fabric-portalen. Dette afsnit indeholder metadata om replikering, herunder status for den seneste synkronisering.

Skærmbillede af statusdialogboksen for spejling for en Cosmos DB i Fabric-database.

SQL Analytics-slutpunktsforespørgsler

SQL-analyse-endpointet gør det muligt at forespørge spejlede Cosmos DB-data direkte i Fabric-portalen ved hjælp af T-SQL. Du kan skifte mellem NoSQL-datastilederen og T-SQL SQL-analyseendpointet når som helst.

Kør grundlæggende forespørgsler

Brug standard T-SQL-syntaks til at forespørge dine spejlede data. Følgende eksempel viser en simpel aggregeringsforespørgsel:

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

Skærmbillede af en Transact SQL (T-SQL) forespørgsel ved hjælp af forespørgselseditoren i SQL analytics-endpointet til et grundlæggende scenarie.

Analyser prøvedata med avancerede forespørgsler

For mere komplekse analysescenarier kan du køre forespørgsler, der kombinerer flere metrikker og bruger avancerede T-SQL-funktioner. Følgende eksempel bruger det indbyggede eksempeldatasæt til at beregne produkt-KPI'er og gennemgå indsigter på tværs af kategorier. For mere information om eksempeldatasættet, se Eksempler på datasæt i Cosmos DB i 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;

Se resultaterne af forespørgslen i forespørgselseditoren:

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

Skærmbillede af avanceret Transact SQL (T-SQL) forespørgsel ved brug af forespørgselseditoren i SQL analytics-endpointet til et avanceret scenarie.

Foresøg indlejrede JSON-arrays med OPENJSON

Brug OPENJSON funktionen til at parse og forespørge indlejrede JSON-arrays i dine dokumenter. Følgende eksempel demonstrerer, hvordan du analyserer arrayet priceHistory for at identificere produkter med de største prisstigninger, hvilket hjælper dig med at følge pristendenser og optimere din prisstrategi.

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

Se resultaterne af forespørgslen i forespørgselseditoren:

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

Skærmbillede af en OPENJSON Transact SQL (T-SQL) forespørgsel ved brug af forespørgselseditoren i SQL analytics-endpointet til et avanceret scenarie.

Næste trin