【发布时间】:2018-03-22 06:30:11
【问题描述】:
我有一个 ETL 进程,它从事务数据库中获取数据并在处理后将数据存储到另一个数据库中。在存储数据时,我们会截断旧数据并存储新数据以获得更好的性能,因为更新比截断插入需要很多时间。所以在这个过程中,我们会在一段时间内(比如 2 3 分钟)经历计数为 0 或错误数据。我们每 8 小时运行一次 ETL。
那么我们怎样才能避免这个问题呢?我们如何实现零停机?
【问题讨论】:
-
当完全加载比增量加载快时,它必须是一个小型数据库。我猜在更新期间,您从源中获取所有行,而不是从上次增量加载中更改的行。
-
我们其实是在对数据做一些计算,需要完整的数据。我们不能使用增量数据。这会使逻辑复杂很多,并可能导致性能问题。
标签: mysql database pentaho etl data-warehouse