Självstudie: Transformera data med en lagrad procedur i ett lager

Applies to:✅ SQL analytics endpoint and Warehouse in Microsoft Fabric

I den här självstudien lär du dig hur du skapar en lagrad procedur i ett lager för att transformera data i en tabell.

Note

This tutorial forms part of an end-to-end scenario. För att kunna slutföra den här självstudien måste du först slutföra de här självstudierna:

  1. Skapa en arbetsyta
  2. Skapa ett lager
  3. Ingest data into a Warehouse

Skapa en lagrad procedur

I den här uppgiften får du lära dig hur du skapar en lagrad procedur för att transformera data i en lagertabell.

  1. Ensure that the workspace you created in the first tutorial is open.

  2. On the Home ribbon, select New SQL query.

    Skärmbild av Start-menyns menyfliksområde som visar det markerade alternativet Ny SQL-fråga.

  3. In the query editor, paste the following code. Koden släpper den lagrade proceduren (om den finns) och skapar sedan en lagrad procedur med namnet populate_aggregate_sale_by_city. Logiken för lagrad procedur skapar en tabell med namnet aggregate_sale_by_date_city och infogar data i den med en grupp-efter-fråga som kopplar samman tabellerna fact_sale och 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. To execute the query, on the query designer ribbon, select Run.

  5. När utförandet är klart byter du namn på frågan till Create Aggregate Procedure.

  6. I fönstret Explorer kontrollerar du att den lagrade proceduren finns i mappen dbo för aggregate_sale_by_date_city-schemat.

    Skärmbild av explorer-fönstret som markerar den nyligen skapade lagrade proceduren.

Run the stored procedure

I den här uppgiften får du lära dig hur du kör den lagrade proceduren för att transformera data i en lagertabell.

  1. Skapa en ny fråga.

  2. In the query editor, paste the following code. The code executes the populate_aggregate_sale_by_city stored procedure.

     --Execute the stored procedure to create and load aggregated data.
     EXEC [dbo].[populate_aggregate_sale_by_city];
    
  3. Kör sökningen.

  4. När utförandet är klart byter du namn på frågan till Run Aggregate Procedure.

  5. Om du vill förhandsgranska aggregerade data går du till fönstret Explorer och väljer tabellen aggregate_sale_by_date_city.

    Note

    Om tabellen inte visas väljer du ellipsen (...) för mappen Tables och väljer sedan Uppdatera.

    Skärmbild av explorer-fönstret som markerar den nyligen skapade tabellen.

Next step