数据部门产出数据后如何提交给业务部门,传统方式时直接导出,这种方式不仅低效而且有安全隐患,因此数据服务应运而生。基于性能、扩展性、稳定性不断升级服务架构,历经了四个阶段:
1)第一阶段:
① 将数据需求通过SOA(面向服务的架构)服务的方式提供
② 一个需求对应一个接口,开放给需求方调用
缺点:扩展性差,复用率低,维护成本高
2)第二阶段
① 基于需求分析,逻辑大多是从DB取数,封装后暴漏结果
② 对需求按照类别进行聚合,相同维度的数据形成一张逻辑表,共用同一个接口
缺点:随着数据维度增加,接口数量依然巨大
3)第三阶段
① 新抽象一层,用DSL(针对专业领域的计算机语言,如html,shell)描述取数需求,做到简单查询共用一个接口
② 采用标准的sql语法,进行封装形成新的DSL接口;同时封装Datasource,使用ORM框架解决关系映射问题
③ 封装跨异构数据源和分布式查询功能,用户查询逻辑表对底层完全透明。一个查询到达会经过以下步骤:
+ DSL解析:DSL语法解析,构建查询树
+ 逻辑query:便利查询树,通过查找元数据模型,转变为逻辑query
+ 物理query:通过元数据模型中的逻辑表与物理表的映射,将逻辑query转变为物理query
+ query拆分:如涉及多张物理表,将query长分成Subquery
+ sql执行:执行subquery
+ 结果合并
缺点:服务形式不够丰富,只能实现简单查询
4)第四阶段:完善服务形式,提供个性化业务场景服务、实时数据推送服务、定时任务服务
① 个性化业务场景服务:采用插件化开发服务,一类需求一个插件,最后为了避免插件之间相互影响,将插件做成微服务
② 实时数据推送服务:提供websocket、long polling等多种方式
③ 定时任务服务:提供即时任务和定时任务两种模式,用于处理大数据量数据
网友评论