一种海量维度数据关联查询优化方法及系统技术方案

技术编号:29584187 阅读:13 留言:0更新日期:2021-08-06 19:42
本发明专利技术提供了一种海量维度数据关联查询优化方法及系统,包括数据写入步骤:将维度表数据写入到不同的分片表中;任务对应步骤:启动多个任务,每个任务对应一个或者多个分片表;数据查询步骤:多个任务分别查询对应的分片表的数据;数据合并步骤:将多个任务查询到的数据结果进行合并;数据输出步骤:输出合并的数据。本发明专利技术优化了海量维度数据关联查询的性能。通过预过滤维度表字段,加速基于维度表字段的过滤的关联。分任务处理关联查询,每个任务只处理自己所需部分的数据。预过滤分片减少后续步骤处理的数据量。事实表支持多个维度表的关联,事实表可在保证全表扫描的性能的情况下,进行快速的维度关联。能很好的处理以星形模型组织的数据。

【技术实现步骤摘要】
一种海量维度数据关联查询优化方法及系统
本专利技术涉及数据处理领域,具体地,涉及一种海量维度数据关联查询优化方法及系统。
技术介绍
在一些联机分析处理(OLAP)中,基于大宽表的存储方案有时不能满足需求,比如需要更新维度信息时,更新所有的数据的代价太过昂贵。又或者冗余数据过多导致数据写入性能达不到要求,或者磁盘占用较多。在一些场景中我们仍然不可避免的需要使用关联查询。在现有的OLAP系统中已经提供了一些优化方案,比如基于内存的字典表等。但还是无法很好的应对海量数据的关联场景。专利文献为CN110704698A的专利技术专利公开了一种非结构化海量网络安全数据的关联及查询方法,包括如下步骤:建立二级索引并基于二级索引进行海量网络安全数据快速查询,完成网络安全数据的初次关联;基于网络安全数据可信度值进行迭代计算,实现所述网络安全数据的关联;对实现了关联的所述网络安全数据进行有效性判定;用户通过数据查询接口提交数据查询任务,查询已经建立的所述二级索引数据,获取所述数据关联任务对应的数据主键值,通过该数据主键值查询所述网络安全数据库的关联数据表,获取对应的网络安全数据及其关联数据。本专利技术明显提高了对于海量互联网用户信息,或者与海量互联网用户信息数据关联的效率,保证了网络安全数据关联结果的有效性、准确性。上述方案使用主键关联,所有数据都是对应的单一实体,二级索引指的是特征值到主键,目的是实现关联的功能。是单一的关联查询任务。无法减少关联任务的数据量。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种海量维度数据关联查询优化方法及系统。根据本专利技术提供的一种海量维度数据关联查询优化方法,包括如下步骤:数据写入步骤:将维度表数据写入到不同的分片表中;任务对应步骤:启动多个任务,每个任务对应一个或者多个分片表;数据查询步骤:多个任务分别查询对应的分片表的数据;数据合并步骤:将多个任务查询到的数据结果进行合并;数据输出步骤:输出合并的数据。优选地,还包括事实表数据查询步骤:调用数存储的据库对事实表的数据进行查询。优选地,还包括关联过滤步骤:基于每个任务对应的分片表过滤出事实表的信息进行关联,事实表创建关联字段的索引,并根据任务的分片信息,进行数据过滤。优选地,还包括预过滤步骤:对不同的分片表进行预过滤,再将任务对应过滤后的分片表。优选地,每个任务对应的分片表的数量由并行参数决定。根据本专利技术提供的一种海量维度数据关联查询优化系统,包括如下模块:数据写入模块:将维度表数据写入到不同的分片表中;任务对应模块:启动多个任务,每个任务对应一个或者多个分片表;数据查询模块:多个任务分别查询对应的分片表的数据;数据合并模块:将多个任务查询到的数据结果进行合并;数据输出模块:输出合并的数据。优选地,还包括事实表数据查询模块:调用数存储的据库对事实表的数据进行查询。优选地,还包括关联过滤模块:基于每个任务对应的分片表过滤出事实表的信息进行关联,事实表创建关联字段的索引,并根据任务的分片信息,进行数据过滤。优选地,还包括预过滤模块:对不同的分片表进行预过滤,再将任务对应过滤后的分片表。优选地,每个任务对应的分片表的数量由并行参数决定。与现有技术相比,本专利技术具有如下的有益效果:1、本专利技术优化了海量维度数据关联查询的性能。2、本专利技术通过预过滤维度表字段,加速基于维度表字段的过滤的关联。3、本专利技术分任务处理关联查询,每个任务只处理自己所需部分的数据。4、本专利技术预过滤分片,减少后续步骤处理的数据量。5、本专利技术事实表支持多个维度表的关联,事实表可在保证全表扫描的性能的情况下,进行快速的维度关联。6、本专利技术能够很好的处理以星形模型组织的数据。7、本专利技术在保证数据保证更新能力的情况下,能够对于海量数据的维度关联查询和统计提供很好的性能。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为海量维度数据关联查询优化方法的数据写入示意图。图2为海量维度数据关联查询优化方法的关联查询示意图。图3为海量维度数据关联查询优化方法的预过滤关联查询示意图。具体实施方式下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。如图1至图3所示,根据本专利技术提供的一种海量维度数据关联查询优化方法及系统,主要优化维度表的关联查询,通过分片和索引进行关联,减少每个关联任务处理的数据量。根据上述思路,本专利技术有一个限制:对于两个表之间,仅支持单个字段的哈希关联。由于星形模型的维度表的关联基本都是根据单个字段的id,所有本方法在该场景下是普遍适用的。本专利技术包括以下步骤:步骤1:数据写入数据写入由一个写入代理程序负责,该程序维护了所有的分片表信息,不同分片的维度信息会保留在元数据中。当维度表数据插入或修改时,该程序会直接修改该数据所在的分片表,进行数据的插入或者查询。当进行批量插入时,数据会先进行分组,后再批量插入不同的分片表中。对于未分片的主表,代理程序会直接调用数据库的插入和更新指令。步骤2:数据查询数据查询可简单分为以下五种情况:1)主表的数据查询2)维度表的数据查询3)主表关联维度表的数据查询4)主表关联维度表并过滤维度数据的查询5)查询结果和维度表关联查询6)以上四种的组合步骤2.1:主表的数据查询查询主表数据时,由于主表未进行分片存储,查询会直接调用存储的数据库进行查询。步骤2.2:维度表的数据查询维度表按照主键进行分片,所以对于维度表的查询语句会应用在不同的分片上,可以由一个分片一个任务,或多个分片一个任务(具体数量由并行度参数决定)。不同的任务并行处理,最后进行数据合并。该查询支持基于维度的过滤,以及基于主键分组的数据统计。由于维度表一般存储维度数据,我们暂不考虑在维度表存储指标数据的统计行为。步骤2.3:主表关联维度表的数据查询如图2所示,为该步骤的示意图。当进行维度字段的关联查询时,程序会启动多个任务进行数据关联操作,每个任务可对应到一个或多个维度表的数据分片(具体数量由并行度参数决定),然后根据数据分片过滤出事实表的信息进行关联。事实表会创建关联字段的索引,并根据任务的分片信息,进行数据过滤。所以每个任务都能过滤掉大部分该任务本身不需要处理的数据,该方法在分布式场景中能显著减少网联传输的数据量,以及每个关联任务所处理的数据量。步骤2.4:主表关联维度表并过滤维度数据的查询当对数据进行维度过滤时,会优先本文档来自技高网...

【技术保护点】
1.一种海量维度数据关联查询优化方法,其特征在于,包括如下步骤:/n数据写入步骤:将维度表数据写入到不同的分片表中;/n任务对应步骤:启动多个任务,每个任务对应一个或者多个分片表;/n数据查询步骤:多个任务分别查询对应的分片表的数据;/n数据合并步骤:将多个任务查询到的数据结果进行合并;/n数据输出步骤:输出合并的数据。/n

【技术特征摘要】
1.一种海量维度数据关联查询优化方法,其特征在于,包括如下步骤:
数据写入步骤:将维度表数据写入到不同的分片表中;
任务对应步骤:启动多个任务,每个任务对应一个或者多个分片表;
数据查询步骤:多个任务分别查询对应的分片表的数据;
数据合并步骤:将多个任务查询到的数据结果进行合并;
数据输出步骤:输出合并的数据。


2.根据权利要求1所述的海量维度数据关联查询优化方法,其特征在于,还包括事实表数据查询步骤:调用数存储的据库对事实表的数据进行查询。


3.根据权利要求1所述的海量维度数据关联查询优化方法,其特征在于,还包括关联过滤步骤:基于每个任务对应的分片表过滤出事实表的信息进行关联,事实表创建关联字段的索引,并根据任务的分片信息,进行数据过滤。


4.根据权利要求1所述的海量维度数据关联查询优化方法,其特征在于,还包括预过滤步骤:对不同的分片表进行预过滤,再将任务对应过滤后的分片表。


5.根据权利要求1所述的海量维度数据关联查询优化方法,其特征在于,每个任务对应的分片表的数量由并行参数决定。

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

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

1