通过血缘服务内部的解析后,批量地将血缘数据拆分成了Node与Edge存储到了NebulaGraph中,前台服务进行查询即可获得如下图所示的一条完整血缘:
基于围绕Doris的系统架构调整,我们完成了数据中台2.0架构
- 使用网易易数数据运河替换Canal,拥有了更完善的数据订阅监控
- Flink 计算层引入 Redis/Tidb 来做临时/持久化缓存
- 复杂业务逻辑拆分至 Grpc 服务,减轻 Flink 中的业务逻辑
- 数据适配层新增 Restful 服务,实现一些 case by case 的复杂指标获取需求
- 通过网易易数离线调度跑通了实时到离线的数据同步
- 新增了数据报表/自助分析系统两个数据出口
4 Doris带来的收益
1. 数据导入方式简单,我们针对不同业务场景使用了三种导入方式
- Routine Load:实时异步数据导入
- Broker Load:定时同步离线数仓数据,用于查询加速
- Insert into:定时通过DWD层数仓表生成DWS/ADS层数仓表
2. 数据占用空间降低,由原来Es中的1T左右降低到了200G左右3. 数仓使用成本降低
- Doris支持MySQL协议,数据分析师可以直接进行自助取数,一些临时分析需求不需要再将Elasticsearch数据同步到Hive供分析师进行查询。
- 一些在ES中的明细表我们通过Doris外表的方式暴露查询,大大降低了业务方的查询成本。
- 同时因为Doris支持Join,原来一些需要查询多个Index再从内存中计算的逻辑可以直接下推到Doris中,提升了查询服务的稳定性,加快了响应时间。
- 聚合计算速度通过物化视图和列存优势获得了较大提升。
5 上线表现
目前已经上线了几十个实时数据报表,在线集群的P99稳定在1s左右。同时也上线了一些长耗时分析型查询,离线集群的P99稳定在1min左右。