一种海量标签存储系统及方法技术方案

技术编号:29093782 阅读:18 留言:0更新日期:2021-06-30 10:02
本发明专利技术提供了一种海量标签存储系统及方法,包括以下模块:接口模块:使用类SQL语法操作系统,用于元数据管理,数据修改及查询;数据写入模块:用于写入列数据,重复时会忽略该列数据;数据更新模块:用于更新列数据,不存在时会忽略该列数据;数据删除模块:用于数据删除;数据查询模块:用于查询和统计数据;底层数据结构模块:用于持久化保存数据。本系统按需获取列信息,并提供基于列的更新和删除逻辑,实现存储海量标签;使用列式存储和向量化执行,以及基于行的少量更新和基于列的批量更新策略,实现标签的更新和快速查询。实现标签的更新和快速查询。实现标签的更新和快速查询。

【技术实现步骤摘要】
一种海量标签存储系统及方法


[0001]本专利技术涉及海量数据处理领域,具体地,涉及一种海量标签存储系统及方法。

技术介绍

[0002]联机分析处理(OLAP)是计算机技术中快速解决多维分析问题的一种主要方法,在销售业务报告、市场营销、业务流程管理、预算和预测、财务报表以及类似领域有着广泛的商业应用。近年来随着人工智能的兴起,OLAP更是在大数据和数据挖掘等方面有着更多的实践和应用,是当前举足轻重的技术手段。
[0003]在公告号为CN107092529B的中国专利技术专利文件中,提供了一种OLAP服务系统,一种OLAP服务代理方法、装置及电子设备,以及一种OLAP服务方法、装置及电子设备,涉及联机分析处理
其中,所述OLAP服务系统包括OLAP服务代理装置和多个OLAP服务装置,当OLAP服务的客户端提交查询请求后,通过OLAP服务代理装置接收该请求,并从多个OLAP服务装置中选取一个OLAP服务装置,作为处理该请求的OLAP服务装置,然后将该请求转发至被选取的OLAP服务装置。该专利技术实施例提供的技术方案,可以有效提高OLAP服务的查询性能及可靠性,从而达到提高OLAP服务可用性的效果。
[0004]现有OLAP系统一般通过大宽表的方式,减少关联的性能消耗,同时使用列式存储来优化查询性能。但是这种方式往往很难进行数据的更新操作,列式存储的关联问题也没有很好的解决方案。为了解决更新问题一些系统尝试使用两种不同的存储来处理更新和查询,这提升了架构的复杂性,并且降低了实时性。尽管有一些尝试解决数据更新问题的系统,比如Kudu的出现,但是这些问题仍然存在。
[0005]另外,数据关联查询是列式存储的另一个显著问题,该问题一般通过定义宽表来解决,但是当面对多表关联时(比如不同维度数据)通常会集中进行数据关联,效率低下,分布式场景下该问题更加明显。当列的数量达到一定规模后,对于数据的查询和写入也会造成一些麻烦(有些系统在查询时会获取所有表结构,写入时也无法实现不同列分别更新)。

技术实现思路

[0006]针对现有技术中的缺陷,本专利技术的目的是提供一种海量标签存储系统及方法。
[0007]根据本专利技术提供的一种海量标签存储系统,包括以下模块:
[0008]接口模块:使用类SQL语法操作系统,用于元数据管理,数据修改及查询;
[0009]数据写入模块:用于写入列数据,重复时会忽略该列数据;
[0010]数据更新模块:用于更新列数据,不存在时会忽略该列数据;
[0011]数据删除模块:用于数据删除;
[0012]数据查询模块:用于查询和统计数据;
[0013]底层数据结构模块:用于持久化保存数据。
[0014]优选的,所述接口模块包括以下子模块:
[0015]数据定义语法模块:用于定义数据的结构;包括CREATE、DROP、ALTER三个操作;
[0016]数据写入语法模块:用于写入和更新列数据;包括INSERT、UPDATE两个操作;
[0017]数据查询语法模块:用于查询和统计数据;包括SELECT操作。
[0018]优选的,所述数据写入模块具体步骤如下:
[0019]步骤s301:数据写入内存中以列式的方式排列,同时写入WAL日志文件;
[0020]步骤s302:定时定量刷新到磁盘,数据写入时会计算分区ID,若分区ID内数据数目未达到阈值,则将分区合并写入一个文件中,减少小的碎片文件的产生,数据写入后标记WAL日志;
[0021]步骤s303:后台运行异步的分区合并程序,会对ID相同的分区数据进行合并,然后写入新的分区文件,删除旧的分区文件,对于写入时多个分区在一个文件中的情况,则会标记该分区为删除状态,当该文件的所有分区都为删除状态时,删除该文件。
[0022]优选的,所述数据更新模块具体操作如下:
[0023]步骤s401:数据更新时先写入内存,同时写入WAL日志文件;
[0024]步骤s402:定时定量刷新到磁盘,数据写入时会计算分区ID;更新操作会判断如果分区ID内数据数目未达到阈值,则将分区合并写入一个文件中,减少小的碎片文件的产生,数据写入后标记WAL日志;
[0025]步骤s403:后台运行异步的分区合并程序,会对ID相同的分区数据进行合并,然后写入新的分区文件,删除旧的分区文件,对于写入时多个分区在一个文件中的情况,则会标记该分区为删除状态,当该文件的所有分区都为删除状态时,删除该文件;
[0026]步骤s404:采用与数据写入相似的方法进行数据更新。
[0027]优选的,所述数据删除模块具体实现如下:
[0028]步骤s501:数据删除和更新的流程一致;
[0029]步骤s502:当需要删除操作实时生效时,执行操作包括直接删除分区和直接删除列数据。
[0030]优选的,所述数据查询模块具体步骤如下:
[0031]步骤s601:数据查询过程;
[0032]步骤s602:数据关联操作;
[0033]步骤s603:查询未合并数据。
[0034]优选的,所述底层数据结构模块具体实现如下:
[0035]步骤s701:配置select*时返回的字段,支持该场景不返回所有字段;其他字段的查询能够在语句中显示应用;
[0036]步骤s702:列状态;
[0037]步骤s703:表结构更新。
[0038]优选的,所述步骤s601包括:
[0039]步骤s6011:解析查询语句后构造出执行计划,通过代价优化器以及启发式优化器优化后执行;
[0040]步骤s6012:部分过滤操作会由启发式优化器下推到数据读取操作中进行;
[0041]步骤s6013:数据读取对数据进行分片,粒度是行组级别,由分片策略确定,默认会把连续的行组分配到一个分片中;
[0042]步骤s6014:内存中的数据如果还未刷新到磁盘,则作为单独的一个分片读取,可
使用参数设置是否在查询时使用这部分数据;
[0043]步骤s6015:每个操作都有分片信息,不同分片会并行执行,操作优先使用调用SIMD指令集向量化执行;
[0044]步骤s6016:不同操作都有分片策略,大多数操作不主动重新分片,对于一些操作,比如排序或关联,会按照该操作的分片策略重新对数据分片。
[0045]优选的,所述步骤s602包括以下步骤:
[0046]步骤s6021:先对需要关联的数据列创建索引,该索引记录每个分片内的每个行组的最大值和最小值;
[0047]步骤s6022:当对两个表进行关联操作时,关联键信息会在执行计划阶段通知到关联的内部操作中;
[0048]步骤s6023:数据读取操作会根据以上信息,调整分片逻辑,尽量保证连续的关联键在一个分片中;
[0049]步骤s6024:关联操作的分片策略根据这些信息,调整每个分片操作的输入数据;...

【技术保护点】

【技术特征摘要】
1.一种海量标签存储系统,其特征在于,包括以下模块:接口模块:使用类SQL语法操作系统,用于元数据管理,数据修改及查询;数据写入模块:用于写入列数据,重复时会忽略该列数据;数据更新模块:用于更新列数据,不存在时会忽略该列数据;数据删除模块:用于数据删除;数据查询模块:用于查询和统计数据;底层数据结构模块:用于持久化保存数据。2.根据权利要求1所述的一种海量标签存储系统,其特征在于:所述接口模块包括以下子模块:数据定义语法模块:用于定义数据的结构;包括CREATE、DROP、ALTER三个操作;数据写入语法模块:用于写入和更新列数据;包括INSERT、UPDATE两个操作;数据查询语法模块:用于查询和统计数据;包括SELECT操作。3.根据权利要求1所述的一种海量标签存储系统,其特征在于:所述数据写入模块具体步骤如下:步骤s301:数据写入内存中以列式的方式排列,同时写入WAL日志文件;步骤s302:定时定量刷新到磁盘,数据写入时会计算分区ID,若分区ID内数据数目未达到阈值,则将分区合并写入一个文件中,减少小的碎片文件的产生,数据写入后标记WAL日志;步骤s303:后台运行异步的分区合并程序,会对ID相同的分区数据进行合并,然后写入新的分区文件,删除旧的分区文件,对于写入时多个分区在一个文件中的情况,则会标记该分区为删除状态,当该文件的所有分区都为删除状态时,删除该文件。4.根据权利要求1所述的一种海量标签存储系统,其特征在于:所述数据更新模块具体操作如下:步骤s401:数据更新时先写入内存,同时写入WAL日志文件;步骤s402:定时定量刷新到磁盘,数据写入时会计算分区ID;更新操作会判断如果分区ID内数据数目未达到阈值,则将分区合并写入一个文件中,减少小的碎片文件的产生,数据写入后标记WAL日志;步骤s403:后台运行异步的分区合并程序,会对ID相同的分区数据进行合并,然后写入新的分区文件,删除旧的分区文件,对于写入时多个分区在一个文件中的情况,则会标记该分区为删除状态,当该文件的所有分区都为删除状态时,删除该文件;步骤s404:采用与数据写入相似的方法进行数据更新。5.根据权利要求1所述的一种海量标签存储系统,其特征在于:所述数据删除模块具体实现如下:步骤s501:数据删除和更新的流程一致;步骤s502:当需要删除操作实时生效时,执行操作包括直接删除分区和直接删除列数据。6.根据权利要求1所述的一种海量标签存储系统,其...

【专利技术属性】
技术研发人员:朱晓峰蔡晓华
申请(专利权)人:上海天旦网络科技发展有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1