Поделиться через


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

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

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

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

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

    Снимок экрана: лента вкладки

  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. Чтобы сохранить этот запрос для ссылки позже, щелкните правой кнопкой мыши вкладку запроса и выберите "Переименовать".

    Снимок экрана: вкладки на экране редактора, в котором показано, где щелкнуть запрос правой кнопкой мыши и выбрать

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

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

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

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

    Снимок экрана: лента

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

    Снимок экрана: панель обозревателя, на которой показано, где развернуть узел StoredProcedures, чтобы найти только что созданную процедуру.

  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 таблицу в обозревателе.

    Снимок экрана: панель обозревателя рядом с экраном предварительного просмотра данных, в котором перечислены данные, загруженные в выбранную таблицу.

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