Condividi tramite


Esercitazione: Trasformazione dei dati con una stored procedure in un magazzino

Si applica a:✅ endpoint di Analisi SQL e Warehouse in Microsoft Fabric

Questa guida illustra come creare una stored procedure in un Warehouse per trasformare i dati in una tabella.

Nota

Questa esercitazione rientra nello scenario end-to-end. Per completare questa esercitazione, è prima necessario completare queste esercitazioni:

  1. Creare un'area di lavoro
  2. Creare un magazzino
  3. Inserire dati in un magazzino dati

Creare una stored procedure

In questa attività imparerai come creare una procedura memorizzata per trasformare i dati in una tabella del magazzino dati.

  1. Assicurarsi che l'area di lavoro creata nella prima esercitazione sia aperta.

  2. Nella barra multifunzione home selezionare Nuova query SQL.

    Screenshot della barra multifunzione Home, evidenziando l'opzione Nuova query SQL.

  3. Incollare il seguente codice nell'editor di query. Il codice elimina la stored procedure (se esistente) e quindi crea una stored procedure denominata populate_aggregate_sale_by_city. La logica della procedura memorizzata crea una tabella denominata aggregate_sale_by_date_city e vi inserisce dati con una query group-by che unisce le tabelle fact_sale e 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. Per eseguire la query, nella barra multifunzione del progettista di query selezionare Esegui.

  5. Al termine dell'esecuzione, rinominare la query come Create Aggregate Procedure.

  6. Nel riquadro Explorer, dall'interno della cartella Stored Procedures, nel contesto dello schema dbo, verificare che la stored procedure aggregate_sale_by_date_city esista.

    Screenshot del riquadro Esplora, evidenziando la stored procedure appena creata.

Eseguire la procedura memorizzata

In questa attività viene illustrato come eseguire la stored procedure per trasformare i dati in una tabella warehouse.

  1. Creare una nuova query.

  2. Incollare il seguente codice nell'editor di query. Il codice esegue la stored procedure populate_aggregate_sale_by_city.

     --Execute the stored procedure to create and load aggregated data.
     EXEC [dbo].[populate_aggregate_sale_by_city];
    
  3. Esegui la query.

  4. Al termine dell'esecuzione, rinominare la query come Run Aggregate Procedure.

  5. Per visualizzare in anteprima i dati aggregati, nel riquadro Esplora , selezionare la tabella aggregate_sale_by_date_city.

    Nota

    Se la tabella non viene visualizzata, selezionare l'icona con i tre punti (...) per la cartella Tables e quindi selezionare Aggiorna.

    Screenshot del riquadro Esplora, evidenzia la tabella appena creata.

Passaggio successivo