Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssis 暂存数据库和etl过程_Ssis_Etl_Data Warehouse - Fatal编程技术网

Ssis 暂存数据库和etl过程

Ssis 暂存数据库和etl过程,ssis,etl,data-warehouse,Ssis,Etl,Data Warehouse,如果ETL进程在暂存数据库刷新之前开始访问暂存数据库,则可能会出现问题。防止这种情况发生的最佳做法是什么?我目前看到这两种选择: (1) 在暂存刷新完成之前,切勿运行ETL进程 (2) 具有2个在刷新周期之间交换的暂存数据库 我们使用方法#1 我们记录SSIS包的执行开始,该包将临时数据库刷新到一个表中,并将完成或错误记录到同一行中的一个单独列中 我们的ETL流程检查该表中最近的行,以确定暂存刷新当前是否正在运行,以及暂存数据的使用时间 如果数据太陈旧,ETL包可以在必要时通过调用另一个包来强制

如果ETL进程在暂存数据库刷新之前开始访问暂存数据库,则可能会出现问题。防止这种情况发生的最佳做法是什么?我目前看到这两种选择:

(1) 在暂存刷新完成之前,切勿运行ETL进程

(2) 具有2个在刷新周期之间交换的暂存数据库

我们使用方法#1

我们记录SSIS包的执行开始,该包将临时数据库刷新到一个表中,并将完成或错误记录到同一行中的一个单独列中

我们的ETL流程检查该表中最近的行,以确定暂存刷新当前是否正在运行,以及暂存数据的使用时间


如果数据太陈旧,ETL包可以在必要时通过调用另一个包来强制刷新。

1号是显而易见的。我喜欢数字2,但我只听说它用于实际的数据库(经常加载1,然后在完成后交换并再次加载)。您可以尝试将staging/ETL分解为尽可能小的单元。我们使用项目,所以我们阶段化/加载一个项目(几个同时进行),但它是#1的一种形式,具有非常小的阶段刷新。谢谢你的评论。(2)如何实现?我做了很多谷歌搜索,但没有发现任何有用的东西。谢谢