แชร์ผ่าน


มิเรอร์ OneLake ในฐานข้อมูล Cosmos DB ใน Microsoft Fabric

Cosmos DB ทุกตัวในฐานข้อมูล Microsoft Fabric มีเหมือนใน OneLake ในรูปแบบ Delta Lake แบบโอเพนซอร์ส คุณลักษณะนี้ไม่จําเป็นต้องมีการกําหนดค่าหรือการตั้งค่าเพิ่มเติม และจะเปิดใช้งานโดยอัตโนมัติเมื่อสร้างฐานข้อมูล การรวมกันอย่างหนาแน่นนี้จะขจัดความจําเป็นสําหรับไปป์ไลน์ ETL (แยก แปลง โหลด) และทําให้มั่นใจได้ว่าข้อมูล Cosmos DB พร้อมสําหรับการวิเคราะห์เสมอ

การสนับสนุนมิเรอร์อัตโนมัตินี้จะเปิดใช้งานสถานการณ์ต่างๆ รวมถึงแต่ไม่จํากัดเพียง:

  • คิวรีแบบเฉพาะกิจโดยใช้ภาษาคิวรี Transact SQL (T-SQL)
  • การรวมกับ Apache Spark
  • การวิเคราะห์ข้อมูลแบบเรียลไทม์โดยใช้สมุดบันทึก
  • เวิร์กโฟลว์การเรียนรู้ของวิทยาศาสตร์ข้อมูลและเครื่อง

สถานะการสะท้อน

คุณสามารถตรวจสอบสถานะของการจําลองแบบได้โดยการนําทางไปยังส่วนการจําลองแบบสําหรับฐานข้อมูลในพอร์ทัล Fabric ส่วนนี้ประกอบด้วยเมตาดาต้าเกี่ยวกับการจําลองแบบ รวมถึงสถานะของการซิงค์ล่าสุดด้วย

สกรีนช็อตของกล่องโต้ตอบสถานะสําหรับมิเรอร์สําหรับ Cosmos DB ในฐานข้อมูล Fabric

คิวรีปลายทางการวิเคราะห์ SQL

ตําแหน่งข้อมูลการวิเคราะห์ SQL ช่วยให้คุณสามารถสืบค้นข้อมูล Cosmos DB ที่มิเรอร์ได้โดยตรงในพอร์ทัล Fabric โดยใช้ T-SQL คุณสามารถสลับระหว่างตัวสํารวจข้อมูล NoSQL และตําแหน่งข้อมูลการวิเคราะห์ T-SQL SQL ได้ตลอดเวลา

เรียกใช้คิวรีพื้นฐาน

ใช้ไวยากรณ์ T-SQL มาตรฐานเพื่อสืบค้นข้อมูลที่มิเรอร์ของคุณ ตัวอย่างต่อไปนี้แสดงแบบสอบถามการรวมอย่างง่าย:

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

สกรีนช็อตของคิวรี Transact SQL (T-SQL) โดยใช้ตัวแก้ไขคิวรีในจุดสิ้นสุดการวิเคราะห์ SQL สําหรับสถานการณ์พื้นฐาน

วิเคราะห์ข้อมูลตัวอย่างด้วยการสืบค้นขั้นสูง

สําหรับสถานการณ์การวิเคราะห์ที่ซับซ้อนมากขึ้น คุณสามารถเรียกใช้การสืบค้นที่รวมเมตริกหลายตัวและใช้คุณลักษณะ T-SQL ขั้นสูงได้ ตัวอย่างต่อไปนี้ใช้ชุดข้อมูลตัวอย่างที่มีอยู่แล้วภายในเพื่อคํานวณ KPI ของผลิตภัณฑ์และตรวจสอบข้อมูลเชิงลึกในหมวดหมู่ต่างๆ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับชุดข้อมูลตัวอย่าง โปรดดู ชุดข้อมูลตัวอย่างใน Cosmos DB ใน 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;

สังเกตผลลัพธ์ของคิวรีในตัวแก้ไขคิวรี:

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

สกรีนช็อตของคิวรี Transact SQL (T-SQL) ขั้นสูงโดยใช้ตัวแก้ไขคิวรีในปลายทางการวิเคราะห์ SQL สําหรับสถานการณ์ขั้นสูง

คิวรีอาร์เรย์ JSON ที่ซ้อนกันด้วย OPENJSON

ใช้ฟังก์ชันนี้ OPENJSON เพื่อแยกวิเคราะห์และสืบค้นอาร์เรย์ JSON ที่ซ้อนกันภายในเอกสารของคุณ ตัวอย่างต่อไปนี้สาธิตวิธีวิเคราะห์ priceHistory อาร์เรย์เพื่อระบุผลิตภัณฑ์ที่มีการขึ้นราคามากที่สุด ซึ่งจะช่วยคุณติดตามแนวโน้มการกําหนดราคาและปรับกลยุทธ์การกําหนดราคาของคุณให้เหมาะสม

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

สังเกตผลลัพธ์ของคิวรีในตัวแก้ไขคิวรี:

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

สกรีนช็อตของคิวรี OPENJSON Transact SQL (T-SQL) โดยใช้ตัวแก้ไขคิวรีในปลายทางการวิเคราะห์ SQL สําหรับสถานการณ์ขั้นสูง

ขั้นตอนถัดไป