0

我使用 Azure SQL 数据库作为我的源数据库。其中包括 10 个表。我需要在一年的时间间隔内对表进行归档和清除。目前我正在使用 Azure 数据工厂将数据从源数据库移动到数据仓库。我可以使用数据工厂进行归档和清除。如果不是请建议我执行此活动的正确方法。

4

2 回答 2

0

如果我正确理解了您的问题,您需要每隔一年根据一定的逻辑和标准清空您的表格。

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

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

于 2019-09-06T15:51:35.030 回答
0

我可以使用数据工厂进行归档和清除吗?

是的你可以。Azure 数据工厂支持 Azure 数据仓库。您可以按照本教程:使用 Azure 数据工厂中的 SQL Server 存储过程活动转换数据

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

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

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 

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

希望这可以帮助。

于 2019-09-10T09:08:02.853 回答