数据系统架构-9.统一查询服务one-service

统一查询服务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.任务调度系统》
下一篇 《数据系统架构-10.数仓开发平台》

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: nginx-service.rar文件是一个压缩文件,其中包含了用于安装nginx服务器的Windows系统服务文件。在Windows系统中,服务是一种带有控制逻辑的程序,可以在后台运行,且在系统启动时自动启动。因此,将nginx作为Windows系统服务安装可以使其在系统启动时自动启动,更加方便管理和使用。 解压nginx-service.rar文件后,可以得到一个名为nginx-service.exe的文件。使用管理员权限打开命令提示符窗口,运行该文件并输入相关参数即可安装nginx服务,具体命令为:"nginx-service.exe install"。安装完成后,可以使用Windows服务管理器对nginx服务进行启动、停止、暂停等操作。 需要注意的是,在安装nginx服务之前,需要先在Windows系统中安装好必要的依赖库,例如Microsoft Visual C++ 2010可再发行组件包和Visual C++ Redistributable for Visual Studio等。此外,为了使nginx服务在启动时能够找到其配置文件等必要的资源,需要在安装前将这些文件放置在指定的目录中,并在安装命令中指定相关路径参数。 总之,nginx-service.rar文件提供了一种将nginx服务器作为Windows系统服务安装的便捷方式,适用于需要在Windows系统上运行nginx的用户。 ### 回答2: nginx-service.rar是一个压缩包文件,其中包含一个基于Nginx的服务程序。 Nginx是一款高性能的Web服务器和反向代理服务器,可用于提供站点、负载均衡和缓存等服务。nginx-service.rar包含了一个自定义的Nginx服务程序,该服务程序能够实现一系列高性能的功能,如支持SSL协议、支持动态模块加载、支持TCP流转发、支持负载均衡和反向代理、支持缓存等。 此外,nginx-service.rar还包含了一些配置文件和对应的脚本,方便用户进行自定义配置和启动停止服务操作。用户只需解压该文件包并按照说明进行初始化和配置即可使用该Nginx服务程序。 总之,nginx-service.rar是一个提供高性能Web服务器和反向代理服务的压缩包文件,适用于需要构建高性能服务架构的使用者。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值