Tutorial: Daten mit einer gespeicherten Prozedur in einem Datenlager transformieren
Gilt für:✅ SQL-Analyseendpunkt und Warehouse in Microsoft Fabric
In diesem Lernprogramm erfahren Sie, wie Sie eine gespeicherte Prozedur in einem Warehouse erstellen, um Daten in einer Tabelle zu transformieren.
Anmerkung
Dieses Tutorial ist Teil eines End-to-End-Szenarios. Um dieses Tutorial abzuschließen, müssen Sie zuerst diese Tutorials abschließen:
Erstellen einer gespeicherten Prozedur
In dieser Aufgabe erfahren Sie, wie Sie eine gespeicherte Prozedur erstellen, um Daten in einer Lagertabelle zu transformieren.
Stellen Sie sicher, dass der Arbeitsbereich, den Sie im ersten Tutorial erstellt haben, geöffnet ist.
Wählen Sie im Menüband Start Neue SQL-Abfrage aus.
Fügen Sie im Abfrage-Editor den folgenden Code ein. Der Code legt die gespeicherte Prozedur (sofern vorhanden) ab und erstellt dann eine gespeicherte Prozedur mit dem Namen
populate_aggregate_sale_by_city
. Die Logik der gespeicherten Prozedur erstellt eine Tabelle mit dem Namenaggregate_sale_by_date_city
und fügt Daten mit einer Gruppierungsabfrage ein, bei der diefact_sale
unddimension_city
Tabellen verknüpft werden.--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;
Um die Abfrage auszuführen, wählen Sie im Menüband des Abfrage-Designers Ausführenaus.
Wenn die Ausführung abgeschlossen ist, benennen Sie die Abfrage in
Create Aggregate Procedure
um.Überprüfen Sie im Bereich Explorer im Ordner Gespeicherte Prozeduren für das
dbo
Schema, ob die gespeicherte Prozeduraggregate_sale_by_date_city
vorhanden ist.
Ausführen der gespeicherten Prozedur
In dieser Aufgabe erfahren Sie, wie Sie die gespeicherte Prozedur ausführen, um Daten in einer Lagertabelle zu transformieren.
Erstellen Sie eine neue Abfrage.
Fügen Sie im Abfrage-Editor den folgenden Code ein. Der Code führt die gespeicherte Prozedur
populate_aggregate_sale_by_city
aus.--Execute the stored procedure to create and load aggregated data. EXEC [dbo].[populate_aggregate_sale_by_city];
Führen Sie die Abfrage aus.
Wenn die Ausführung abgeschlossen ist, benennen Sie die Abfrage in
Run Aggregate Procedure
um.Um eine Vorschau der gesammelten Daten anzuzeigen, wählen Sie im Bereich Explorer die
aggregate_sale_by_date_city
Tabelle aus.Anmerkung
Wenn die Tabelle nicht angezeigt wird, wählen Sie die Auslassungspunkte (...) für den Ordner Tabellen aus, und wählen Sie dann Aktualisierenaus.