หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
Cosmos DB ทุกตัวในฐานข้อมูล Microsoft Fabric มีเหมือนใน OneLake ในรูปแบบ Delta Lake แบบโอเพนซอร์ส คุณลักษณะนี้ไม่จําเป็นต้องมีการกําหนดค่าหรือการตั้งค่าเพิ่มเติม และจะเปิดใช้งานโดยอัตโนมัติเมื่อสร้างฐานข้อมูล การรวมกันอย่างหนาแน่นนี้จะขจัดความจําเป็นสําหรับไปป์ไลน์ ETL (แยก แปลง โหลด) และทําให้มั่นใจได้ว่าข้อมูล Cosmos DB พร้อมสําหรับการวิเคราะห์เสมอ
การสนับสนุนมิเรอร์อัตโนมัตินี้จะเปิดใช้งานสถานการณ์ต่างๆ รวมถึงแต่ไม่จํากัดเพียง:
- คิวรีแบบเฉพาะกิจโดยใช้ภาษาคิวรี Transact SQL (T-SQL)
- การรวมกับ Apache Spark
- การวิเคราะห์ข้อมูลแบบเรียลไทม์โดยใช้สมุดบันทึก
- เวิร์กโฟลว์การเรียนรู้ของวิทยาศาสตร์ข้อมูลและเครื่อง
สถานะการสะท้อน
คุณสามารถตรวจสอบสถานะของการจําลองแบบได้โดยการนําทางไปยังส่วนการจําลองแบบสําหรับฐานข้อมูลในพอร์ทัล 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
วิเคราะห์ข้อมูลตัวอย่างด้วยการสืบค้นขั้นสูง
สําหรับสถานการณ์การวิเคราะห์ที่ซับซ้อนมากขึ้น คุณสามารถเรียกใช้การสืบค้นที่รวมเมตริกหลายตัวและใช้คุณลักษณะ 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
]
คิวรีอาร์เรย์ 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
]