您将如何管理影响分析数据库的事务数据库中的更改?
环境:
- 事务数据库是当前或接近当前版本的 MySQL。事务数据库的大小似乎在几 TB 左右,但数据库的增长每天只有几百兆字节。
- 分析数据库是当前或接近当前版本的蒙德里安
场景:给定一个自动从事务数据库加载数据的分析数据库——当模式更改导致大量数据在数据库事务数据库中重新定位时,这也会导致分析数据库发生更改。我得到的唯一例子是事务数据库的一小部分模式在数据库中发生了变化,据我所知大约有 300 个表;这意味着我猜想事务数据库的 5-10% 的模式通过添加/删除/移动列/表/行以某种方式发生变化,并且在某些情况下,数据的格式会发生全局变化交易数据库。
您将无法自动执行此过程。基础系统的任何发布都需要包括影响分析和对分析系统的更改,这将是一个手动过程。您将必须更新 ETL 过程以从新结构获取数据,并且可能还要修改数据集市。
这将增加发布过程的延迟,而且我已经看到很多情况都忽略了这一点并且分析系统崩溃了。交易系统的企业或所有者必须做以下三件事之一:
将对分析系统和 ETL 过程的影响分析纳入其对操作系统的变更控制。
接受发布有时会破坏分析系统,可能以不明显的方式(无法识别的数据语义更改)。对分析系统的修复可能会或可能不会快速实施。他们可能会做一些需要几天或几周才能修复分析的事情。
构建系统将数据导出到的稳定接口层,并重构数据集市 ETL 以通过该接口进行填充。
选项 1 几乎总是更可取,除非企业不能容忍发布延迟。.com 类型的企业可能就是这种情况,其中快速发布计划很重要。
如果对发布的影响是不可接受的,那么企业必须实施 (3) 或签署他们对 (2) 感到满意的结果,并对因破坏分析系统的更改而导致的任何停机承担责任。
选项 3 将拖延对分析系统的更改,因为它们可能变得依赖于对界面的更改,因此需要发布具有更改的操作系统以填充更新的界面。
如果企业坚持坚持 (1),那么让他们签署一些协议,接受分析计划外停机的责任。如果您没有书面记录表明您已经向他们提出了这个问题,那么您就有可能因为无法控制的事情而承担责任。