แชร์ผ่าน


บทช่วยสอน: แปลงข้อมูลด้วย Stored Procedure ใน Warehouse

นําไปใช้กับ:✅ จุดสิ้นสุดการวิเคราะห์ SQL และ Warehouse ใน Microsoft Fabric

ในบทช่วยสอนนี้ เรียนรู้วิธีการสร้างกระบวนงานที่จัดเก็บไว้ใน Warehouse เพื่อแปลงข้อมูลในตาราง

โน้ต

บทช่วยสอนนี้เป็นส่วนหนึ่งของสถานการณ์แบบครอบคลุม เพื่อให้บทช่วยสอนเสร็จสมบูรณ์ คุณต้องทําบทช่วยสอนเหล่านี้ให้เสร็จสมบูรณ์ก่อน:

  1. สร้าง พื้นที่ทํางาน
  2. สร้าง คลังสินค้า
  3. การนําเข้าข้อมูลลงใน คลังสินค้า

สร้างกระบวนงานที่เก็บไว้

ในงานนี้ เรียนรู้วิธีการสร้างกระบวนงานที่เก็บไว้เพื่อแปลงข้อมูลในตารางคลังสินค้า

  1. ตรวจสอบให้แน่ใจว่าพื้นที่ทํางานที่คุณสร้างขึ้นในบทช่วยสอน เปิดอยู่

  2. บนแถบเครื่องมือ home ให้เลือก คิวรี SQL ใหม่

    สกรีนช็อตของริบบอนหน้าแรก โดยเน้นตัวเลือกคิวรี SQL ใหม่

  3. ในตัวแก้ไขคิวรี ให้วางโค้ดต่อไปนี้ โค้ดจะทิ้งกระบวนงานที่เก็บไว้ (ถ้ามี) จากนั้นจะสร้างกระบวนงานที่เก็บไว้ชื่อ populate_aggregate_sale_by_city ตรรกะ Stored Procedure จะสร้างตารางที่มีชื่อ aggregate_sale_by_date_city และแทรกข้อมูลลงในตารางด้วยคิวรี group-by ที่รวมตาราง fact_sale และตาราง dimension_city

     --Drop the stored procedure if it already exists.
     DROP PROCEDURE IF EXISTS [dbo].[populate_aggregate_sale_by_city];
     GO
    
     --Create the populate_aggregate_sale_by_city stored procedure.
     CREATE PROCEDURE [dbo].[populate_aggregate_sale_by_city]
     AS
     BEGIN
         --Drop the aggregate table if it already exists.
         DROP TABLE IF EXISTS [dbo].[aggregate_sale_by_date_city];
         --Create the aggregate table.
         CREATE TABLE [dbo].[aggregate_sale_by_date_city]
         (
            [Date] [DATETIME2](6),
            [City] [VARCHAR](8000),
            [StateProvince] [VARCHAR](8000),
            [SalesTerritory] [VARCHAR](8000),
            [SumOfTotalExcludingTax] [DECIMAL](38,2),
            [SumOfTaxAmount] [DECIMAL](38,6),
            [SumOfTotalIncludingTax] [DECIMAL](38,6),
            [SumOfProfit] [DECIMAL](38,2)
         );
    
         --Load aggregated data into the table.
         INSERT INTO [dbo].[aggregate_sale_by_date_city]
         SELECT
            FS.[InvoiceDateKey] AS [Date], 
            DC.[City], 
            DC.[StateProvince], 
            DC.[SalesTerritory], 
            SUM(FS.[TotalExcludingTax]) AS [SumOfTotalExcludingTax], 
            SUM(FS.[TaxAmount]) AS [SumOfTaxAmount], 
            SUM(FS.[TotalIncludingTax]) AS [SumOfTotalIncludingTax], 
            SUM(FS.[Profit]) AS [SumOfProfit]
         FROM [dbo].[fact_sale] AS FS
         INNER JOIN [dbo].[dimension_city] AS DC
            ON FS.[CityKey] = DC.[CityKey]
         GROUP BY
            FS.[InvoiceDateKey],
            DC.[City], 
            DC.[StateProvince], 
            DC.[SalesTerritory]
         ORDER BY 
            FS.[InvoiceDateKey], 
            DC.[StateProvince], 
            DC.[City];
     END;
    
  4. เมื่อต้องการดําเนินการคิวรี บนริบบอนตัวออกแบบคิวรี ให้เลือก เรียกใช้

  5. เมื่อการดําเนินการเสร็จสมบูรณ์ ให้เปลี่ยนชื่อคิวรีเป็น Create Aggregate Procedure

  6. ในบานหน้าต่าง Explorer จากภายในโฟลเดอร์ Stored Procedures สําหรับ Schema ให้ตรวจสอบว่ามีกระบวนงานที่เก็บไว้ของ อยู่

    สกรีนช็อตของบานหน้าต่าง Explorer โดยเน้นกระบวนการจัดเก็บที่สร้างขึ้นใหม่

เรียกใช้กระบวนงานที่เก็บไว้

ในงานนี้ เรียนรู้วิธีดําเนินการตามขั้นตอนการจัดเก็บเพื่อแปลงข้อมูลในตารางคลัง

  1. สร้างคิวรีใหม่

  2. ในตัวแก้ไขคิวรี ให้วางโค้ดต่อไปนี้ โค้ดจะดําเนินการขั้นตอนการจัดเก็บ populate_aggregate_sale_by_city

     --Execute the stored procedure to create and load aggregated data.
     EXEC [dbo].[populate_aggregate_sale_by_city];
    
  3. เรียกใช้คิวรี

  4. เมื่อการดําเนินการเสร็จสมบูรณ์ ให้เปลี่ยนชื่อคิวรีเป็น Run Aggregate Procedure

  5. หากต้องการแสดงตัวอย่างข้อมูลรวม ในบานหน้าต่าง Explorer ให้เลือกตาราง

    โน้ต

    ถ้าตารางไม่ปรากฏขึ้น เลือกจุดไข่ปลา (...) สําหรับโฟลเดอร์ ตาราง จากนั้นเลือก รีเฟรช

    สกรีนช็อตของบานหน้าต่าง Explorer โดยเน้นตารางที่สร้างขึ้นใหม่

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

บทช่วยสอน : เดินทางกับ T-SQL ใน Warehouse