Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
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.
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
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
]
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
]