MSR架构
MSR架构,实现语义层、模型层、运行层的彻底解耦,
模型层封装常用的业务对象视图,为前端语义化、自助化提供基础。
语义层基于业务对象视图面向业务端用户提供语义化的业务逻辑表达式,支持业务端用户自助开发业务逻辑,
业务端的开发者只关注于业务逻辑本身,不需要考虑后台是何种数据计算处理框架(MR、SPARK、FLINK、SQL…),也不需要考虑后台是批处理还是流处理。运行框架层提供面向各种主流运行框架的程序编译适配以及性能优化策略。
MSR架构与传统的SQL开发模式的简单对比如下图所示,数据组织逻辑映射到新架构的对象层(M),每个字段的业务逻辑部分映射到语义层(S),语义化的业务逻辑根据项目需要翻译转换为各种运行框架的可执行程序。
当然简单的将单个sql翻译成为对象化处理不是最佳的实践,MSR架构建议为每一个目标数据项的逻辑提供端到端的开发,屏蔽数据的关联组织过程复杂性。
语义层(S)
语义层基于业务对象视图面向业务端用户提供语义化的业务逻辑表达式,支持业务端用户自助开发业务逻辑.
业务端的开发者只关注于业务逻辑本身,不需要考虑后台是何种数据计算处理框架(MR、SPARK、FLINK、SQL…),也不需要考虑后台是批处理还是流处理。
具备一定基础的业务端人员可以全面自助的进行业务逻辑开发。
语义化的业务逻辑表达,也基本可以保证没有基础的业务人员可以理解语义化的业务逻辑,判断业务逻辑实现与自身真实需求之间是否存在传递损耗和偏差,在iT人员的支持下实现快速的、交互式的开发,实现快速试错、快速验证、交互式创新。
对象层(M)
模型层(M)封装常用的业务对象视图,为前端语义化、自助化提供基础。
运行框架层(R)
运行框架层提供面向各种主流运行框架的程序编译适配以及性能优化策略。
MSR架构核心特性:原子化开发支持
基于MSR架构为前台用户提供原子化特性支持,即目标表的字段逻辑原子化独立开发、独立测试,指标字段加工逻辑开发互不影响。后台作业运行根据表达式来源的对象进行智能合并,避免每个单独的表达式成为一个单独的作业,造成对数据表的反复扫描读取带来的性能问题。
原子化特性从根本上解决了数据开发领域的横向耦合问题,为业务逻辑的语义化、透明化、自助化、共享协作、奠定来了技术基础。
语义化:横向解耦,每个独立的指标的逻辑其实都大幅简化,指标之间互不干扰,也不关注数据如何关联、如何优化,足够简单所以容易实现语义化。传统模式下的复杂性是由于碎片化耦合导致的。
透明化:每个指标被端到端的、语义化的表达,黑盒被彻底解开,透明是自然而然的结果,不依赖于解析,也不依赖于人为的维护。
可信性:透明的、所见即所得的业务逻辑,业务需求和技术开发完全重合,需求与开发之间的一致性得到完全保证,传统开发模式中,业务方需求与开发实现之间的信息传统损耗和偏差问题在MSR架构中得到彻底解决。每一个目标数据项的数据来源和加工逻辑都可以得到透明的、可信的追溯,数据的可信性也得到充分保证。
共享协作:原子化的数据资产在平台持续积累,每一个消费方的新数据需求首先在平台中查找有没有类似的数据项,每一个数据项的业务逻辑都提供了透明的、可信的业务逻辑追溯,消费方可以准确的判断是否可以直接使用已有的数据项,从而实现了跨项目、跨系统的共享协作,避免了传统开发模式中的烟囱化开发问题。
正如实体工业的零部件标准化、流水线生产奠定了社会化分工协作,从而推动了实体工业革命进程一样,数据产业的原子化、组件化奠定了数据处理行业的共享协作、透明可信、可持续发展的基础。
数据资产管理粒度到原子字段级,每个字段/指标/维度的处理逻辑原子化开发、测试、数据初始化、上线,相关处理逻辑发生变化时,可以原子化的修改、测试、数据初始化、上线,避免传统过程性脚本处理带来的业务逻辑碎片化问题、黑盒问题、需求变化影响扩散问题。
MSR架构核心特性:开发模式升级
MSR架构推动开发模式从传统模式进化至数据工业4.0,全面自助,按需定制,面对面交互式开发创创新,支持快速试错,千人千面,数据自由。