CN113516506B - 一种数据处理方法、装置及电子设备 - Google Patents
一种数据处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113516506B CN113516506B CN202110647840.7A CN202110647840A CN113516506B CN 113516506 B CN113516506 B CN 113516506B CN 202110647840 A CN202110647840 A CN 202110647840A CN 113516506 B CN113516506 B CN 113516506B
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- bucket
- bitmap
- generating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims abstract description 63
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 11
- 101100056293 Rattus norvegicus Akr7a2 gene Proteins 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000001149 cognitive effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Game Theory and Decision Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理方法、装置及电子设备,方法包括获取第一待处理数据集及第二待处理数据集,所述第一待处理数据集包括多个第一待处理数据,所述第二待处理数据集包括多个第二待处理数据;根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶;根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图;对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果,避免了集合计算时存在关联的数据被分配在不同的桶里时会导致集合计算时还需要从其他桶中获取数据导致触发Shuffle的问题。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种数据处理方法、装置及电子设备。
背景技术
人群包投放效果分析是人群包在不同的分析方向(店铺、品牌等)下,基于不同的分析维度(浏览、收藏、加车、购买等行为维度或认知、兴趣、购买、忠诚等模型维度),量化人群包投放效果的过程。此过程可能会持续跟踪多日,且存在频繁的交并差处理。
通常情况下,各企业会使用基于存算分离架构的计算引擎(Spark、Presto、Flink等)执行上述交并差处理过程的离线计算。然而在这样的离线计算过程中,交(INTERSECT)、差(EXCEPT)的JOIN操作和并(UNION)的聚合操作会产生宽依赖触发Shuffle,即分布在不同节点的数据按照一定的规则汇集到一起的过程。而Shuffle会涉及到磁盘IO和网络IO,会极大地影响整个运行效率,浪费计算资源。
因此,亟需一种可消除Shuffle的数据处理方法,以解决现有技术的上述技术问题。
发明内容
为了解决现有技术的不足,本发明的主要目的在于提供一种数据处理方法,以解决现有技术的上述技术问题。
为了达到上述目的,第一方面本发明提供了一种数据处理方法,所述方法包括:
获取第一待处理数据集及第二待处理数据集,所述第一待处理数据集包括多个第一待处理数据,所述第二待处理数据集包括多个第二待处理数据,所述待处理数据包括目标字段及对应的字段值;
根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶;
根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图;
对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果。
在一些实施例中,所述根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶包括:
对所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值进行预处理,根据预设桶数对预处理后的所述对应的字段值进行取模计算生成相应的取模结果;
根据所述取模结果,确定所述第一待处理数据及所述第二待处理数据分别对应的桶的初始桶号。
在一些实施例中,所述对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果包括:
根据预设方法计算得到每一所述初始桶号对应的桶号字段值;
根据所述桶号字段值及对应的第一位图,生成第一数据表并根据所述桶号字段值及对应的第二位图,生成第二数据表;
对所述第一数据表及所述第二数据表进行所述集合运算对应的集合操作,生成目标计算结果。
在一些实施例中,所述对所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值进行预处理,根据预设桶数对预处理后的所述对应的字段值进行取模计算生成相应的取模结果包括:
根据预设哈希算法,生成所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值对应的第一哈希值并根据预设桶数对所述第一哈希值进行取模计算。
在一些实施例中,所述根据预设方法计算得到每一所述初始桶号对应的桶号字段值包括:
根据预设哈希算法,生成预设自然数对应的第二哈希值;
根据所述预设桶数,对所述第二哈希值进行取模计算,生成所述第二哈希值对应的取模结果;
在所述第二哈希值对应的取模结果与所述初始桶号相同时,确定所述第二哈希值对应的预设自然数为所述初始桶号对应的桶号字段值。
在一些实施例中,根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶前,所述方法还包括:
根据所述第一待处理数据集及所述第二待处理数据集包括的待处理数据的数据量,确定对应的预设桶数。
在一些实施例中,所述根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图包括:
根据预设函数,生成所述第一待处理数据对应的第一整数值及所述第二待处理数据对应的第二整数值;
根据所述桶对应的第一整数值生成所述桶对应的第一位图并根据所述桶对应的第二整数值生成所述桶对应的第二位图。
第二方面,本申请提供了一种数据处理装置,所述装置包括:
获取模块,用于获取第一待处理数据集及第二待处理数据集,所述第一待处理数据集包括多个第一待处理数据,所述第二待处理数据集包括多个第二待处理数据,所述待处理数据包括目标字段及对应的字段值;
划分模块,用于根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶;
生成模块,用于根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图;
计算模块,用于对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果。
在一些实施例中,所述划分模块还可用于对所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值进行预处理,根据预设桶数对预处理后的所述对应的字段值进行取模计算生成相应的取模结果;根据所述取模结果,确定所述第一待处理数据及所述第二待处理数据分别对应的桶的初始桶号。
第三方面,本申请提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获取第一待处理数据集及第二待处理数据集,所述第一待处理数据集包括多个第一待处理数据,所述第二待处理数据集包括多个第二待处理数据,所述待处理数据包括目标字段及对应的字段值;
根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶;
根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图;
对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果
本发明实现的有益效果为:
本申请提供了一种数据处理方法,包括获取第一待处理数据集及第二待处理数据集,所述第一待处理数据集包括多个第一待处理数据,所述第二待处理数据集包括多个第二待处理数据;根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶;根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图;对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果,本申请对需要进行集合运算的数据进行分桶,将不同数据集中根据目标字段对应的字段值判断存在关联的待处理数据分配至同一个桶中,避免了集合计算时存在关联的数据被分配在不同的桶里时会导致集合计算时还需要从其他桶中获取数据导致触发Shuffle的问题,且本申请通过进一步地将落入桶内的数据转换为位图,可实现对数据的进一步压缩,进一步提升了数据的读写和计算效率,同时避免了单依靠对数据进行分桶,在进行并集运算时仍会涉及聚合COUNT_DISTINCT度量计算、产生二次Shuffle的问题;
进一步地,由于在生成位图前需要先根据字段值确定数据对应的桶,生成位图后计算引擎会自动将生成的位图数据进行分桶存储,但这样的分桶存储并不是按照预先划分的桶,可能会发生原本划分至两个桶内的数据最终被存储到同一个桶中,导致数据倾斜的问题,为解决该问题,本申请提出了根据预设方法计算得到每一所述初始桶号对应的桶号字段值;根据所述桶号字段值及对应的第一位图,生成第一数据表并根据所述桶号字段值及对应的第二位图,生成第二数据表;对所述第一数据表及所述第二数据表进行所述集合运算对应的集合操作,生成目标计算结果,可根据生成的桶号字段值将位图数据存储到相应的桶中,避免发生数据倾斜。
本发明所有产品并不需要具备上述所有效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据处理架构图;
图2是本申请实施例提供的分桶字段值的计算流程示意图;
图3是本申请实施例提供的数据处理流程示意图;
图4是本申请实施例提供的方法流程图;
图5是本申请实施例提供的装置结构图;
图6是本申请实施例提供的电子设备结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如背景技术所述,现有技术中当需要进行频繁的交并差处理时,可能会频繁触发将不同节点的数据汇集到一起进行计算的过程,极大地影响整个运行效率,浪费计算资源。
为解决上述技术问题,本申请提出了一种数据处理方法,可根据数据包括的目标字段的字段值将每一数据划分到相应的桶中,使得后续需要发生交并差计算的数据可以被存储到一个桶中,避免了计算时频繁触发不同节点的数据汇集到一起进行计算的过程,导致影响计算效率的问题,且本申请将同一桶内的数据以位图的形式进行存储,可实现对数据的进一步压缩,进一步提升了数据的读写和计算效率。
实施例一
具体的,为了应用本申请公开的数据处理方法进行交并差等集合运算,可预先构建一计算架构,如图1所示,包括UDF模块、预处理模块及交并差模块。
其中,UDF即用户定义函数模块可基于RoaringBitmap实现整数归并BITMAP、BITMAP合并等聚合函数以及位图初始化、求位图交集、并集、差集、基数等函数。还包括连续操作的合并,如bitmap_and_count(与运算基数)等,可以节省一次序列化/反序列化的性能开销。另外,还有可支持一些特殊场景,如bitmap_weight_and_count(加权与运算基数),支持并发计算复数Bitmap与权重乘积的累加值。以上UDF均支持32位和64位的整数类型。同时还包括支持桶号反向计算的UDF:unbucket,主要处理桶号与分桶字段值的映射关系。
预处理模块可根据数据量评估确定合理的分桶数,创建分桶表;然后,加载UDFjar包,创建临时方法;接着,根据目标字段的字段值计算桶号,同时根据桶号聚合,使用聚合函数让相同桶号的数据归并bitmap;最后,桶号反向计算,bitmap落表。
交并差模块可加载UDF jar包,创建临时方法,进行将两张分桶表作JOIN、分桶字段作关联、进行交并差计算、求基数等计算。最后将各个分桶数据累加,求出最终的计算结果。
具体的,应用上述计算架构,如图3所示,以对预设品牌的人群包及AIAR包进行交并差计算为例,进行数据交并差等集合计算的过程包括:
步骤一、创建第一数据源表及第二数据源表,根据第一数据源表及第二数据源表包括的数据量,确定分桶数量;
第一数据源表包括预设品牌的人群包对应的用户数据。
第二数据源表包括AIAR数据包,其中包括对预设品牌的认知人群、兴趣人群、购买人群和忠诚人群的四类用户分别的用户数据,其中每条用户数据可包括用户的会员编号、设备号等标识用户身份的数据。
根据第一数据源表和第二数据源表包括的用户数据的数据量,可以确定分桶的数量。
步骤二、根据预设哈希算法,生成每一用户数据的用户编号对应的第一哈希值;计算第一哈希值对分桶数量的取模结果,根据取模结果确定第一数据源表和第二数据源表包括的每一用户数据对应的分桶的初始桶号;
其中,预设哈希算法是指可将任意长度的输入通过散列算法变换成固定长度的输出的算法。在计算每一用户数据对应的第一哈希值前,可通过字典表映射或MD5转换等函数,将用户编号转换为整数值,然后根据预设哈希算法计算得到对应的第一哈希值。
例如,当分桶数量是4、某一用户数据对应的第一哈希值对分桶数量4的取模结果是3时,可以确定该用户数据对应的初始桶号为3。
在一些实施方式中,也可将用户数据的设备号作为目标字段、根据设备号对应的第一哈希值对分桶数量的取模结果确定第一数据源表和第二数据源表包括的每一用户数据对应的分桶的初始桶号。
步骤三、根据每一初始桶号对应的第一数据源表的用户数据,生成初始桶号对应的第一位图;根据每一初始桶号对应的第二数据源表的用户数据,生成初始桶号对应的第二位图;
具体的,第一位图和第二位图可以是高效压缩位图RoaringBitmap。根据桶内的数据量、数据的连续情况,可以自动选择使用BitmapContainer、ArrayContainer或RunContainer来存储数据,其中BitmapContainer是用于存储固定大小位图的Container,ArrayContainer是用于存储自动扩容数组的Container,RunContainer是实现行程长度编码压缩的Container。
BitmapContainer计算的时间复杂度为O(1),ArrayContainer和RunContainer需要在有序数组中进行二分查找,时间复杂度为O(logN)。空间占用方面,BitmapContainer为8KB,ArrayContainer与基数c有关,为(4+2c)B,RunContainer与连续序列数r有关,为(4+4r)B。
步骤四、从0开始,按数值从小到大的顺序根据预设哈希算法计算自然数对应的第二哈希值,并计算第二哈希值对分桶数量的取模结果;
在出现自然数对应的取模结果与初始桶号相同时,可以确定与初始桶号相同的自然数中值最小的自然数为该初始桶号对应的桶号字段值。
例如,如图2所示,当分桶数量为8时,某一桶的初始桶号为3,计算得到1、3、7对应的第二哈希值对8取模的结果为3,即可以确定1为该桶及该初始桶号对应的桶号字段值。
步骤五、根据桶号字段值及相应的第一位图,生成第一数据源表对应的品牌人群表;根据桶号字段值及相应的第二位图,生成第二数据源表第一的AIAR人群表;
如表1所示,品牌人群表中包括桶号即桶号字段值与会员编码。其中,会员编码以高效压缩位图RoaringBitmap的形式存储。如表2所示,AIAR人群表中包括桶号即桶号字段值、每一桶号包括的认知人群的会员编码、包括的兴趣人群的会员编码、包括的购买人群的会员编码及包括的忠诚人群的会员编码,每一会员编码也以高效压缩位图RoaringBitmap的形式存储。
表1
表2
步骤六、对品牌人群表及AIAR人群表进行目标集合操作,生成相应的目标计算结果。
具体的,可以调用UDF,从每个桶中获取品牌人群表及AIAR人群表的相应的第一位图及第二位图,并对每一个桶中的第一位图和第二位图进行取交集、取差集、取并集等集合操作,计算品牌人群与AIAR人群分别的交集数量、并集数量、差集数量等。
表3示出了一种集合操作结果,其中包括每一桶号下位图的交集数量即人群覆盖数量。可以对每个桶中的交集数量进行累加求和,如表4所示,以计算得到交集的总数。
表3
表4
经测试,根据300个人群包共计5亿多条会员信息及浏览人群400多万条会员信息,分别采用分桶及位图的原始方案、仅分桶的方案、仅位图的方案、及本申请实施例公开的分桶+位图方案测试人群包与浏览人群在交、并、差场景的计算性能。在基准测试中,分桶方案和位图方案在交、差处理中比原始方案有一定性能提升。并处理中,原始方案和分桶方案涉及聚合COUNT_DISTINCT度量计算即去重计数度量,产生二次Shuffle,性能远远差于位图方案和本申请公开的分桶+位图方案。而位图方案交并差处理中由于会存在Shuffle,其性能也劣于分桶+位图方案。从测试结果看,本申请实施例公开的技术方案得到的计算效果最优。
实施例二
对应上述实施例,如图4所示,本申请提供了一种数据处理方法,所述方法包括:
410、获取第一待处理数据集及第二待处理数据集,所述第一待处理数据集包括多个第一待处理数据,所述第二待处理数据集包括多个第二待处理数据,所述待处理数据包括目标字段及对应的字段值;
420、根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶;
优选的,所述根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶包括:
421、对所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值进行预处理,根据预设桶数对预处理后的所述对应的字段值进行取模计算生成相应的取模结果;
优选的,所述对所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值进行预处理,根据预设桶数对预处理后的所述对应的字段值进行取模计算生成相应的取模结果包括:
422、根据预设哈希算法,生成所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值对应的第一哈希值并根据预设桶数对所述第一哈希值进行取模计算。
423、根据所述取模结果,确定所述第一待处理数据及所述第二待处理数据分别对应的桶的初始桶号。
430、根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图;
优选的,所述根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图包括:
431、根据预设函数,生成所述第一待处理数据对应的第一整数值及所述第二待处理数据对应的第二整数值;
432、根据所述桶对应的第一整数值生成所述桶对应的第一位图并根据所述桶对应的第二整数值生成所述桶对应的第二位图。
440、对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果。
优选的,所述对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果包括:
441、根据预设方法计算得到每一所述初始桶号对应的桶号字段值;
优选的,所述根据预设方法计算得到每一所述初始桶号对应的桶号字段值包括:
442、根据预设哈希算法,生成预设自然数对应的第二哈希值;
443、根据所述预设桶数,对所述第二哈希值进行取模计算,生成所述第二哈希值对应的取模结果;
444、在所述第二哈希值对应的取模结果与所述初始桶号相同时,确定所述第二哈希值对应的预设自然数为所述初始桶号对应的桶号字段值。
445、根据所述桶号字段值及对应的第一位图,生成第一数据表并根据所述桶号字段值及对应的第二位图,生成第二数据表;
446、对所述第一数据表及所述第二数据表进行所述集合运算对应的集合操作,生成目标计算结果。
优选的,根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶前,所述方法还包括:
450、根据所述第一待处理数据集及所述第二待处理数据集包括的待处理数据的数据量,确定对应的预设桶数。
实施例三
对应上述实施例,如图5所示,本申请提供了一种数据处理装置,所述装置包括:
获取模块510,用于获取第一待处理数据集及第二待处理数据集,所述第一待处理数据集包括多个第一待处理数据,所述第二待处理数据集包括多个第二待处理数据,所述待处理数据包括目标字段及对应的字段值;
划分模块520,用于根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶;
生成模块530,用于根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图;
计算模块540,用于对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果。
优选的,所述划分模块520还可用于对所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值进行预处理,根据预设桶数对预处理后的所述对应的字段值进行取模计算生成相应的取模结果;根据所述取模结果,确定所述第一待处理数据及所述第二待处理数据分别对应的桶的初始桶号。
优选的,所述生成模块530还可用于根据预设方法计算得到每一所述初始桶号对应的桶号字段值;根据所述桶号字段值及对应的第一位图,生成第一数据表并根据所述桶号字段值及对应的第二位图,生成第二数据表;对所述第一数据表及所述第二数据表进行所述集合运算对应的集合操作,生成目标计算结果。
优选的,所述划分模块520还可用于根据预设哈希算法,生成所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值对应的第一哈希值并根据预设桶数对所述第一哈希值进行取模计算。
优选的,所述划分模块520还可用于根据预设哈希算法,生成预设自然数对应的第二哈希值;根据所述预设桶数,对所述第二哈希值进行取模计算,生成所述第二哈希值对应的取模结果;在所述第二哈希值对应的取模结果与所述初始桶号相同时,确定所述第二哈希值对应的预设自然数为所述初始桶号对应的桶号字段值。
优选的,所述生成模块530还可用于根据预设函数,生成所述第一待处理数据对应的第一整数值及所述第二待处理数据对应的第二整数值;根据所述桶对应的第一整数值生成所述桶对应的第一位图并根据所述桶对应的第二整数值生成所述桶对应的第二位图。
实施例四
对应上述方法、装置,本申请实施例提供一种电子设备,包括:
一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获取第一待处理数据集及第二待处理数据集,所述第一待处理数据集包括多个第一待处理数据,所述第二待处理数据集包括多个第二待处理数据,所述待处理数据包括目标字段及对应的字段值;
根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶;
根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图;
对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果。
其中,图6示例性的展示出了电子设备的架构,具体可以包括处理器1510,视频显示适配器1511,磁盘驱动器1512,输入/输出接口1513,网络接口1514,以及存储器1520。上述处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,与存储器1520之间可以通过通信总线1530进行通信连接。
其中,处理器1510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器1520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1520可以存储用于控制电子设备1500运行的操作系统1521,用于控制电子设备1500的低级别操作的基本输入输出系统(BIOS)1522。另外,还可以存储网页浏览器1523,数据存储管理1524,以及图标字体处理系统1525等等。上述图标字体处理系统1525就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器1520中,并由处理器1510来调用执行。输入/输出接口1513用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口1514用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1530包括一通路,在设备的各个组件(例如处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,与存储器1520)之间传输信息。
另外,该电子设备1500还可以从虚拟资源对象领取条件信息数据库1541中获得具体领取条件的信息,以用于进行条件判断,等等。
需要说明的是,尽管上述设备仅示出了处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,存储器1520,总线1530等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,云服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种数据处理方法,其特征在于,所述方法包括:
获取第一待处理数据集及第二待处理数据集,所述第一待处理数据集包括多个第一待处理数据,所述第二待处理数据集包括多个第二待处理数据,所述待处理数据包括目标字段及对应的字段值;
根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶;其中,对所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值进行预处理,根据预设桶数对预处理后的所述对应的字段值进行取模计算生成相应的取模结果;根据所述取模结果,确定所述第一待处理数据及所述第二待处理数据分别对应的桶的初始桶号;
根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图;
对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果;
其中,根据预设方法计算得到每一初始桶号对应的桶号字段值;
根据所述桶号字段值及对应的第一位图,生成第一数据表并根据所述桶号字段值及对应的第二位图,生成第二数据表;
对所述第一数据表及所述第二数据表进行所述集合运算对应的集合操作,生成目标计算结果;
其中,根据预设方法计算得到每一所述初始桶号对应的桶号字段值包括:
根据预设哈希算法,生成预设自然数对应的第二哈希值;
根据所述预设桶数,对所述第二哈希值进行取模计算,生成所述第二哈希值对应的取模结果;
在所述第二哈希值对应的取模结果与所述初始桶号相同时,确定所述第二哈希值对应的预设自然数为所述初始桶号对应的桶号字段值。
2.根据权利要求1所述的数据处理方法,其特征在于,所述对所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值进行预处理,根据预设桶数对预处理后的所述对应的字段值进行取模计算生成相应的取模结果包括:
根据预设哈希算法,生成所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值对应的第一哈希值并根据预设桶数对所述第一哈希值进行取模计算。
3.根据权利要求1-2任一所述的数据处理方法,其特征在于,根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶前,所述方法还包括:
根据所述第一待处理数据集及所述第二待处理数据集包括的待处理数据的数据量,确定对应的预设桶数。
4.根据权利要求1-2任一所述的数据处理方法,其特征在于,所述根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图包括:
根据预设函数,生成所述第一待处理数据对应的第一整数值及所述第二待处理数据对应的第二整数值;
根据所述桶对应的第一整数值生成所述桶对应的第一位图并根据所述桶对应的第二整数值生成所述桶对应的第二位图。
5.一种数据处理装置,其特征在于,所述装置包括:
获取模块,用于获取第一待处理数据集及第二待处理数据集,所述第一待处理数据集包括多个第一待处理数据,所述第二待处理数据集包括多个第二待处理数据,所述待处理数据包括目标字段及对应的字段值;
划分模块,用于根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶;对所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值进行预处理,根据预设桶数对预处理后的所述对应的字段值进行取模计算生成相应的取模结果;根据所述取模结果,确定所述第一待处理数据及所述第二待处理数据分别对应的桶的初始桶号;
生成模块,用于根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图;
计算模块,用于对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果;其中,根据预设方法计算得到每一初始桶号对应的桶号字段值;用于根据预设方法计算得到每一所述初始桶号对应的桶号字段值,包括:根据预设哈希算法,生成预设自然数对应的第二哈希值;根据所述预设桶数,对所述第二哈希值进行取模计算,生成所述第二哈希值对应的取模结果;在所述第二哈希值对应的取模结果与所述初始桶号相同时,确定所述第二哈希值对应的预设自然数为所述初始桶号对应的桶号字段值;
根据所述桶号字段值及对应的第一位图,生成第一数据表并根据所述桶号字段值及对应的第二位图,生成第二数据表;
对所述第一数据表及所述第二数据表进行所述集合运算对应的集合操作,生成目标计算结果。
6.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获取第一待处理数据集及第二待处理数据集,所述第一待处理数据集包括多个第一待处理数据,所述第二待处理数据集包括多个第二待处理数据,所述待处理数据包括目标字段及对应的字段值;
根据分别包括的所述目标字段对应的字段值确定所述第一待处理数据及所述第二待处理数据分别对应的桶;其中,对所述第一待处理数据及所述第二待处理数据分别包括的所述对应的字段值进行预处理,根据预设桶数对预处理后的所述对应的字段值进行取模计算生成相应的取模结果;根据所述取模结果,确定所述第一待处理数据及所述第二待处理数据分别对应的桶的初始桶号;
根据对应的所述第一待处理数据生成所述桶对应的第一位图并根据对应的所述第二待处理数据生成所述桶对应的第二位图;
对每一所述桶对应的第一位图及所述对应的第二位图进行集合运算,生成目标计算结果;
其中,根据预设方法计算得到每一初始桶号对应的桶号字段值;
根据所述桶号字段值及对应的第一位图,生成第一数据表并根据所述桶号字段值及对应的第二位图,生成第二数据表;
对所述第一数据表及所述第二数据表进行所述集合运算对应的集合操作,生成目标计算结果;
其中,根据预设方法计算得到每一所述初始桶号对应的桶号字段值包括:
根据预设哈希算法,生成预设自然数对应的第二哈希值;
根据所述预设桶数,对所述第二哈希值进行取模计算,生成所述第二哈希值对应的取模结果;
在所述第二哈希值对应的取模结果与所述初始桶号相同时,确定所述第二哈希值对应的预设自然数为所述初始桶号对应的桶号字段值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110647840.7A CN113516506B (zh) | 2021-06-10 | 2021-06-10 | 一种数据处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110647840.7A CN113516506B (zh) | 2021-06-10 | 2021-06-10 | 一种数据处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113516506A CN113516506A (zh) | 2021-10-19 |
CN113516506B true CN113516506B (zh) | 2024-04-26 |
Family
ID=78065849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110647840.7A Active CN113516506B (zh) | 2021-06-10 | 2021-06-10 | 一种数据处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113516506B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114021198B (zh) * | 2021-12-29 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 一种保护数据隐私的确定共有数据的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145394A (zh) * | 2017-04-28 | 2017-09-08 | 中国人民解放军国防科学技术大学 | 一种针对数据倾斜的均衡负载处理方法及装置 |
CN107633001A (zh) * | 2017-08-03 | 2018-01-26 | 北京空间科技信息研究所 | 哈希分区优化方法和装置 |
CN110532425A (zh) * | 2019-08-19 | 2019-12-03 | 深圳市网心科技有限公司 | 视频数据分布式存储方法、装置、计算机设备及存储介质 |
CN111966677A (zh) * | 2020-06-28 | 2020-11-20 | 北京百度网讯科技有限公司 | 数据报表的处理方法、装置、电子设备及存储介质 |
CN112015775A (zh) * | 2020-09-27 | 2020-12-01 | 北京百度网讯科技有限公司 | 标签数据处理方法、装置、设备和存储介质 |
WO2021008024A1 (zh) * | 2019-07-12 | 2021-01-21 | 平安科技(深圳)有限公司 | 数据处理的方法、装置和服务器 |
-
2021
- 2021-06-10 CN CN202110647840.7A patent/CN113516506B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145394A (zh) * | 2017-04-28 | 2017-09-08 | 中国人民解放军国防科学技术大学 | 一种针对数据倾斜的均衡负载处理方法及装置 |
CN107633001A (zh) * | 2017-08-03 | 2018-01-26 | 北京空间科技信息研究所 | 哈希分区优化方法和装置 |
WO2021008024A1 (zh) * | 2019-07-12 | 2021-01-21 | 平安科技(深圳)有限公司 | 数据处理的方法、装置和服务器 |
CN110532425A (zh) * | 2019-08-19 | 2019-12-03 | 深圳市网心科技有限公司 | 视频数据分布式存储方法、装置、计算机设备及存储介质 |
CN111966677A (zh) * | 2020-06-28 | 2020-11-20 | 北京百度网讯科技有限公司 | 数据报表的处理方法、装置、电子设备及存储介质 |
CN112015775A (zh) * | 2020-09-27 | 2020-12-01 | 北京百度网讯科技有限公司 | 标签数据处理方法、装置、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
Magnet: Pushbased Shuffle Service for Largescale Data Processing;M. Shen;PVLDB;20200801;第13卷(第12期);3382- 3395 * |
适用于范围查询的列存储数据桶划分算法;李晔锋;乐嘉锦;王梅;;计算机研究与发展;20130315(03);594-601 * |
Also Published As
Publication number | Publication date |
---|---|
CN113516506A (zh) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628898B (zh) | 数据入库的方法、装置和设备 | |
CN103036697B (zh) | 一种多维度数据去重方法及系统 | |
CN105630683A (zh) | 一种云测试体系架构 | |
CN112307062B (zh) | 数据库聚合查询方法、装置及系统 | |
CN111460011A (zh) | 页面数据展示方法、装置、服务器及存储介质 | |
CN113516506B (zh) | 一种数据处理方法、装置及电子设备 | |
US11978067B2 (en) | Determining patterns within a string sequence of user actions | |
CN112433908B (zh) | 确定检测服务器的间隔时间的方法、系统、设备及介质 | |
CN112445776B (zh) | 基于Presto的动态分桶方法、系统、设备及可读存储介质 | |
CN110704404B (zh) | 一种数据质量校验方法、装置、系统 | |
CN113268485A (zh) | 数据表关联分析方法、装置、设备及存储介质 | |
CN111177269A (zh) | 基于结构化的区块链数据存储、获取方法及装置 | |
CN107562533B (zh) | 一种数据加载处理方法及装置 | |
CN110309367B (zh) | 信息分类的方法、信息处理的方法和装置 | |
CN112181825A (zh) | 测试案例库构建方法、装置、电子设备及介质 | |
Liao et al. | Bullion: A Column Store for Machine Learning | |
CN112836924B (zh) | 一种资源分配审计的方法、装置、电子设备及存储介质 | |
CN110465093A (zh) | 一种基于Unity的包体冗余资源分析方法及其装置 | |
CN113656044B (zh) | 安卓安装包压缩方法、装置、计算机设备及存储介质 | |
CN111324542B (zh) | 一种Web应用回归测试用例选择系统、方法以及设备 | |
CN112307050B (zh) | 一种重复关联计算的识别方法、装置及计算机系统 | |
CN112702421B (zh) | 文件同步方法、装置、电子设备及存储介质 | |
CN112463798B (zh) | 跨数据库数据提取方法、装置、电子设备及存储介质 | |
CN111125147B (zh) | 基于扩展预计算模型和sql函数的超大集合分析方法及装置 | |
Smith et al. | Evaluating awkward arrays, uproot, and coffea as a query platform for High Energy Physics data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |