Руководство. Преобразование данных с помощью хранимой процедуры

Область применения: конечная точка аналитики SQL и хранилище в Microsoft Fabric

Узнайте, как создать и сохранить новую хранимую процедуру для преобразования данных.

Преобразование данных

  1. На вкладке "Главная" ленты выберите новый SQL-запрос.

    Screenshot of the ribbon of the Home tab, showing where to select New SQL query.

  2. В редакторе запросов вставьте следующий код, чтобы создать хранимую процедуру dbo.populate_aggregate_sale_by_city. Эта хранимая процедура создаст и загрузит таблицу dbo.aggregate_sale_by_date_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
        --If the aggregate table already exists, drop it. Then create the table.
        DROP TABLE IF EXISTS [dbo].[aggregate_sale_by_date_city];
        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)
            );
    
        --Reload the aggregated dataset to 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
    
  3. Чтобы сохранить этот запрос для ссылки позже, щелкните правой кнопкой мыши вкладку запроса и выберите "Переименовать".

    Screenshot of the tabs in the editor screen, showing where to right-click on the query and select Rename.

  4. Введите "Создать агрегатную процедуру ", чтобы изменить имя запроса.

  5. Нажмите клавишу ВВОД на клавиатуре или выберите в любом месте за пределами вкладки, чтобы сохранить изменение.

  6. Нажмите кнопку Выполнить, чтобы выполнить запрос.

  7. Нажмите кнопку обновления на ленте.

    Screenshot of the Home ribbon, showing where to select the Refresh button.

  8. В обозревателе объектов убедитесь, что вы можете увидеть только что созданную хранимую процедуру, разверив узел StoredProcedures в схемеdbo.

    Screenshot of the Explorer pane, showing where to expand the StoredProcedures node to find your newly created procedure.

  9. На вкладке "Главная" ленты выберите новый SQL-запрос.

  10. В редакторе запросов вставьте следующий код. Этот T-SQL выполняется dbo.populate_aggregate_sale_by_city для создания dbo.aggregate_sale_by_date_city таблицы.

    --Execute the stored procedure to create the aggregate table.
    EXEC [dbo].[populate_aggregate_sale_by_city];
    
  11. Чтобы сохранить этот запрос для ссылки позже, щелкните правой кнопкой мыши вкладку запроса и выберите "Переименовать".

  12. Введите команду "Создать агрегатную процедуру ", чтобы изменить имя запроса.

  13. Нажмите клавишу ВВОД на клавиатуре или выберите в любом месте за пределами вкладки, чтобы сохранить изменение.

  14. Нажмите кнопку Выполнить, чтобы выполнить запрос.

  15. Нажмите кнопку обновления на ленте. Выполнение запроса занимает от двух до трех минут.

  16. В обозревателе объектов загрузите предварительную версию данных, чтобы убедиться, что данные загружены успешно, выбрав aggregate_sale_by_city таблицу в Обозреватель.

    Screenshot of the Explorer pane next to a Data preview screen that lists the data loaded into the selected table.

Следующий шаг