Zdieľať cez


Kurz: Transformácia údajov pomocou uloženej procedúry v sklade

Vzťahuje sa na:✅ koncový bod analýzy SQL a sklad v službe Microsoft Fabric

V tomto kurze sa dozviete, ako vytvoriť uloženú procedúru v sklade na transformáciu údajov v tabuľke.

Nota

Tento kurz je súčasťou koncového scenára. Ak chcete dokončiť tento kurz, musíte najprv absolvovať tieto kurzy:

  1. Vytvorenie pracovného priestoru
  2. vytvorenie v sklade
  3. údajov Ingestu do skladu

Vytvorenie uloženej procedúry

V tejto úlohe sa dozviete, ako vytvoriť uloženú procedúru na transformáciu údajov v tabuľke skladu.

  1. Uistite sa, že pracovný priestor, ktorý ste vytvorili v prvom kurze , je otvorený.

  2. Na páse s nástrojmi Domov vyberte položky Nový dotaz SQL.

    Snímka obrazovky pása s nástrojmi Domov so zvýraznenou možnosťou Nový dotaz SQL.

  3. Do editora dotazov prilepte nasledujúci kód. Kód odošle uloženú procedúru (ak existuje) a potom vytvorí uloženú procedúru s názvom populate_aggregate_sale_by_city. Logika uloženej procedúry vytvorí tabuľku s názvom aggregate_sale_by_date_city a vloží do nej údaje s dotazom zoskupenia, ktorý spája fact_sale a dimension_city tabuľky.

     --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. Ak chcete dotaz spustiť, na páse s nástrojmi návrhára dotazov vyberte položky Spustiť.

  5. Po dokončení premenujte dotaz na Create Aggregate Procedure.

  6. Na table prieskumníka v rámci priečinka uložených procedúr pre schému overte, či existuje uložená procedúra.

    Snímka obrazovky tably Prieskumník so zvýraznenou novovytvorenou uloženou procedúrou.

Spustenie uloženej procedúry

V tejto úlohe sa dozviete, ako vykonať uloženú procedúru na transformáciu údajov v tabuľke skladu.

  1. Vytvorte nový dotaz.

  2. Do editora dotazov prilepte nasledujúci kód. Kód vykoná populate_aggregate_sale_by_city uloženú procedúru.

     --Execute the stored procedure to create and load aggregated data.
     EXEC [dbo].[populate_aggregate_sale_by_city];
    
  3. Spustite dotaz.

  4. Po dokončení premenujte dotaz na Run Aggregate Procedure.

  5. Ak chcete zobraziť ukážku agregovaných údajov, na table prieskumníka vyberte tabuľku .

    Nota

    Ak sa tabuľka nezobrazuje, vyberte tri bodky (...) priečinka Tables a potom vyberte položky Obnoviť.

    Snímka obrazovky tably Prieskumník so zvýraznenou novovytvorenou tabuľkou.

Ďalší krok