共用方式為


教學課程:使用倉儲中的預存程式轉換數據

適用於:✅ Microsoft Fabric 中的 SQL 分析端點和倉儲

在本教學課程中,瞭解如何在倉儲中建立預存程式,以轉換數據表中的數據。

注意

本教學課程是 端對端案例的一部分,。 若要完成本教學課程,您必須先完成下列教學課程:

  1. 建立工作區
  2. 建立倉儲
  3. 將數據導入至數據庫

建立預存程式

在這項工作中,瞭解如何建立預存程式,以轉換倉儲數據表中的數據。

  1. 確定您在 第一個教學課程中建立的工作區已開啟

  2. 在 [首頁] 功能區上,選取 [新增 SQL 查詢]。

    [首頁] 功能區的螢幕擷取畫面,特別標示「新增 SQL 查詢」選項。

  3. 在查詢編輯器中,貼上下列程式碼。 程序代碼會卸除預存程式(如果存在),然後建立名為 populate_aggregate_sale_by_city的預存程式。 預存程式邏輯會建立名為 aggregate_sale_by_date_city 的數據表,並使用聯結 fact_saledimension_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. 在 [瀏覽器] 窗格中,從 dbo 架構的 [預存程式] 資料夾中,確認 aggregate_sale_by_date_city 預存程式存在。

    檔案總管窗口的螢幕快照,其中顯示新建立的預存程序。

執行預存程式

在這項工作中,瞭解如何執行預存程式來轉換倉儲數據表中的數據。

  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. 若要預覽匯總的數據,請在 [瀏覽器] 窗格中,選取 aggregate_sale_by_date_city 表。

    注意

    如果資料表未出現,請選取 [Tables] 資料夾的省略號(...),然後選取 [重新整理]。

    [不管瀏覽器] 窗格的螢幕快照,其中突顯顯示新建立的資料表。

後續步驟