应用迁移面对的是什么状况?
如果,应用没有很好的进行组织,最有可能出现的状况,很不幸我所面对恰恰是以下这些状况:
- 相同粒度的不同指标会出现在多个场合
- 相同的指标被多次计算
- 略有不同的指标分开计算的,导致无法直接体现差异
- 不同粒度的报表以网状甚至环状的形式被引用
- 数量庞大的应用,人力难以覆盖
分而治之
那么,以何标准确定应用的边界进行切分,这样确定的边界是否能收敛到有限的输入和输出
从输出来看
- 应用使用方是否有注册和权限管控?
- 向外输出的应用覆盖到哪些粒度?
- 应用的价值和生命周期是否确定?
- 应用的字段级别的调用情况如何?
回答了这些问题,就可以确定该应用域在整个迁移过程中的工作量和优先级
从输入来看
-
按分层来说,迁移最深只追溯到dwd层和dim层
-
当追溯到最细粒度的事务事实表时,能否明确使用到的维度和度量?
大搜车的情况,需要解决过度冗余和一致性维度的问题
-
针对同一业务过程,能否明确使用到的所有粒度?
需要和输出端对齐
-
能否罗列所有使用到的事实表对应的业务过程?
回答了这些问题,就可以确定模型层的范围,如果涉及模型层重构和迁移,也确定了工作量和优先级
大搜车实战
GPS迁移经历,花了2周希望能按照上述思路去梳理,但是发现两端都难以明确,尤其是物理模型中的字段新增和删除甚至逻辑调整导致对应用的影响无法评估,所以只能先迁移了再说