乐趣区

关于大数据:数据系统架构9统一查询服务oneservice

对立查问服务 one-service

1. 背景

在日常的数据开发过程中,咱们会把数据后果存储在各类数据库中或者导入到 OLAP 查问引擎中供下层利用应用。对于不同的数据库和 OLAP 引擎下层利用都要自行构建查问服务解决各自的数据逻辑,存在大量反复的开发工作,因而为了晋升数据应用效率、缩小重复性开发工作、升高开发成本,咱们在各类存储引擎的根底上须要开发一套对立的数据查问服务。

2. 零碎指标

指标:打造反对各类数据存储的数据查问服务,提供对立、稳固、便捷、平安、可扩大的数据查问进口。

3. 整体架构

  1. 根底数据平台:依据根底数据平台保护的各类表与指标的元信息,通过配置生成不同业务的数据集;
  2. 治理后盾:包含数据源治理、数据集治理、数据权限治理。数据集治理是把不同的数据源的数据抽象成一个数据汇合,依据存储引擎的不同采纳对应的组合与配置形式,比方反对 sql 的存储引擎,能够通过 sql 来生成对应不同业务的各类数据集;
  3. 权限治理中台:通过话权限治理平台,用来对用的数据集权限进行治理,查问平台权限治理粒度为数据集;
  4. 查问服务:包含查问接口服务、后盾治理服务、存储引擎查询器,以及其余辅助性能。针对不同的存储引擎会有与之对应点查询器进行数据查问反对。

4. 查问引擎设计

通过继承查询器抽象类的形式实现各类存储引擎的查询器,能够不便的对查询器进行治理、扩大与性能开发。同时针对不同的查问引擎能够做定制化的查问管制与优化。查询器抽象类形象办法大抵如下:

  • getSchemas 获取库信息
  • getTables 获取表信息
  • getSetData 查问数据集数据
  • queryDimVals 查问维度信息
  • queryAggData 查问聚合数据

对立查问参数:下层利用通过数据集元信息,生成 json 格局的查问参数,包含维度、过滤、聚合、指标查问信息。后端收到对应数据集与查问信息组装对应查问逻辑,而后调用查问接口对数据进行查问与后果返回。

5. 数据安全

对于数据安全方面,临时只管制到数据集粒度。通过两种形式来辨别,一个种是能失常登陆认证的零碎或用户,通过一般角色来治理;另一种没有用户认证的状况,采纳受权码的形式来管制用户数据集的拜访权限。

6. 智能查问

各种数据库或者 OLAP 引擎都有着各自实用的场景,目前针对大数据并没有一个完满引擎,因而在这套查问体系里为了最大化用户体验,晋升查问效率,设计依据数据集优先级,以及查问条件主动抉择最适宜的查问引擎来进行数据查问与加载。

  1. 底层宽表:比方咱们在 hive 当中有订单主题的宽表,咱们会依照业务剖析场景,把宽表拆成最罕用剖析维度数据集,较罕用维度数据集,全量数据集等数据集;
  2. 数据子集:依据宽表与剖析场景的状况,咱们会配置定义出各类数据分析子集,剖析场景下的全量数据集会存储在 clickhouse 当中进行最初命中查问,不同维度的子集与存储引擎能够多对一进行任意优先配置与组合;
  3. 优先级:依据剖析场景与数据量级大小,把最罕用的数据集依照引擎个性别离存储在不同的数据库或者 OLAP 引擎当中,依据查问性能、数据量级的不同惯例优先级 MySQL(高)<- kylin(中) <- clickhouse(低);
  4. 引擎选择器:当咱们查问某一个数据集的时候,会去判断该数据集所属数据集组,在改选下有各种维度不同存储引擎下的数据集,再依据查问条件依照配置好的优先级程序,进行匹配查问。谋求最好的查问效率。

7. 总结

至此通过该零碎基本上解决了数据查问服务对立的问题,在对立的指标治理、数据集治理的体系下,保障了数据进口逻辑的一致性。并且该零碎能够反对横向扩大来适应更多的查问申请。实现反对各类数据存储的数据查问服务,提供对立、稳固、便捷、平安、可扩大的数据查问进口的零碎工作。

上一篇《数据系统架构 -8. 任务调度零碎》

退出移动版