问题描述
晚安, 将原点传递到商业智能中的阶段库时的查询加载方法为总 或总计 + 增量,
我正在考虑删除所有数据并重新加载它,但如果它是一个非常大的数据库并且许多记录将不是最佳选择。良好做法有何建议?
我会感谢您的意见,
非常感谢,
解决方法
我正在考虑删除所有数据并重新加载它,但如果是 一个非常大的数据库和许多记录不会是最佳的。做什么 好的做法建议?
这取决于。
许多公司更喜欢Delete-Truncate 模式,因为它易于实施,而且只有在验证某些条件(硬件、DBA..)时,数据量才不是问题。 >
增量加载(或 Up-Sert 模式) 通常用于使两个系统之间的数据保持同步。它们用于将源数据重复加载到目的地的情况,例如每晚或全天。
增量数据加载的好处: 它们通常运行得更快,因为它们接触的数据更少。假设没有瓶颈,移动和转换数据的时间与接触的数据量成正比。如果您接触一半的数据,运行时间通常会以类似的比例减少。
增量数据加载的缺点: 可维护性:在满载情况下,如果出现错误,您可以重新运行整个负载,而无需在清理/准备方面做太多其他工作。对于增量加载,文件通常需要按顺序加载。因此,如果您对一批有问题,其他人会排在后面,直到您纠正为止。
TRUNCATING 和 INSERTING 是两个操作,而 UPDATEing 是一个操作,使得 TRUNCATE 和 INSERT 花费(理论上)更多的时间。
还有易于使用的因素。如果先 TRUNCATE 然后 INSERT,则必须手动跟踪每个列值。如果你更新,你只需要知道你想改变什么。