数据部门产出的海量数据,如何能方便高效地开放出去,是我们一直要解决的难题。
一、服务架构演进
- DWSOA:由数据驱动,一个需求开发一个或几个接口,编写接口文档,开发给业务方调用。
- OpenAPI:将数据按照其统计粒度进行聚合,同样维度的数据,形成一张逻辑表(宽表),采用同样的接口描述。
- SmartDQ:在OpenAPI基础上,再抽象一层,用DSL(Domain Specific Language,领域专用语言)来描述取数需求。简单查询减少到只有一个接口。
- OneService:SmartDQ只满足的简单的查询服务需求,OneService提供多种服务类型来满足用户需求。如下:
- OneService-SmartDQ
- OneService-Lego:采用插件化方式开发服务,一类需求开发一个插件。
- OneService-iPush:实时数据服务,提供WebSocket和long polling两种方式,其应用场景主要是商家端实时直播。
- OneService-uTiming:主要提供即时任务和定时任务两种模式,满足用户运行大数据量任务的需求。
二、技术架构
1.SmartDQ
(1)元数据模型
数据源——物理表——逻辑表——主题
(2)架构图
- 查询数据库:实时公共层的计算作业直接将结果写入HBase;通过同步作业将公共层的离线数据同步到对应的查询库。
- 服务层
- 元数据配置
- 主处理模块:对用户的查询DSL进行语法解析,构建完整的查询树。
- DSL解析
- 逻辑Query构建
- 物理Query构建
- Query拆分
- SQL执行
- 结果合并
- 其他模块
2.iPush
看不懂
3.Lego
看不懂