如何在 Azure SQL 数据库中执行归档和清除

How to perform Archiving and purging in Azure SQL database

我使用 Azure SQL 数据库作为我的来源 database.Which 包括 10 tables。 我需要在 table 中以一个 year.Currently 的周期间隔进行归档和清除 我正在使用 Azure 数据工厂将数据从源数据库移动到数据 warehouse.Can 我使用数据 factory.If 不请建议我执行此 Activity.

的正确方法

如果我没看错你的问题,你需要在一年的时间间隔内根据一定的逻辑和标准清空你的table。

您可以创建自己的 SQL 清除查询并创建一个新管道以在存储过程 activity 中调用它。此外,创建一个计划触发器,它将 运行 管道每年一次自动说每年 1 月 1 日。

每年 1 月 1 日,您的管道将被触发并调用该存储过程并执行它以清除数据。

Can I do archiving and purging using data factory?

是的,你可以。 Azure 数据工厂支持 Azure 数据仓库。您可以按照本教程进行操作:Transform data by using the SQL Server stored procedure activity in Azure Data Factory.

首先,您需要在数据库中创建一个存储过程。

例如,下面是删除数据库中所有table数据的过程:

IF EXISTS (SELECT * FROM sysobjects WHERE type='P' and name=N'P_DeleteAllData' ) 
    DROP PROCEDURE P_DeleteAllData 
GO 

CREATE PROCEDURE P_DeleteAllData 
AS
    EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'  
    EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'  
    EXEC sp_MSForEachTable 'DELETE FROM ?'  
    EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL' 
    EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL' 
GO 

创建存储过程activity,选择Azure数据仓库作为链接服务。

选择数据仓库中的存储过程:

添加触发器以安排管道执行:

希望对您有所帮助。