Aracılığıyla paylaş


Microsoft Fabric'te Cosmos DB veritabanını OneLake ile yansıtın

Microsoft Fabric veritabanındaki her Cosmos DB, açık kaynak Delta Lake biçiminde OneLake'e yansıtılır. Bu özellik ek yapılandırma veya kurulum gerektirmez ve veritabanı oluşturulduğunda otomatik olarak etkinleştirilir. Bu sıkı tümleştirme, ETL (Ayıklama, Dönüştürme, Yükleme) işlem hatları gereksinimini ortadan kaldırır ve Cosmos DB verilerinin her zaman analize hazır olmasını sağlar.

Bu otomatik yansıtma desteği, aşağıdakiler dahil ancak bunlarla sınırlı olmamak üzere senaryoları etkinleştirir:

  • Transact SQL (T-SQL) sorgu dilini kullanan geçici sorgular
  • Apache Spark ile tümleştirme
  • Not defterlerini kullanarak gerçek zamanlı veriler üzerinde analiz
  • Veri bilimi ve makine öğrenmesi iş akışları

Yansıtma durumu

Fabric portalında veritabanının çoğaltma bölümüne giderek çoğaltmanın durumunu kontrol edebilirsiniz. Bu bölüm, son eşitlemenin durumu da dahil olmak üzere çoğaltma hakkındaki meta verileri içerir.

Fabric veritabanındaki Cosmos DB için yansıtma durum iletişim kutusunun ekran görüntüsü.

SQL analytics uç noktası sorguları

SQL analiz uç noktası, T-SQL kullanarak yansıtılmış Cosmos DB verilerini doğrudan Doku portalında sorgulamanızı sağlar. NoSQL veri gezgini ile T-SQL SQL analiz uç noktası arasında istediğiniz zaman geçiş yapabilirsiniz.

Temel sorguları çalıştırma

Yansıtılmış verilerinizi sorgulamak için standart T-SQL söz dizimini kullanın. Aşağıdaki örnekte basit bir toplama sorgusu gösterilmektedir:

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

Temel bir senaryo için SQL analiz uç noktasındaki sorgu düzenleyicisini kullanan Transact SQL (T-SQL) sorgusunun ekran görüntüsü.

Gelişmiş sorgularla örnek verileri analiz etme

Daha karmaşık analiz senaryoları için, birden çok ölçümü birleştiren ve gelişmiş T-SQL özelliklerini kullanan sorgular çalıştırabilirsiniz. Aşağıdaki örnek, ürün KPI'lerini hesaplamak ve kategoriler arasında içgörüleri gözden geçirmek için yerleşik örnek veri kümesini kullanır. Örnek veri kümesi hakkında daha fazla bilgi için bkz. Microsoft Fabric'te Cosmos DB'de örnek veri kümeleri.

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

Sorgu düzenleyicisinde sorgunun sonuçlarını gözlemleyin:

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

Gelişmiş bir senaryo için SQL analiz uç noktasındaki sorgu düzenleyicisini kullanan gelişmiş Transact SQL (T-SQL) sorgusunun ekran görüntüsü.

OPENJSON ile iç içe JSON dizilerini sorgulama

OPENJSON belgelerinizde iç içe JSON dizilerini ayrıştırmak ve sorgulamak için işlevini kullanın. Aşağıdaki örnek, en büyük fiyat artışlarına sahip ürünleri belirlemek için diziyi priceHistory analiz ederek fiyatlandırma eğilimlerini izlemenize ve fiyatlandırma stratejinizi iyileştirmenize yardımcı olur.

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

Sorgu düzenleyicisinde sorgunun sonuçlarını gözlemleyin:

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

Gelişmiş bir senaryo için SQL analiz uç noktasındaki sorgu düzenleyicisini kullanan OPENJSON Transact SQL (T-SQL) sorgusunun ekran görüntüsü.

Sonraki Adımlar