【问题标题】:How to perform Archiving and purging in Azure SQL database如何在 Azure SQL 数据库中执行存档和清除
【发布时间】:2019-09-06 05:11:24
【问题描述】:

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

【问题讨论】:

  • 您好,如果我的回答对您有帮助,您可以接受它作为答案(单击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢。

标签: azure archive azure-data-factory purge azure-database-mysql


【解决方案1】:

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

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

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

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

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 数据仓库作为链接服务。

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

添加一个触发器来安排管道执行:

希望这会有所帮助。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      • 2015-12-02
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      相关资源
      最近更新 更多