SSIS ETL - 让目标数据库直接从源中提取数据是一种好习惯吗
SSIS ETL - Is it a good practice to have the destination DB pull data from sources directly
我有一个 ETL 包,可以将数据从多个源 SQL 服务器数据库移动到单个目标 SQL 服务器数据库。所有这些数据库都在同一台服务器上。目标数据库包含大量引用源数据库的视图。例如。 SELECT * FROM SourceDB1.dbo.Transactions
.
因此大部分数据直接进入 source DB => destination DB
,而不通过 SSIS 服务器。我是 SSIS 的新手,想知道这是否是一件好事,或者我是否应该考虑更改流程。
当我开始使用 SSIS 学习 ETL 和数据迁移时,我总是被告知最好先将数据移动到暂存数据库中,您可以在其中验证数据、删除重复数据、清理等,然后再移动它到目标数据库
时间流逝,您的公司在成长。你站起来 Server2 并在那里有 SourceDBN。怎么办?您的 SELECT * FROM SourceDB.dbo.Transactions
模式中断了。
SourceDB27,该客户向我们支付了 很多 的钱,因此他们要求我们将列 FooBitsWhatsIt
添加到他们的交易 table 中。现在您的 SELECT *
中断了,因为您的生态系统中的列不一致。
有人编写了一个需要一段时间才能处理的大型查询 - 目标数据库中的人员正在对源数据库执行常规 activity 的能力产生负面影响。如果数据被复制到目的地而不仅仅是被引用,那么源活动和目的地活动之间就会存在隔离。
一般而言,上述成本和风险大于额外的开发、存储和处理成本。
我有一个 ETL 包,可以将数据从多个源 SQL 服务器数据库移动到单个目标 SQL 服务器数据库。所有这些数据库都在同一台服务器上。目标数据库包含大量引用源数据库的视图。例如。 SELECT * FROM SourceDB1.dbo.Transactions
.
因此大部分数据直接进入 source DB => destination DB
,而不通过 SSIS 服务器。我是 SSIS 的新手,想知道这是否是一件好事,或者我是否应该考虑更改流程。
当我开始使用 SSIS 学习 ETL 和数据迁移时,我总是被告知最好先将数据移动到暂存数据库中,您可以在其中验证数据、删除重复数据、清理等,然后再移动它到目标数据库
时间流逝,您的公司在成长。你站起来 Server2 并在那里有 SourceDBN。怎么办?您的 SELECT * FROM SourceDB.dbo.Transactions
模式中断了。
SourceDB27,该客户向我们支付了 很多 的钱,因此他们要求我们将列 FooBitsWhatsIt
添加到他们的交易 table 中。现在您的 SELECT *
中断了,因为您的生态系统中的列不一致。
有人编写了一个需要一段时间才能处理的大型查询 - 目标数据库中的人员正在对源数据库执行常规 activity 的能力产生负面影响。如果数据被复制到目的地而不仅仅是被引用,那么源活动和目的地活动之间就会存在隔离。
一般而言,上述成本和风险大于额外的开发、存储和处理成本。