ETL增量提取最佳实践

时间:2014-09-25 18:20:11

标签: sql ssis etl

我需要一些关于我的设计的专家意见,以获取每日增量提取。我正在使用SQL 2008 R2,我有一个不错的大小数据库,接近100万人的记录,其所有属性和与另一个人角色的关系。

我想做两件事(至少现在)

  1. 消费者希望转储在平面文件中更改(新/更新)的内容
  2. 另一个消费者只想要平面文件(不同格式)中的新数据。
  3. 根据这些要求,似乎只有一件事是常见的,他们都想要“今天发生了什么变化”。所以这是我的方法:

    1. 创建一个控制表,其中Tablename和LastExtractDateTime为两列
    2. 创建一个舞台表,其中包含消费者需要的所有字段
    3. 我在所有交易表上都有CreatedDate和LastModifiedDate。
    4. 每天,让我们说在晚上10点,填写改变后的阶段(专用的SSIS包)表。存储过程以提取所有新数据(基于CreatedDate)和所有更改的数据(基于LastModifiedDate),所有日期都大于Control.LastExtractDateTime列中的日期
    5. 成功提取舞台数据后,请使用当前日期更新Control.LastExtractDateTime。
    6. 根据这个包是否成功(我们有一个自定义调度程序)启动其他SSIS包
    7. 请评论。谢谢。

1 个答案:

答案 0 :(得分:0)

我们使用类似的东西,除了你正在使用的设计:控制表,而我们使用Extract_Log_table。其中通过提取插入记录,同时提取时间,执行所花费的总时间(开始和结束时间)和行计数。 该表成为回答问题的参考,例如在一个特定日期(比如月末,年末,星期日等)提取数据需要多长时间。

谢谢