我使用Azure数据库作为我的源database.Which,包括10个表。我需要在一个year.Currently之间的时间间隔内对表中的数据进行归档和清除,我正在使用Azure数据工厂将数据从源数据库转移到数据warehouse.Can,我使用数据factory.If进行归档和清除,而不是请建议我执行此活动的正确方法。
发布于 2019-09-10 09:08:02
我可以使用数据工厂进行归档和清除吗?
可以,停那儿吧。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-06 15:51:35
如果我正确理解了你的问题,你需要根据一定的逻辑和标准在一年内清空你的表格。
您可以做的是创建您自己的SQL清除查询,并创建一个新的管道,以便在存储过程活动中调用它。另外,创建一个计划好的触发器,它将每年运行一次管道,比如每年的1月1日。
每年1月1日,您的管道将被触发,并调用该存储过程并执行它以清除数据。
https://stackoverflow.com/questions/57816064
复制相似问题