CN111352924A - 解决数据倾斜问题的方法及装置 - Google Patents
解决数据倾斜问题的方法及装置 Download PDFInfo
- Publication number
- CN111352924A CN111352924A CN202010129949.7A CN202010129949A CN111352924A CN 111352924 A CN111352924 A CN 111352924A CN 202010129949 A CN202010129949 A CN 202010129949A CN 111352924 A CN111352924 A CN 111352924A
- Authority
- CN
- China
- Prior art keywords
- summarizing
- aggregation
- preset
- partition
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000002776 aggregation Effects 0.000 claims abstract description 86
- 238000004220 aggregation Methods 0.000 claims abstract description 86
- 238000005192 partition Methods 0.000 claims description 60
- 230000006870 function Effects 0.000 claims description 23
- 238000004364 calculation method Methods 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 19
- 238000003860 storage Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004931 aggregating effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004900 laundering Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
Images
Classifications
-
- 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种解决数据倾斜问题的方法及装置,该方法包括:获取客户交易数据;针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段进行汇总,得到所述聚合目标字段对应的多个第一汇总集合;按照预设的第二汇总条件键值根据预设的聚合函数对所述多个第一汇总集合进行汇总,得到第二汇总集合。本发明解决了现有技术解决数据倾斜问题的方法容易出现汇总的问题。
Description
技术领域
本发明涉及大数据计算领域,具体而言,涉及一种解决数据倾斜问题的方法及装置。
背景技术
在许多结构化数据挖掘场景如反欺诈、反洗钱等中,银行需要做一些按客户汇总其一段时间内出现过的不同地点个数、交易过的不同商户的个数等类似的特征。比如客户甲近十分钟内交易五笔,出现的地点有“北京、上海、上海、北京、北京”,那么所得到的交易过的不同地点个数应该为2。这种短时间内出现在不同地点的情况,非常疑似欺诈。随着分布式计算技术的发展,现阶段都会使用spark基于大数据量来计算这些特征。但分布式计算也有一个弊端就是容易因为数据分布不均匀而出现数据倾斜。尤其是在使用Group By、Partition By这类语句时,很容易遇到。
数据倾斜问题的发生,是因为Spark底层的计算引擎要求同样key必须分布在同一个计算分区,而当某个key的数据量太大时,其所在的分区就会因为负载过大而计算缓慢,但是一个完整的spark计算任务要所有分区都计算完成才能结束。所以由于数据分布不均匀导致负载过大的分区计算时间过长而导致整个计算过程变得缓慢的现象就是所谓的数据倾斜。
解决数据倾斜问题的主要手段之一就是对key进行细分,强行将其打散先初步汇总value值再根据初步汇总结果进行全局汇总。但是在使用同样方法汇总这类“一段时间内不同地点个数”时就会遇到一个问题:比如某客户一月内出现的地点有“A、B、C”三个不同地点,而上个月出现在“B、D”两个不同的地点。在汇总近两个月出现的不同地点个数时,如果简单地把两个数相加就会出现问题。因为近两月出现的不同地点的个数是4个而不是3+2=5个。实际应用中不止是将key细分到月,大多是到天。这样在做全局汇总时出现重复计算的可能性会更大,并不能保证客户每天都出现在不同的地点。针对上述现有技术解决数据倾斜问题的方法容易出现汇总的问题,现有技术缺少一种解决方案。
发明内容
本发明为了解决上述背景技术中现有技术解决数据倾斜问题的方法容易出现汇总的问题,提出了一种解决数据倾斜问题的方法及装置。
为了实现上述目的,根据本发明的一个方面,提供了一种解决数据倾斜问题的方法,该方法包括:
获取客户交易数据;
针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段进行汇总,得到所述聚合目标字段对应的多个第一汇总集合;
按照预设的第二汇总条件键值根据预设的聚合函数对所述多个第一汇总集合进行汇总,得到第二汇总集合。
可选的,所述第一汇总条件键值包括:客户账号和交易日期,所述聚合目标字段包括:交易地区,所述第二汇总条件键值包括:客户账号。
可选的,该解决数据倾斜问题的方法还包括:
根据所述第二汇总集合计算客户的风控指标;
若所述风控指标超过阈值向业务***发送警报信息。
可选的,所述按照预设的第二汇总条件键值根据预设的聚合函数对所述多个第一汇总集合进行汇总,得到第二汇总集合,包括:
在每个分区初始化一个空集合,其中,每个分区包括至少一个第一汇总集合;
将各分区内的每个第一汇总集合中的与所述第二汇总条件键值对应的数据合并到分区内的空集合中,生成各分区对应的分区集合;
将各分区对应的所述分区集合两两合并,生成第二汇总集合。
可选的,所述针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段进行汇总,得到所述聚合目标字段对应的多个第一汇总集合,包括:
针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段采用spark计算引擎中的union_set函数进行汇总,得到所述聚合目标字段对应的多个第一汇总集合。
为了实现上述目的,根据本发明的另一方面,提供了一种解决数据倾斜问题的装置,该装置包括:
交易数据获取单元,用于获取客户交易数据;
第一汇总单元,用于针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段进行汇总,得到所述聚合目标字段对应的多个第一汇总集合;
第二汇总单元,用于按照预设的第二汇总条件键值根据预设的聚合函数对所述多个第一汇总集合进行汇总,得到第二汇总集合。
可选的,所述第一汇总条件键值包括:客户账号和交易日期,所述聚合目标字段包括:交易地区,所述第二汇总条件键值包括:客户账号。
可选的,该解决数据倾斜问题的装置还包括:
风控指标计算单元,用于根据所述第二汇总集合计算客户的风控指标;
风险预警单元,用于在所述风控指标超过阈值时向业务***发送警报信息。
可选的,所述第二汇总单元,包括:
空集合生成模块,用于在每个分区初始化一个空集合,其中,每个分区包括至少一个第一汇总集合;
分区集合生成模块,用于将各分区内的每个第一汇总集合中的与所述第二汇总条件键值对应的数据合并到分区内的空集合中,生成各分区对应的分区集合;
集合合并模块,用于将各分区对应的所述分区集合两两合并,生成第二汇总集合。
可选的,所述第一汇总单元,具体用于针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段采用spark计算引擎中的union_set函数进行汇总,得到所述聚合目标字段对应的多个第一汇总集合。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述解决数据倾斜问题的方法中的步骤。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述解决数据倾斜问题的方法中的步骤。
本发明的有益效果为:本发明针对所述客户交易数据按照预设的第一汇总条件键值(key)对预设的聚合目标字段(value)进行汇总,得到所述聚合目标字段(value)对应的多个第一汇总集合(set),进而根据用户自定义的聚合函数(UDAF)对所述多个第一汇总集合(set)进行第二次汇总得到第二汇总集合,根据第二汇总集合可以有效的统计出聚合目标字段(value)对应的个数,有效解决了现有技术解决数据倾斜问题的方法容易出现汇总的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明第一实施例解决数据倾斜问题的方法的流程图;
图2是本发明实施例根据第二汇总集合进行风控预警的流程图;
图3是本发明实施例根据用户自定义聚合函数对多个第一汇总集合进行汇总的流程图;
图4是本发明第二实施例解决数据倾斜问题的方法的流程图;
图5是本发明实施例解决数据倾斜问题的装置的第一结构框图;
图6是本发明实施例解决数据倾斜问题的装置的第二结构框图;
图7是本发明实施例第二汇总单元的组成结构框图;
图8是本发明实施例计算机设备示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
图1是本发明第一实施例解决数据倾斜问题的方法的流程图,本发明的实施主体可以为spark计算引擎,如图1所示,本实施例的解决数据倾斜问题的方法包括步骤S101至步骤S103。
步骤S101,获取客户交易数据。
在本发明实施例中,spark计算引擎从数据库获取客户交易数据。
步骤S102,针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段进行汇总,得到所述聚合目标字段对应的多个第一汇总集合。
在本发明实施例中,spark计算引擎针对客户交易数据按照预设的第一汇总条件键值(key)对预设的聚合目标字段(value)进行汇总,得到所述聚合目标字段(value)对应的多个第一汇总集合(set)。在本发明可选实施例中,本步骤可以采用spark计算引擎中的union_set函数进行汇总得到聚合目标字段(value)对应的集合。
在本发明可选实施例中,第一汇总条件键值可以为客户账号和交易日期,客户账号和交易日期可以为多个,交易日期可以以年、月、周、日或小时为单位。例如第一汇总条件键值为客户账号A,交易日期为12月1日至12月15日中的每一日。在本发明可选实施例中,聚合目标字段可以为交易地区。在本发明可选实施例中,本步骤针对预设的客户账号按照每天为单位针对交易地区进行汇总,得到该客户账号每天的交易地区汇总集合(即第一汇总集合set)。
步骤S103,按照预设的第二汇总条件键值根据预设的聚合函数对所述多个第一汇总集合进行汇总,得到第二汇总集合。
在本发明中,事先向spark计算引擎注册自定义的UDAF(user defined aggregatefunction,用户定义的聚合函数),生成用于合并集合的Union_sets模块,该Union_sets模块用于专门聚合集合set类字段。在本发明实施例中,该聚合函数的计算逻辑如下:
A)初始化一个空的set(集合):S0。
B)定义单分区更新方式:
update(set S0,set S):
S0=S0 U S(求并集);
返回S0。
定义分区间的合并方式:
Merge(set S1,set S2):
S3=S1 U S2(对两个集合求并集);
返回合并结果S3。
C)返回最终合并的集合S3。
在本发明可选实施例中,所述第二汇总条件键值为客户账号。本步骤以客户账号为key根据Union_sets对上述多个第一汇总集合(set)进行再次汇总,得到最终的汇总集合,即第二汇总集合。
例如,针对客户账号A,交易时间为最近7天,先针对交易地区汇总出最近7天每天的第一汇总集合(set),再根据Union_sets对上述多个第一汇总集合(set)进行再次汇总,得到最终的汇总集合(即第二汇总集合),通过统计该最终的汇总集合的大小(length),得到客户账号A在预设交易时间中出现的交易地区的总个数。
由此可见,本发明根据用户自定义的聚合函数(UDAF)对所述多个第一汇总集合(set)进行第二次汇总得到第二汇总集合,根据第二汇总集合可以有效的统计出聚合目标字段(value)对应的个数,有效解决了现有技术解决数据倾斜问题的方法容易出现汇总的问题。
图2是本发明实施例根据第二汇总集合进行风控预警的流程图。如图2所示,在本发明实施例中,根据第二汇总集合进行风控预警的流程包括步骤S201和步骤S202。
步骤S201,根据所述第二汇总集合计算客户的风控指标。
步骤S202,若所述风控指标超过阈值向业务***发送警报信息。
在本发明实施例中,上述最终的汇总集合(即第二汇总集合)可以用于客户风控预警。本步骤通过计算第二汇总集合的大小(length),得到去重后的符合第一汇总条件键值(key)的聚合目标字段(value)的计数。进而将该计数与预设阈值进行对比,若超过阈值向业务***发送警报信息。
图3是本发明实施例根据用户自定义聚合函数对多个第一汇总集合进行汇总的流程图。如图3所示,在本发明实施例中,上述步骤S103的根据用户自定义聚合函数对多个第一汇总集合进行汇总的流程包括步骤S301至步骤S303。
步骤S301,在每个分区初始化一个空集合,其中,每个分区包括至少一个第一汇总集合。
在本发明实施例中,本步骤根据Union_sets在每个分区初始化一个空集合。
步骤S302,将各分区内的每个第一汇总集合中的与所述第二汇总条件键值对应的数据合并到分区内的空集合中,生成各分区对应的分区集合。
步骤S303,将各分区对应的所述分区集合两两合并,生成第二汇总集合。
图4是本发明第二实施例解决数据倾斜问题的方法的流程图。如图4所示,本实施例的解决数据倾斜问题的方法的流程包括步骤S401至步骤S407。
步骤S401,获取客户交易数据。
步骤S402,按组合key(如账号,交易日期)对value(如交易地区)用collect_set进行集合汇总得到set,如{北京,上海}、{上海,广州}等。
步骤S403,注册自定义的UDAF:Union_sets。
步骤S404,按key(如客户账号)对得到set用Union_sets进行二次汇总得到最终集合,如{北京,上海,广州}。
步骤S405,基于上步结果计算客户风控指标。
步骤S406,判断客户是否超过预警阈值。
步骤S407,若是,返回客户信息到业务端。
通过以上实施例可以看出,本发明通过使用上述自定义UDAF,可快速计算得到某个key的在较长一个周期内出现不同value的个数,有效解决一类数据倾斜问题,在有些场景甚至可以带来数百倍的计算效率提升。目前该UDAF已经封装到大数据分析平台,并且成熟应用在对公客户交易异常监控项目中的多个模型中,大幅度提高了模型计算速度,使基于大数据分析的模型上线成为可能,提高和完善了对公客户风控***计算性能和风险防控能力。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
基于同一发明构思,本发明实施例还提供了一种解决数据倾斜问题的装置,可以用于实现上述实施例所描述的解决数据倾斜问题的方法,如下面的实施例所述。由于解决数据倾斜问题的装置解决问题的原理与解决数据倾斜问题的方法相似,因此解决数据倾斜问题的装置的实施例可以参见解决数据倾斜问题的方法的实施例,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是本发明实施例解决数据倾斜问题的装置的第一结构框图,如图5所示,本发明实施例解决数据倾斜问题的装置包括:交易数据获取单元1、第一汇总单元2和第二汇总单元3。
交易数据获取单元1,用于获取客户交易数据。
第一汇总单元2,用于针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段进行汇总,得到所述聚合目标字段对应的多个第一汇总集合。
在本发明可选实施例中,所述第一汇总单元2具体用于针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段采用spark计算引擎中的union_set函数进行汇总,得到所述聚合目标字段对应的多个第一汇总集合。
第二汇总单元3,用于按照预设的第二汇总条件键值根据预设的聚合函数对所述多个第一汇总集合进行汇总,得到第二汇总集合。
在本发明可选实施例中,所述第一汇总条件键值包括:客户账号和交易日期,所述聚合目标字段包括:交易地区,所述第二汇总条件键值包括:客户账号。
图6是本发明实施例解决数据倾斜问题的装置的第二结构框图,如图6所示,本发明实施例解决数据倾斜问题的装置还包括:风控指标计算单元4和风险预警单元5。
风控指标计算单元4,用于根据所述第二汇总集合计算客户的风控指标。
风险预警单元5,用于在所述风控指标超过阈值时向业务***发送警报信息。
图7是本发明实施例第二汇总单元的组成结构框图,如图7所示,上述第二汇总单元3具体包括:空集合生成模块301、分区集合生成模块302和集合合并模块303。
空集合生成模块301,用于在每个分区初始化一个空集合,其中,每个分区包括至少一个第一汇总集合。
分区集合生成模块302,用于将各分区内的每个第一汇总集合中的与所述第二汇总条件键值对应的数据合并到分区内的空集合中,生成各分区对应的分区集合。
集合合并模块303,用于将各分区对应的所述分区集合两两合并,生成第二汇总集合。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备。如图8所示,该计算机设备包括存储器、处理器、通信接口以及通信总线,在存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例方法中的步骤。
处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。
上述计算机设备具体细节可以对应参阅上述实施例中对应的相关描述和效果进行理解,此处不再赘述。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述解决数据倾斜问题的方法中的步骤。本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种解决数据倾斜问题的方法,其特征在于,包括:
获取客户交易数据;
针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段进行汇总,得到所述聚合目标字段对应的多个第一汇总集合;
按照预设的第二汇总条件键值根据预设的聚合函数对所述多个第一汇总集合进行汇总,得到第二汇总集合。
2.根据权利要求1所述的解决数据倾斜问题的方法,其特征在于,所述第一汇总条件键值包括:客户账号和交易日期,所述聚合目标字段包括:交易地区,所述第二汇总条件键值包括:客户账号。
3.根据权利要求1所述的解决数据倾斜问题的方法,其特征在于,还包括:
根据所述第二汇总集合计算客户的风控指标;
若所述风控指标超过阈值向业务***发送警报信息。
4.根据权利要求1所述的解决数据倾斜问题的方法,其特征在于,所述按照预设的第二汇总条件键值根据预设的聚合函数对所述多个第一汇总集合进行汇总,得到第二汇总集合,包括:
在每个分区初始化一个空集合,其中,每个分区包括至少一个第一汇总集合;
将各分区内的每个第一汇总集合中的与所述第二汇总条件键值对应的数据合并到分区内的空集合中,生成各分区对应的分区集合;
将各分区对应的所述分区集合两两合并,生成第二汇总集合。
5.根据权利要求1所述的解决数据倾斜问题的方法,其特征在于,所述针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段进行汇总,得到所述聚合目标字段对应的多个第一汇总集合,包括:
针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段采用spark计算引擎中的union_set函数进行汇总,得到所述聚合目标字段对应的多个第一汇总集合。
6.一种解决数据倾斜问题的装置,其特征在于,包括:
交易数据获取单元,用于获取客户交易数据;
第一汇总单元,用于针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段进行汇总,得到所述聚合目标字段对应的多个第一汇总集合;
第二汇总单元,用于按照预设的第二汇总条件键值根据预设的聚合函数对所述多个第一汇总集合进行汇总,得到第二汇总集合。
7.根据权利要求6所述的解决数据倾斜问题的装置,其特征在于,所述第一汇总条件键值包括:客户账号和交易日期,所述聚合目标字段包括:交易地区,所述第二汇总条件键值包括:客户账号。
8.根据权利要求6所述的解决数据倾斜问题的装置,其特征在于,还包括:
风控指标计算单元,用于根据所述第二汇总集合计算客户的风控指标;
风险预警单元,用于在所述风控指标超过阈值时向业务***发送警报信息。
9.根据权利要求6所述的解决数据倾斜问题的装置,其特征在于,所述第二汇总单元,包括:
空集合生成模块,用于在每个分区初始化一个空集合,其中,每个分区包括至少一个第一汇总集合;
分区集合生成模块,用于将各分区内的每个第一汇总集合中的与所述第二汇总条件键值对应的数据合并到分区内的空集合中,生成各分区对应的分区集合;
集合合并模块,用于将各分区对应的所述分区集合两两合并,生成第二汇总集合。
10.根据权利要求6所述的解决数据倾斜问题的装置,其特征在于,所述第一汇总单元,具体用于针对所述客户交易数据按照预设的第一汇总条件键值对预设的聚合目标字段采用spark计算引擎中的union_set函数进行汇总,得到所述聚合目标字段对应的多个第一汇总集合。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述的方法。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序在计算机处理器中执行时实现如权利要求1至5任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010129949.7A CN111352924B (zh) | 2020-02-28 | 2020-02-28 | 解决数据倾斜问题的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010129949.7A CN111352924B (zh) | 2020-02-28 | 2020-02-28 | 解决数据倾斜问题的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352924A true CN111352924A (zh) | 2020-06-30 |
CN111352924B CN111352924B (zh) | 2024-02-27 |
Family
ID=71192454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010129949.7A Active CN111352924B (zh) | 2020-02-28 | 2020-02-28 | 解决数据倾斜问题的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352924B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009094A (zh) * | 2023-10-07 | 2023-11-07 | 联通在线信息科技有限公司 | 数据倾斜打散方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160132543A1 (en) * | 2014-11-11 | 2016-05-12 | International Business Machines Corporation | Automatically aggregating data in database tables |
CN108897874A (zh) * | 2018-07-03 | 2018-11-27 | 北京字节跳动网络技术有限公司 | 用于处理数据的方法和装置 |
CN109388659A (zh) * | 2018-09-29 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 数据存储方法、装置和计算机可读存储介质 |
CN110399409A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 交易异常监测方法及装置 |
CN110533526A (zh) * | 2019-08-13 | 2019-12-03 | 深圳追一科技有限公司 | 一种黑标客户的识别方法、装置、计算机设备和存储介质 |
-
2020
- 2020-02-28 CN CN202010129949.7A patent/CN111352924B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160132543A1 (en) * | 2014-11-11 | 2016-05-12 | International Business Machines Corporation | Automatically aggregating data in database tables |
CN108897874A (zh) * | 2018-07-03 | 2018-11-27 | 北京字节跳动网络技术有限公司 | 用于处理数据的方法和装置 |
CN109388659A (zh) * | 2018-09-29 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 数据存储方法、装置和计算机可读存储介质 |
CN110399409A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 交易异常监测方法及装置 |
CN110533526A (zh) * | 2019-08-13 | 2019-12-03 | 深圳追一科技有限公司 | 一种黑标客户的识别方法、装置、计算机设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009094A (zh) * | 2023-10-07 | 2023-11-07 | 联通在线信息科技有限公司 | 数据倾斜打散方法、装置、电子设备及存储介质 |
CN117009094B (zh) * | 2023-10-07 | 2024-02-23 | 联通在线信息科技有限公司 | 数据倾斜打散方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111352924B (zh) | 2024-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107705149A (zh) | 数据实时监控方法、装置、终端设备及存储介质 | |
CN109725899B (zh) | 数据流式处理方法及装置 | |
CN108492150B (zh) | 实体热度的确定方法及*** | |
CN103488684A (zh) | 基于缓存数据多线程处理的电力可靠性指标快速计算方法 | |
US11664974B2 (en) | Summary chains in distributed systems | |
CN108415964A (zh) | 数据表查询方法、装置、终端设备及存储介质 | |
KR101989330B1 (ko) | 데이터 처리 애플리케이션의 검사 | |
CN112738172A (zh) | 区块链节点的管理方法、装置、计算机设备和存储介质 | |
CN108573348B (zh) | 金融指标分布式计算方法及其*** | |
CN111352924A (zh) | 解决数据倾斜问题的方法及装置 | |
CN111523921B (zh) | 漏斗分析方法、分析设备、电子设备及可读存储介质 | |
CN110928748A (zh) | 业务***运行监测方法及装置 | |
CN114218303B (zh) | 一种交易数据的处理***、处理方法、介质和设备 | |
US10956369B1 (en) | Data aggregations in a distributed environment | |
CN116167857A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN115269558A (zh) | 数据存储方法、装置、设备、存储介质和程序产品 | |
CN115269519A (zh) | 一种日志检测方法、装置及电子设备 | |
CN116628042A (zh) | 数据处理方法、装置、设备及介质 | |
CN110032445B (zh) | 大数据聚集计算方法及装置 | |
CN114048231A (zh) | 数据处理方法、装置及计算机程序产品 | |
CN105761119A (zh) | 在线人数分布计算方法及装置 | |
CN111639057A (zh) | 日志消息处理方法、装置、计算机设备及存储介质 | |
CN112463570B (zh) | 一种日志统计方法、装置及*** | |
CN106815289B (zh) | 一种交易处理***中的数据存储方法及装置 | |
CN114416699A (zh) | 一种关系型数据库数据管理方法、装置和电子设备 |
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 |