Sdílet prostřednictvím


Kurz: Transformace dat pomocí uložené procedury ve skladu

Platí pro:✅ Koncový bod sql Analytics a sklad v Microsoft Fabric

V tomto kurzu se dozvíte, jak vytvořit uloženou proceduru ve skladu pro transformaci dat v tabulce.

Poznámka

Tento tutoriál je součástí komplexního scénáře. Abyste mohli absolvovat tento kurz, musíte nejprve dokončit tyto kurzy:

  1. Vytvoření pracovního prostoru
  2. Vytvořte sklad
  3. Vložení dat do skladu

Vytvoření uložené procedury

V této úloze se dozvíte, jak vytvořit uloženou proceduru pro transformaci dat v tabulce skladu.

  1. Ujistěte se, že je otevřený pracovní prostor, který jste vytvořili v prvním kurzu .

  2. Na pásu karet Domů vyberte Nový dotaz SQL.

    snímek obrazovky s pásem karet Domů a zvýrazněnou možností Nový dotaz SQL

  3. V editoru dotazů vložte následující kód. Kód zahodí uloženou proceduru (pokud existuje) a pak vytvoří uloženou proceduru s názvem populate_aggregate_sale_by_city. Logika uložené procedury vytvoří tabulku s názvem aggregate_sale_by_date_city a vloží do ní data pomocí dotazu seskupování, který spojí fact_sale a dimension_city tabulky.

     --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. Chcete-li spustit dotaz, na pásu karet návrháře dotazů vyberte Spustit.

  5. Po dokončení provádění přejmenujte dotaz na Create Aggregate Procedure.

  6. V podokně Průzkumník ověřte, že uvnitř složky Uložené procedury pro schéma dbo existuje aggregate_sale_by_date_city uložená procedura.

    Snímek obrazovky podokna Průzkumníka se zvýrazněním nově vytvořené uložené procedury.

Spuštění uložené procedury

V této úloze se dozvíte, jak spustit uloženou proceduru pro transformaci dat v tabulce skladu.

  1. Vytvořte nový dotaz.

  2. V editoru dotazů vložte následující kód. Kód spustí uloženou proceduru populate_aggregate_sale_by_city.

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

  4. Po dokončení provádění přejmenujte dotaz na Run Aggregate Procedure.

  5. Pokud chcete zobrazit náhled agregovaných dat, vyberte v podokně Explorer tabulku aggregate_sale_by_date_city.

    Poznámka

    Pokud se tabulka nezobrazí, klikněte na tři tečky (...) pro složku Tabulky a poté zvolte možnost Aktualizovat.

    Snímek obrazovky podokna Průzkumníka, který zvýrazňuje nově vytvořenou tabulku.

Další krok