CN113468226B - 一种业务处理方法、装置、电子设备和存储介质 - Google Patents
一种业务处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113468226B CN113468226B CN202110706507.9A CN202110706507A CN113468226B CN 113468226 B CN113468226 B CN 113468226B CN 202110706507 A CN202110706507 A CN 202110706507A CN 113468226 B CN113468226 B CN 113468226B
- Authority
- CN
- China
- Prior art keywords
- target
- user
- storage
- dimension
- 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.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 214
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000004364 calculation method Methods 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims description 41
- 238000006243 chemical reaction Methods 0.000 claims description 18
- 230000011218 segmentation Effects 0.000 claims description 16
- 238000009826 distribution Methods 0.000 claims description 11
- 238000003491 array Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开关于一种业务处理方法、装置、电子设备和存储介质。方法包括:获取目标业务的用户数据,用户数据包括用户维度标识和目标业务维度标识;从多个数据集合中确定出与用户维度标识对应的目标数据集合;其中,目标数据集合包括一个或多个存储位图,每个存储位图指示对应的业务维度标识;从多个存储位图中确定出与目标业务维度标识对应的目标存储位图,以及利用目标存储位图记录用户维度标识;合并多个数据集合中指示目标业务维度标识的存储位图,得到目标业务维度下的用户信息。本公开利用存储位图记录用户维度标识,可以减少存储资源的占用。在对用户数据进行相关业务维度统计时,合并相关存储位图可以提高计算效率、保证计算的准确性。
Description
技术领域
本公开涉及互联网通信技术领域,尤其涉及一种业务处理方法、装置、电子设备和存储介质。
背景技术
随着互联网通信技术的发展,越来越多的程序产品被开发出来。各种各样的程序产品使人们的工作、生活变得丰富多彩,人们可以通过安装于终端上的程序产品进行视频直播、网上购物、导航等等。
相关技术中,常常需要对用户数据进行相关业务统计,尤其是具有实时性要求的相关业务统计。可以利用HyperLogLog(一种基数估计算法)或者BloomFilter(布隆过滤器)来实现,这样虽然需要的额外空间少、业务处理效率高,但是采用这类方式得到的结果准确性较低。当然,也可以借助较多的外部存储来保证计算的准确度,然而这样将伴随着较大的存储资源占用。因此,需要提供存储资源占用少且计算准确度高的业务处理方案。
发明内容
本公开提供一种业务处理方法、装置、电子设备和存储介质,以至少解决相关技术中在进行业务处理时无法兼顾少存储资源占用且高计算准确度的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种业务处理方法,所述方法包括:
获取目标业务的用户数据,所述用户数据包括用户维度标识和目标业务维度标识;
从多个数据集合中确定出与所述用户维度标识对应的目标数据集合;其中,所述目标数据集合包括一个或多个存储位图,每个所述存储位图指示对应的业务维度标识;
从所述多个存储位图中确定出与所述目标业务维度标识对应的目标存储位图,以及利用所述目标存储位图记录所述用户维度标识;
合并所述多个数据集合中指示所述目标业务维度标识的存储位图,得到目标业务维度下的用户信息。
在一示例性的实施方式中,在所述从多个数据集合中确定出与所述用户维度标识对应的目标数据集合之前,所述方法还包括:
根据对应的业务维度标识对获取到的多个用户数据进行切分,得到至少两个候选数据集合;
计算所述至少两个候选数据集合中每两个候选数据集合对应的数量差值;
当存在对应的数量差值大于预设阈值的两个候选数据集合时,触发所述从多个数据集合中确定出与所述用户维度标识对应的目标数据集合的步骤;其中,所述预设阈值为衡量数据分布不均匀的数量指标。
在一示例性的实施方式中,所述从多个数据集合中确定出与所述用户维度标识对应的目标数据集合,包括:
根据第一预设规则将所述用户维度标识转化为对应的第一参考数值;
对所述第一参考数值与目标数进行取模运算,得到第一取模运算结果;其中,所述目标数指示所述多个数据集合的集合数量;
从所述多个数据集合中确定出与所述第一取模运算结果对应的目标数据集合;其中,所述目标数据集合携带的集合序号与所述第一取模运算结果相匹配。
在一示例性的实施方式中,所述利用所述目标存储位图记录所述用户维度标识,包括:
根据第二预设规则将所述用户维度标识转化为对应的第二参考数值;
对所述第二参考数值与预设数值进行求商运算,得到求商结果;其中,所述预设数值指示所述目标存储位图中每个存储数组中的元素个数;
从所述目标存储位图的多个存储数组中确定出与所述求商结果对应的目标存储数组;其中,所述目标存储数组携带的数组序号与所述求商结果相匹配;
对所述第二参考数值与所述预设数值进行取模运算,得到第二取模运算结果;
根据第二取模运算结果在所述目标存储数组中确定出目标元素;其中,所述目标元素在所述目标存储数组的位置顺序信息与所述第二取模运算结果相匹配;
利用所述目标元素记录所述用户维度标识。
在一示例性的实施方式中,所述利用所述目标元素记录所述用户维度标识,包括:
确定表征所述用户维度标识的特征值;
确定所述目标元素的当前存储状态;
当所述目标元素的当前存储状态为空时,将所述特征值写入所述目标元素中;
当所述目标元素的当前存储状态不为空时,保持所述目标元素的当前存储状态不变。
在一示例性的实施方式中,所述合并所述多个数据集合中指示所述目标业务维度标识的存储位图,得到目标业务维度下的用户信息之后,所述方法还包括:
确定落入当前时间的时间窗口的至少一个历史时间;
获取每个所述历史时间对应的目标业务维度下的用户信息,得到历史用户信息;
对所述当前时间对应的目标业务维度下的用户信息和所述历史用户信息进行用户维度的去重处理,得到当前窗口对应的目标业务维度下的用户信息。
根据本公开实施例的第二方面,提供一种业务处理集群,所述集群部署有预设的数据处理框架,所述预设的数据处理框架支持由结构化查询语言编写的指令;其中,接收用于触发业务处理的所述指令,使得所述集群中任一服务器执行如第一方面所述的业务处理方法。
根据本公开实施例的第三方面,提供一种业务处理装置,所述装置包括:
用户数据获取单元,被配置为执行获取目标业务的用户数据,所述用户数据包括用户维度标识和目标业务维度标识;
目标数据集合确定单元,被配置为执行从多个数据集合中确定出与所述用户维度标识对应的目标数据集合;其中,所述目标数据集合包括一个或多个存储位图,每个所述存储位图指示对应的业务维度标识;
记录单元,被配置为执行从所述多个存储位图中确定出与所述目标业务维度标识对应的目标存储位图,以及利用所述目标存储位图记录所述用户维度标识;
用户信息得到单元,被配置为执行合并所述多个数据集合中指示所述目标业务维度标识的存储位图,得到目标业务维度下的用户信息。
在一示例性的实施方式中,所述装置还包括:
切分单元,被配置为执行根据对应的业务维度标识对获取到的多个用户数据进行切分,得到至少两个候选数据集合;
数量差值计算单元,被配置为执行计算所述至少两个候选数据集合中每两个候选数据集合对应的数量差值;
触发单元,被配置为执行当存在对应的数量差值大于预设阈值的两个候选数据集合时,触发所述从多个数据集合中确定出与所述用户维度标识对应的目标数据集合的步骤;其中,所述预设阈值为衡量数据分布不均匀的数量指标。
在一示例性的实施方式中,所述目标数据集合确定单元包括:
第一转化单元,被配置为执行根据第一预设规则将所述用户维度标识转化为对应的第一参考数值;
第一取模运算单元,被配置为执行对所述第一参考数值与目标数进行取模运算,得到第一取模运算结果;其中,所述目标数指示所述多个数据集合的集合数量;
目标数据集合确定子单元,被配置为执行从所述多个数据集合中确定出与所述第一取模运算结果对应的目标数据集合;其中,所述目标数据集合携带的集合序号与所述第一取模运算结果相匹配。
在一示例性的实施方式中,所述记录单元包括:
第二转化单元,被配置为执行根据第二预设规则将所述用户维度标识转化为对应的第二参考数值;
求商运算单元,被配置为执行对所述第二参考数值与预设数值进行求商运算,得到求商结果;其中,所述预设数值指示所述目标存储位图中每个存储数组中的元素个数;
目标数据存储数组确定单元,被配置为执行从所述目标存储位图的多个存储数组中确定出与所述求商结果对应的目标存储数组;其中,所述目标存储数组携带的数组序号与所述求商结果相匹配;
第二取模运算单元,被配置为执行对所述第二参考数值与所述预设数值进行取模运算,得到第二取模运算结果;
目标元素确定单元,被配置为执行根据第二取模运算结果在所述目标存储数组中确定出目标元素;其中,所述目标元素在所述目标存储数组的位置顺序信息与所述第二取模运算结果相匹配;
记录子单元,被配置为执行利用所述目标元素记录所述用户维度标识。
在一示例性的实施方式中,所述记录子单元包括:
特征值确定单元,被配置为执行确定表征所述用户维度标识的特征值;
状态确定单元,被配置为执行确定所述目标元素的当前存储状态;
写入单元,被配置为执行当所述目标元素的当前存储状态为空时,将所述特征值写入所述目标元素中;
保持单元,被配置为执行当所述目标元素的当前存储状态不为空时,保持所述目标元素的当前存储状态不变。
在一示例性的实施方式中,所述装置还包括:
历史时间确定单元,被配置为执行确定落入当前时间的时间窗口的至少一个历史时间;
历史用户信息得到单元,被配置为执行获取每个所述历史时间对应的目标业务维度下的用户信息,得到历史用户信息;
去重单元,被配置为执行对所述当前时间对应的目标业务维度下的用户信息和所述历史用户信息进行用户维度的去重处理,得到当前窗口对应的目标业务维度下的用户信息。
根据本公开实施例的第四方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的业务处理方法。
根据本公开实施例的第五方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如第一方面所述的业务处理方法。
根据本公开实施例的第六方面,提供一种计算机程序产品,当其在计算机上运行时,使得所述计算机执行如第一方面所述的业务处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
通过获取目标业务的用户数据,然后从多个数据集合中确定出与用户数据的用户维度标识对应的目标数据集合;再从目标数据集合的多个存储位图中确定出与用户数据的目标业务维度标识对应的目标存储位图,以及利用目标存储位图记录所述用户维度标识;从而合并多个数据集合中指示目标业务维度标识的存储位图,得到目标业务维度下的用户信息。本公开利用存储位图对用户数据的用户维度标识进行记录,可以减少存储资源的占用。在对用户数据进行相关业务维度的统计时,合并相关存储位图可以使得计算效率更高、可以保证计算的准确性。这样能够实现对海量数据进行相关统计的实时性和准确度要求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种业务处理方法的流程图。
图2是根据一示例性实施例示出的从多个数据集合中确定出与用户维度标识对应的目标数据集合的一种流程图。
图3是根据一示例性实施例示出的利用目标存储位图记录用户维度标识的一种流程图。
图4是根据一示例性实施例示出的存储位图的结构示意图。
图5是根据一示例性实施例示出的得到当前窗口对应的目标业务维度下的用户信息的一种流程示意图。
图6是根据一示例性实施例示出的一种业务处理装置的框图。
图7是根据一示例性实施例示出的业务处理方法的应用场景示意图。
图8是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
对本公开提供的实施例进行进一步详细说明之前,对实施例中涉及的名词和术语进行说明,本公开提供的实施例中涉及的名词和术语适用于如下的解释。
数据倾斜:数据处理经常是以分布式任务进行的,在进行数据处理时,如果各计算节点的数据分布不均匀,数据大量集中到一个或几个计算节点上,就会造成数据倾斜,此时,处理大量数据的少数任务节点会产生难以接受的延迟,严重降低整体任务效率,甚至计算节点中会产生内存溢出错误使整个任务失败。
UV:Unique Visitor,独立访客。
本公开提供的业务处理方法可以应用于安装有业务数据处理系统的终端或者服务器中。终端具体可以是智能手机、台式电脑、平板电脑、笔记本电脑、增强现实(augmentedreality,AR)/虚拟现实(virtual reality,VR)设备、数字助理、智能音箱、智能可穿戴设备等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。
图1是根据一示例性实施例示出的一种业务处理方法的流程图,如图1所示,该方法包括下述步骤S101至S106。
在步骤S101中,获取目标业务的用户数据,所述用户数据包括用户维度标识和目标业务维度标识。
本说明书实施例中,服务器获取目标业务的用户数据,用户数据包括用户维度标识和目标业务维度标识。目标业务可以是根据当前需要进行的用户信息统计任务确定的,以此获取目标业务的用户数据,进而得到目标业务维度下的用户信息。在实际应用中,目标业务可以指示一个业务,也可以指示至少两个业务。目标业务可以是短视频业务、直播业务等。示例性的,目标业务可以指示短视频产品、直播产品。目标业务也可以指示相关产品中的功能模块,比如短视频产品中的直播功能。对于某个程序产品而言,用户访问它便会产生指示该程序产品的用户数据,可以用用户数据中的目标业务维度标识表征该程序产品。因用户登录端的不同,用户数据中的用户维度标识可以指示登录端的标识,比如指示具体互联网协议(IP)地址的标识、指示手机端的标识、指示电脑端的标识、指示网页版的标识、指示客户端版的标识、指示具体客户端版本的标识等等。用户维度标识还可以为指示用户性别的标识、指示用户年龄的标识、指示用户所在地理位置的标识)。根据实际统计的需求,用户维度标识可以不限于以上提及的标识。
在步骤S102中,从多个数据集合中确定出与所述用户维度标识对应的目标数据集合;其中,所述目标数据集合包括一个或多个存储位图,每个所述存储位图指示对应的业务维度标识。
本说明书实施例中,服务器从多个数据集合中确定出与用户维度标识对应的目标数据集合,可以保证为对应同一用户维度标识的用户数据确定相同的数据集合。多个数据集合中的每个数据集合都包括一个或多个存储位图,其中每个存储位图指示对应的业务维度标识。
在一示例性的实施方式中,如图2所示,所述从多个数据集合中确定出与所述用户维度标识对应的目标数据集合,包括以下步骤。
在步骤S201中,根据第一预设规则将所述用户维度标识转化为对应的第一参考数值。
在步骤S202中,对所述第一参考数值与目标数进行取模运算,得到第一取模运算结果;其中,所述目标数指示所述多个数据集合的集合数量。
在步骤S203中,从所述多个数据集合中确定出与所述第一取模运算结果对应的目标数据集合;其中,所述目标数据集合携带的集合序号与所述第一取模运算结果相匹配。
在进行转化前,可以先判断用户维度标识的数据类型是否为数值类型(比如整型),当用户维度标识的数据类型不是数值类型时,根据第一预设规则将用户维度标识转化为对应的第一参考数值。第一预设规则可以是系统预先设置的。利用第一预设规则可以规划转化步骤的执行,保证同一用户维度标识多次转化结果的一致性。当用户维度标识的数据类型为数值类型时,则不用再对其进行转化。对一个第一参考数值与目标数进行取模运算,取模运算的候选范围有目标数个数。比如目标数为256,那么取模运算的候选范围为0-255。相应的,256个数据集合,每个数据集合携带有对应的集合序号,它们的集合序号由0-255。如果第一取模运算结果为101,那么携带的集合序号为101的数据集合为目标数据集合。其中,目标数,也就是多个数据集合的集合数量,可以是系统预先设置的,比如10、256。当然,多个数据集合的集合数量也可以根据需要灵活调整。
比如用户数据1(包括用户维度标识a)、用户数据2(包括用户维度标识a)、用户数据3(包括用户维度标识b)、用户数据4(包括用户维度标识c)和用户数据5(包括用户维度标识c)。由于用户数据1和用户数据2都包括用户维度标识a,可以理解为它们都会被分配至数据集合A。用户数据3包括用户维度标识b,可以理解为它会被分配至数据集合B。由于用户数据4和用户数据5都包括用户维度标识c,可以理解为它们都会被分配至数据集合C。
在实际应用中,用户维度标识可以为用户标识(比如用户ID),目标业务维度标识可以为具体产品的标识(比如产品A的标识)。根据用户维度标识和目标数为用户数据确定目标数据集合,也就是根据用户标识和目标数为用户数据确定目标数据集合,可以理解为将对应同一用户标识的用户数据分配至同一数据集合。若将数据集合视作“桶”,那么按照用户标识和目标数取模对用户数据进行分桶,这样每个桶所对应的用户数据的数据量也较一致,各个桶所对应的用户数据分布较均匀。
利用取模运算可以快速地为用户数据确定目标数据集合,提高了后续进行数据合并的效率。以用户维度标识作为确定目标数据集合的参数,保证为对应同一用户维度标识的用户数据确定相同的数据集合,保证所获取到的多个用户数据能够较均匀的落入多个数据集合里,进而避免受到数据倾斜的影响,这样提高了业务处理的效率以及相关计算资源的利用率。
在一示例性的实施方式中,在所述从多个数据集合中确定出与所述用户维度标识对应的目标数据集合之前,所述方法还包括以下步骤:根据对应的业务维度标识对获取到的多个用户数据进行切分,得到至少两个候选数据集合;计算所述至少两个候选数据集合中每两个候选数据集合对应的数量差值;当存在对应的数量差值大于预设阈值的两个候选数据集合时,触发所述从多个数据集合中确定出与所述用户维度标识对应的目标数据集合的步骤;其中,所述预设阈值为衡量数据分布不均匀的数量指标。
服务器根据业务维度标识切分获取到的多个用户数据,如果切分结果存在数据分布不均匀的情形,说明以业务维度标识作为切分参数时,切分结果所指示的至少两个候选数据集合存在着下述情况:一个或者几个候选数据集合的数据量较大,其他候选数据集合的数据量则较小。
示例性的,首先,根据对应的业务维度标识对获取到的多个用户数据进行切分,得到至少两个候选数据集合。获取到的多个用户数据可以指示不同业务,也可以指示不同用户,多个用户数据中的每个用户数据都包括对应的用户维度标识和对应的业务维度标识。比如获取到的多个用户数据包括用户数据1(包括用户维度标识a和业务维度标识甲)、用户数据2(包括用户维度标识a和业务维度标识乙)、用户数据3(包括用户维度标识b和业务维度标识甲)、用户数据4(包括用户维度标识c和业务维度标识乙)和用户数据5(包括用户维度标识c和业务维度标识丙)。那么候选数据集合甲(对应业务维度标识甲)包括用户数据1、用户数据3,候选数据集合乙(对应业务维度标识乙)包括用户数据2、用户数据4,候选数据集合丙(对应业务维度标识丙)包括用户数据5。
然后,计算至少两个候选数据集合中每两个候选数据集合对应的数量差值;最后,当存在对应的数量差值大于预设阈值的两个候选数据集合时,触发从多个数据集合中确定出与用户维度标识对应的目标数据集合的步骤。比如,根据对应的业务维度标识对获取到的多个用户数据进行切分,得到三个候选数据集合:候选数据集合1-3。候选数据集合1的数据量为1PB,候选数据集合2的数据量为1TB(TeraByte,太字节)候选数据集合3的数据量为2TB。三个候选数据集合每两个候选数据集合对应的数量差值分别是:候选数据集合1与候选数据集合2之间的数量差值(1023TB)、候选数据集合1与候选数据集合3之间的数量差值(1022TB)以及候选数据集合2与候选数据集合3之间的数量差值(1TB)。预设阈值可以是系统预先设置的,比如20TB。当然,预设阈值也可以根据需要灵活调整。此时候选数据集合1与候选数据集合2对应的对应的数量差值大于预设阈值(20TB),候选数据集合1与候选数据集合3对应的对应的数量差值大于预设阈值(20TB),说明切分结果存在数据分布不均匀的情形,那么触发从多个数据集合中确定出与用户维度标识对应的目标数据集合的步骤。当然,与预设阈值进行比较的对象也可以是上述三个数量差值的最大数量差值(1023TB)、平均数量差值(1023TB)或者中位数量差值(1022TB)。
在实际应用中,用户维度标识可以为用户标识,业务维度标识可以为产品标识(比如产品A的标识、产品B的标识和产品C的标识)。以业务维度标识作为切分参数,也就是将来自产品A的用户数据划分到一块,将来自产品B的用户数据划分到一块,以及将来自产品C的用户数据划分到一块。当产品A为热门产品、明星产品时,它的用户量特别大,而作为普通产品的产品B和产品C的用户量相对较少。因为产品A的用户量大,来自产品A的用户数据也特别多,因而数据倾斜严重,分配来对这些数据进行计算的计算实例的计算量也特别大,从而容易因为算不过来导致整个计算任务无法完成或者无法及时完成。以业务维度标识作为切分参数,可以提高确定数据集合的效率。同时,在切分结果存在数据分布不均匀的情形时,及时触发基于用户维度标识确定数据集合的步骤,避免因数据倾斜影响计算任务的完成。在判断切分结果是否存在数据分布不均匀的情形时,也可以根据产品的用户数、用户数据条数来判断,更方便高效。
由于系统中以业务维度标识作为切分参数容易出现数据分布不均匀的情形,进而造成数据倾斜的情况出现。因此,服务器在进行业务处理时,可以直接执行从多个数据集合中确定出与用户维度标识对应的目标数据集合的步骤(略过上述判断切分结果是否结果存在数据分布不均匀的情形的内容)。对于实时接收到的用户数据,服务器可以直接根据用户数据中的用户标识确定目标数据集合。
在步骤S103中,从所述多个存储位图中确定出与所述目标业务维度标识对应的目标存储位图,以及利用所述目标存储位图记录所述用户维度标识。
本说明书实施例中,服务器从多个存储位图中确定出与目标业务维度标识对应的目标存储位图,以及利用目标存储位图记录所述用户维度标识。
服务器根据目标业务维度标识,为用户数据在多个存储位图(对应目标数据集合)中确定出对应的目标存储位图。在数据集合的范畴,存储位图是基于预设的业务维度标识的维度设置的。比如,对于用户数据1(包括用户维度标识a和业务维度标识a),从多个数据集合中确定出与用户维度标识a对应的目标数据集合1,若预设的业务维度标识有业务维度标识a-d,那么目标数据集合1包括4个存储位图:存储位图1(对应业务维度标识a)、存储位图2(对应业务维度标识b)、存储位图3(对应业务维度标识c)和存储位图4(对应业务维度标识d)。相应的,对于用户数据1(包括业务维度标识a),从存储位图1-4中确定出与业务维度标识a对应的存储位图1,进而利用存储位图1记录用户维度标识a。
存储位图(Bitmap)在使用中,可以用其中的每一元素来存放某种状态(比如某个数据是否存在的状态),这样可以节省存储空间。比如待存储数据为32位(比特位),利用位图记录时,只需要对指示该数据的元素进行标注,也就是在指示该数据的元素的一个比特位上标1。相较于32个比特位的占用,位图的使用能够明显的减少对存储空间的占用,尤其对于数据状态不多的大规模数据。
在实际应用中,用户维度标识可以为用户标识(比如用户ID),业务维度标识可以为产品标识(比如产品A的标识、产品B的标识和产品C的标识)。那么在数据集合的范畴,存储位图是基于预设的产品标识的维度设置的。
在一示例性的实施方式中,如图3所示,所述利用所述目标存储位图记录所述用户维度标识,包括以下步骤。
在步骤S301中,根据第二预设规则将所述用户维度标识转化为对应的第二参考数值。
在步骤S302中,对所述第二参考数值与预设数值进行求商运算,得到求商结果;其中,所述预设数值指示所述目标存储位图中每个存储数组中的元素个数。
在步骤S303中,从所述目标存储位图的多个存储数组中确定出与所述求商结果对应的目标存储数组;其中,所述目标存储数组携带的数组序号与所述求商结果相匹配;
在步骤S304中,对所述第二参考数值与所述预设数值进行取模运算,得到第二取模运算结果。
在步骤S305中,根据第二取模运算结果在所述目标存储数组中确定出目标元素;其中,所述目标元素在所述目标存储数组的位置顺序信息与所述第二取模运算结果相匹配。
在步骤S306中,利用所述目标元素记录所述用户维度标识。
如图4所示,存储位图可以包括多个存储数值,每个存储数组携带有数组序号,每个存储数组中的元素个数相同。存储位图可以包括256个存储数组,每个存储数组中的元素个数为16,可以看作存储数组包括16个比特位。由于元素所在比特位的标1或者标0可以表征元素所指示数据的存在与否,那么存储位图可以利用4096(=256*16)个比特位记录8192个待存储数据。
在进行转化前,可以先判断用户维度标识的数据类型是否为数值类型(比如整型),当用户维度标识的数据类型不是数值类型时,根据第二预设规则将用户维度标识转化为对应的第二参考数值。第二预设规则可以是系统预先设置的。利用第二预设规则可以规划转化步骤的执行,保证同一用户维度标识多次转化结果的一致性。当用户维度标识的数据类型为数值类型时,则不用再对其进行转化。需要说明的是,第二预设规则在制定时需要考虑参考数值的范围和存储位图进行状态标记的待记录数据的范围。
对一个第二参考数值与预设数值进行求商运算,比如第二参考数值为1234,预设数值为32,那么求商运算的结果为38.5625。因为存储位图中存储数组的个数为256,每个存储数组携带有对应的数组序号,它们的数组序号由0-255,那么携带的数组序号为37的存储数组为目标存储数组。对第二参考数值与预设数值进行取模运算,取模运算的候选范围为0-31。如果第二取模运算结果为20,那么将在目标存储数组的位置顺序信息指示21的元素作为目标元素。利用求商运算和取模运算可以快速地为用户维度标识确定目标存储数组、定位目标存储数值中的目标元素,高效且准确。作为去重对象的用户维度标识记录于目标元素中,后续得到用户信息所涉及的合并计数等操作为位运算,保证了较高的业务处理效率。
进一步的,所述利用所述目标元素记录所述用户维度标识,包括以下步骤:确定表征所述用户维度标识的特征值;确定所述目标元素的当前存储状态;当所述目标元素的当前存储状态为空时,将所述特征值写入所述目标元素中;当所述目标元素的当前存储状态不为空时,保持所述目标元素的当前存储状态不变。
利用目标元素记录用户维度标识时,考虑到业务处理中存在的去重任务,可以确定表征用户维度标识的特征值为1,然后检查目标元素的当前存储状态是否为空,或者检查目标元素的一个比特位上是否有标1。若目标元素的当前存储状态不为空(未标0,标1),说明该用户维度标识已被记录过,不用再记录重复的用户维度标识了,保持所目标元素的当前存储状态不变。若目标元素的当前存储状态不为空(未标1,标的0),说明该用户维度标识未被记录过,可以进行标1操作以记录上,也即将特征值写入所述目标元素中,在目标元素的一个比特位上标1。利用目标元素来记录用户维度标识的存在状态,对于该状态的读取以及记录操作便捷且耗时少,实现了以更直观的判断标准去除重复的待存储数据,保证去重准确度的同时减少计算资源的消耗。目标元素所属的存储位图可以于内存中使用,不需要借助外部存储占用额外的存储空间,且存储空间占用少。
在实际应用中,用户维度标识可以为用户标识(比如用户ID),业务维度标识可以为产品标识(比如产品A的标识、产品B的标识和产品C的标识)。比如按照用户标识和目标个数取模对业务数据进行分桶,分至了256个桶。对于每个桶中的业务数据,先基于产品标识确定存储位图,再将用户标识记录于该存储位图中,相当于进行了桶内产品标识维度下的用户去重。一个用户ID可以只需要一个二进制位来存储,大大节省了存储空间。
在步骤S104中,合并所述多个数据集合中指示所述目标业务维度标识的存储位图,得到目标业务维度下的用户信息。
本说明书实施例中,服务器合并多个数据集合中指示目标业务维度标识的存储位图,得到目标业务维度下的用户信息。可以利用一个数据集合中的存储位图来实现业务维度下的用户维度标识去重。合并不同数据集合中指示同一业务维度标识的存储位图,以实现针对不同数据集合的同一业务维度下的用户维度标识去重。去重的原则是某一用户维度标识一旦出现或者出现次数大于等于2都计1,否则计0。存储位图的合并涉及二进制位图或运算,该运算速度快,从而得到各业务维度下的用户信息的速度也快。
在一示例性的实施方式中,如图5所示,所述方法还包括以下步骤。
在步骤S501中,确定落入当前时间的时间窗口的至少一个历史时间。
在步骤S502中,获取每个所述历史时间对应的目标业务维度下的用户信息,得到历史用户信息。
在步骤S503中,对所述当前时间对应的目标业务维度下的用户信息和所述历史用户信息进行用户维度的去重处理,得到当前窗口对应的目标业务维度下的用户信息。
比如预设的时间窗口为1天,预设的时间(小于该预设的时间窗口)为1小时,那么当前时间指示最近1小时(3号22:00-23:00),当前时间的时间窗口指示最近1天也即2号23:00-3号23:00,落入当前时间的时间窗口的至少一个历史时间指示除当前时间以外的最近23*1小时(2号23:00-3号22:00中)。
有属于当前时间的多个用户数据,服务器可以合并不同数据集合中的相关存储位图(指示同一业务维度标识),可以得到属于当前时间的各业务维度下用户信息。由此得到属于当前时间的各业务维度下的用户信息,具有较好的时效性,该时效性可以达到秒级、毫秒级的程度。服务器也针对属于历史时间的多个用户数据进行过上述处理,保存有属于历史时间的各业务维度下用户信息。数据集合内存储位图基于业务标识的维度设置,可以方便地进行不同数据集合间存储位图的合并,以提高相关用户去重任务的处理效率。利用上述具有较好时效性的用户信息(对应当前时间对应的目标业务维度下的用户信息)和同一时间窗口的历史用户信息,利用这些数据可以进行同一时间窗口内的数据实时对比和追踪,比如比较属于当天晚间时段的的某业务维度下的用户信息与当天早间时段的的同一业务维度下的用户信息。
在获取每个历史时间对应的目标业务维度下的用户信息之后,可以将其作为历史用户信息,进而对当前时间对应的目标业务维度下的用户信息和历史用户信息进行用户维度的去重处理,以得到当前窗口对应的目标业务维度下的用户信息。利用这些数据可以进行不同时间窗口间的数据实时对比和追踪。比如比较属于当天的某业务维度下的用户信息与前一天的同一业务维度下的用户信息。进一步的,可以比较属于当天午间时段的的某业务维度下的用户信息与前一天午间时段的的同一业务维度下的用户信息。
在实际应用中,用户维度标识可以为用户标识(比如用户ID),业务维度标识可以为产品标识(比如产品A的标识、产品B的标识和产品C的标识)。针对属于第一时间窗口(比如1小时、5分钟、1分钟、1秒)的用户数据,进行桶间产品维度下的用户去重,可以得到相应的时间窗口内UV的有效数量(也即小时间窗口的用户去重结果)。针对属于第二时间窗口(大于第一时间窗口,比如1天)的用户数据,基于多个小时间窗口的用户去重结果继续进行用户去重,反映了相应的时间窗口内UV的有效数量(也即大时间窗口的用户去重结果)。
以第一时间窗口为1秒、第二时间窗口为1天为例,服务器在进行业务处理时,根据接收到用户数据的时间戳确定该用户数据所属的具体第一时间窗口(比如是第1秒还是第3秒),当然也可以根据用户数据的发送时间戳来确定。服务器根据用户标识为用户数据分桶,对应同一用户标识的用户数据会被分配至同一个桶中。同一个桶中的位图的设置除了基于产品标识的维度,还基于第一时间窗口的时间维度。也即,某个桶内可以存在对应第1秒产品A的位图、对应第2秒产品A的位图以及对应第3秒产品A的位图,这里的每个位图可以指示桶内对应每秒内产品A的活跃用户标识,合并这三个位图可以得到桶内前3秒产品A的位图,也即桶内前3秒产品A的活跃用户标识。通过与其他桶内位图的合并,可以得到对应每秒内产品A的活跃用户标识,以及前3秒产品A的活跃用户标识。相应的,可以对第二时间窗口内各桶中记录用户标识的位图进行聚合,从而利用聚合得到的一个位图确定出某产品的日活数据。
上述实施例中提供的业务处理方法,通过获取目标业务的用户数据,然后从多个数据集合中确定出与用户数据的用户维度标识对应的目标数据集合;再从目标数据集合的多个存储位图中确定出与用户数据的目标业务维度标识对应的目标存储位图,以及利用目标存储位图记录所述用户维度标识;从而合并多个数据集合中指示目标业务维度标识的存储位图,得到目标业务维度下的用户信息。本公开利用存储位图对用户数据的用户维度标识进行记录,可以减少存储资源的占用。在对用户数据进行相关业务维度的统计时,合并相关存储位图可以使得计算效率更高、可以保证计算的准确性。这样能够实现对海量数据进行相关统计的实时性和准确度要求。数据集合内存储位图基于业务标识的维度设置,可以方便的进行不同数据集合间存储位图的合并以提高相关用户去重任务的处理效率。上述实施例中提供的业务数据处理方法可以应用于实时去重计数中,尤其对于高并发、数据倾斜严重的场景,可以在节省存储空间(且不借助外部存储)、提升计算速度的同时保证计算的准确性。
图6是根据一示例性实施例示出的一种业务数据处理装置框图。参照图6,该装置包括用户数据获取单元610、目标数据集合确定单元620、记录单元630和用户信息得到单元640。
该用户数据获取单元610被配置为执行获取目标业务的用户数据,所述用户数据包括用户维度标识和目标业务维度标识;
该目标数据集合确定单元620被配置为执行从多个数据集合中确定出与所述用户维度标识对应的目标数据集合;其中,所述目标数据集合包括一个或多个存储位图,每个所述存储位图指示对应的业务维度标识;
该记录单元630被配置为执行从所述多个存储位图中确定出与所述目标业务维度标识对应的目标存储位图,以及利用所述目标存储位图记录所述用户维度标识;
该用户信息得到单元640被配置为执行合并所述多个数据集合中指示所述目标业务维度标识的存储位图,得到目标业务维度下的用户信息。
在一示例性的实施方式中,所述装置还包括:
切分单元,被配置为执行根据对应的业务维度标识对获取到的多个用户数据进行切分,得到至少两个候选数据集合;
数量差值计算单元,被配置为执行计算所述至少两个候选数据集合中每两个候选数据集合对应的数量差值;
触发单元,被配置为执行当存在对应的数量差值大于预设阈值的两个候选数据集合时,触发所述从多个数据集合中确定出与所述用户维度标识对应的目标数据集合的步骤;其中,所述预设阈值为衡量数据分布不均匀的数量指标。
在一示例性的实施方式中,所述目标数据集合确定单元包括:
第一转化单元,被配置为执行根据第一预设规则将所述用户维度标识转化为对应的第一参考数值;
第一取模运算单元,被配置为执行对所述第一参考数值与目标数进行取模运算,得到第一取模运算结果;其中,所述目标数指示所述多个数据集合的集合数量;
目标数据集合确定子单元,被配置为执行从所述多个数据集合中确定出与所述第一取模运算结果对应的目标数据集合;其中,所述目标数据集合携带的集合序号与所述第一取模运算结果相匹配。
在一示例性的实施方式中,所述记录单元包括:
第二转化单元,被配置为执行根据第二预设规则将所述用户维度标识转化为对应的第二参考数值;
求商运算单元,被配置为执行对所述第二参考数值与预设数值进行求商运算,得到求商结果;其中,所述预设数值指示所述目标存储位图中每个存储数组中的元素个数;
目标数据存储数组确定单元,被配置为执行从所述目标存储位图的多个存储数组中确定出与所述求商结果对应的目标存储数组;其中,所述目标存储数组携带的数组序号与所述求商结果相匹配;
第二取模运算单元,被配置为执行对所述第二参考数值与所述预设数值进行取模运算,得到第二取模运算结果;
目标元素确定单元,被配置为执行根据第二取模运算结果在所述目标存储数组中确定出目标元素;其中,所述目标元素在所述目标存储数组的位置顺序信息与所述第二取模运算结果相匹配;
记录子单元,被配置为执行利用所述目标元素记录所述用户维度标识。
在一示例性的实施方式中,所述记录子单元包括:
特征值确定单元,被配置为执行确定表征所述用户维度标识的特征值;
状态确定单元,被配置为执行确定所述目标元素的当前存储状态;
写入单元,被配置为执行当所述目标元素的当前存储状态为空时,将所述特征值写入所述目标元素中;
保持单元,被配置为执行当所述目标元素的当前存储状态不为空时,保持所述目标元素的当前存储状态不变。
在一示例性的实施方式中,所述装置还包括:
历史时间确定单元,被配置为执行确定落入当前时间的时间窗口的至少一个历史时间;
历史用户信息得到单元,被配置为执行获取每个所述历史时间对应的目标业务维度下的用户信息,得到历史用户信息;
去重单元,被配置为执行对所述当前时间对应的目标业务维度下的用户信息和所述历史用户信息进行用户维度的去重处理,得到当前窗口对应的目标业务维度下的用户信息。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,还提供了一种业务数据处理集群,该集群部署有预设的数据处理框架,所述预设的数据处理框架支持由结构化查询语言编写的指令;其中,接收用于触发业务处理的所述指令,使得所述集群中任一服务器能够执行上述实施例中任一业务处理方法的步骤。
预设的数据处理框架可以选用Flink(一种开源流处理框架),Flink作为实时计算框架具有高吞吐,低延迟的实时处理能力。结构化查询语言(SQL,Structured QueryLanguage)是大数据领域最广泛使用的开发语言,极大的降低了实时开发的门槛。用户(包括工作人员)可以编写简单的SQL语句,不用依赖再Flink提供的编辑器,可以在指令编写环节与Flink解耦,从而借助第三方平台实现更方便的指令编写。
业务数据处理集群可以是由多个物理服务器构成的,也可以是由多个云服务器构成的,也可以是由多个物理服务器和云服务器共同构成的。示例性的,计算实例可以指示业务数据处理集群中一服务器上运行的程序,可以由计算实例响应指令以实现上述实施例中任一业务处理方法的步骤。在实际应用中,对于第一类计算任务(涉及用户数据的获取和目标数据集合的确定,结合前述步骤S101-S102的记载)可以由第一类计算实例来负责;针对每个数据集合的第二类计算任务(结合前述步骤S103的记载)可以由对应的第二类计算实例来负责;对于第三类计算任务(涉及用户信息的得到,结合前述步骤S104的记载)可以由第三类计算实例来负责。这里计算实例与计算任务间的关系可以是预先设置的,也可以根据实际处理情况进行灵活调配(比如随机分配)。数据倾斜严重时通过分桶均分分配计算任务到各计算实例,计算实例负载均衡,高效计算,避免Flink的上下游任务间的反压。实际测试显示上述实施例中提供的业务数据处理集群可支持每秒千万级的数据(消息)量。
在示例性实施例中,还提供了一种电子设备,包括处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行存储器上所存放的指令时,实现上述实施例中任一业务处理方法的步骤。
该电子设备可以终端、服务器或者类似的运算装置,以该电子设备是服务器为例,图8是根据一示例性实施例示出的一种用于业务数据处理的电子设备的框图,该电子设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)810(处理器810可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器830,一个或一个以上存储应用程序823或数据822的存储介质820(例如一个或一个以上海量存储设备)。其中,存储器830和存储介质820可以是短暂存储或持久存储。存储在存储介质820的程序可以包括一个或一个以上模块,每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器810可以设置为与存储介质820通信,在电子设备800上执行存储介质820中的一系列指令操作。电子设备800还可以包括一个或一个以上电源860,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口840,和/或,一个或一个以上操作系统821,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口840可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备800的通信供应商提供的无线网络。在一个实例中,输入输出接口840包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个示例性实施例中,输入输出接口80可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子设备的结构造成限定。例如,电子设备800还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
在示例性实施例中,还提供了一种存储介质,当存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例中任一业务处理方法的步骤。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述任一种实施方式中提供的业务处理方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (13)
1.一种业务处理方法,其特征在于,所述方法包括:
获取目标业务的用户数据,所述用户数据包括用户维度标识和目标业务维度标识;
从多个数据集合中确定出与所述用户维度标识对应的目标数据集合;其中,所述目标数据集合包括一个或多个存储位图,每个所述存储位图指示对应的业务维度标识;
从所述多个存储位图中确定出与所述目标业务维度标识对应的目标存储位图,以及利用所述目标存储位图记录所述用户维度标识;
合并所述多个数据集合中指示所述目标业务维度标识的存储位图,得到目标业务维度下的用户信息;
其中,在所述从多个数据集合中确定出与所述用户维度标识对应的目标数据集合之前,所述方法还包括:根据对应的业务维度标识对获取到的多个用户数据进行切分,得到至少两个候选数据集合;计算所述至少两个候选数据集合中每两个候选数据集合对应的数量差值;当存在对应的数量差值大于预设阈值的两个候选数据集合时,触发所述从多个数据集合中确定出与所述用户维度标识对应的目标数据集合的步骤;其中,所述预设阈值为衡量数据分布不均匀的数量指标。
2.根据权利要求1所述的方法,其特征在于,所述从多个数据集合中确定出与所述用户维度标识对应的目标数据集合,包括:
根据第一预设规则将所述用户维度标识转化为对应的第一参考数值;
对所述第一参考数值与目标数进行取模运算,得到第一取模运算结果;其中,所述目标数指示所述多个数据集合的集合数量;
从所述多个数据集合中确定出与所述第一取模运算结果对应的目标数据集合;其中,所述目标数据集合携带的集合序号与所述第一取模运算结果相匹配。
3.根据权利要求1所述的方法,其特征在于,所述利用所述目标存储位图记录所述用户维度标识,包括:
根据第二预设规则将所述用户维度标识转化为对应的第二参考数值;
对所述第二参考数值与预设数值进行求商运算,得到求商结果;其中,所述预设数值指示所述目标存储位图中每个存储数组中的元素个数;
从所述目标存储位图的多个存储数组中确定出与所述求商结果对应的目标存储数组;其中,所述目标存储数组携带的数组序号与所述求商结果相匹配;
对所述第二参考数值与所述预设数值进行取模运算,得到第二取模运算结果;
根据第二取模运算结果在所述目标存储数组中确定出目标元素;其中,所述目标元素在所述目标存储数组的位置顺序信息与所述第二取模运算结果相匹配;
利用所述目标元素记录所述用户维度标识。
4.根据权利要求3所述的方法,其特征在于,所述利用所述目标元素记录所述用户维度标识,包括:
确定表征所述用户维度标识的特征值;
确定所述目标元素的当前存储状态;
当所述目标元素的当前存储状态为空时,将所述特征值写入所述目标元素中;
当所述目标元素的当前存储状态不为空时,保持所述目标元素的当前存储状态不变。
5.根据权利要求1所述的方法,其特征在于,所述合并所述多个数据集合中指示所述目标业务维度标识的存储位图,得到目标业务维度下的用户信息之后,所述方法还包括:
确定落入当前时间的时间窗口的至少一个历史时间;
获取每个所述历史时间对应的目标业务维度下的用户信息,得到历史用户信息;
对所述当前时间对应的目标业务维度下的用户信息和所述历史用户信息进行用户维度的去重处理,得到当前窗口对应的目标业务维度下的用户信息。
6.一种业务处理装置,其特征在于,所述装置包括:
用户数据获取单元,被配置为执行获取目标业务的用户数据,所述用户数据包括用户维度标识和目标业务维度标识;
目标数据集合确定单元,被配置为执行从多个数据集合中确定出与所述用户维度标识对应的目标数据集合;其中,所述目标数据集合包括一个或多个存储位图,每个所述存储位图指示对应的业务维度标识;
记录单元,被配置为执行从所述多个存储位图中确定出与所述目标业务维度标识对应的目标存储位图,以及利用所述目标存储位图记录所述用户维度标识;
用户信息得到单元,被配置为执行合并所述多个数据集合中指示所述目标业务维度标识的存储位图,得到目标业务维度下的用户信息;
其中,所述装置还包括:切分单元,被配置为执行根据对应的业务维度标识对获取到的多个用户数据进行切分,得到至少两个候选数据集合;数量差值计算单元,被配置为执行计算所述至少两个候选数据集合中每两个候选数据集合对应的数量差值;触发单元,被配置为执行当存在对应的数量差值大于预设阈值的两个候选数据集合时,触发所述从多个数据集合中确定出与所述用户维度标识对应的目标数据集合的步骤;其中,所述预设阈值为衡量数据分布不均匀的数量指标。
7.根据权利要求6所述的装置,其特征在于,所述目标数据集合确定单元包括:
第一转化单元,被配置为执行根据第一预设规则将所述用户维度标识转化为对应的第一参考数值;
第一取模运算单元,被配置为执行对所述第一参考数值与目标数进行取模运算,得到第一取模运算结果;其中,所述目标数指示所述多个数据集合的集合数量;
目标数据集合确定子单元,被配置为执行从所述多个数据集合中确定出与所述第一取模运算结果对应的目标数据集合;其中,所述目标数据集合携带的集合序号与所述第一取模运算结果相匹配。
8.根据权利要求6所述的装置,其特征在于,所述记录单元包括:
第二转化单元,被配置为执行根据第二预设规则将所述用户维度标识转化为对应的第二参考数值;
求商运算单元,被配置为执行对所述第二参考数值与预设数值进行求商运算,得到求商结果;其中,所述预设数值指示所述目标存储位图中每个存储数组中的元素个数;
目标数据存储数组确定单元,被配置为执行从所述目标存储位图的多个存储数组中确定出与所述求商结果对应的目标存储数组;其中,所述目标存储数组携带的数组序号与所述求商结果相匹配;
第二取模运算单元,被配置为执行对所述第二参考数值与所述预设数值进行取模运算,得到第二取模运算结果;
目标元素确定单元,被配置为执行根据第二取模运算结果在所述目标存储数组中确定出目标元素;其中,所述目标元素在所述目标存储数组的位置顺序信息与所述第二取模运算结果相匹配;
记录子单元,被配置为执行利用所述目标元素记录所述用户维度标识。
9.根据权利要求8所述的装置,其特征在于,所述记录子单元包括:
特征值确定单元,被配置为执行确定表征所述用户维度标识的特征值;
状态确定单元,被配置为执行确定所述目标元素的当前存储状态;
写入单元,被配置为执行当所述目标元素的当前存储状态为空时,将所述特征值写入所述目标元素中;
保持单元,被配置为执行当所述目标元素的当前存储状态不为空时,保持所述目标元素的当前存储状态不变。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
历史时间确定单元,被配置为执行确定落入当前时间的时间窗口的至少一个历史时间;
历史用户信息得到单元,被配置为执行获取每个所述历史时间对应的目标业务维度下的用户信息,得到历史用户信息;
去重单元,被配置为执行对所述当前时间对应的目标业务维度下的用户信息和所述历史用户信息进行用户维度的去重处理,得到当前窗口对应的目标业务维度下的用户信息。
11.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至5中任一项所述的业务处理方法。
12.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至5中任一项所述的业务处理方法。
13.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1-5任一项所述的业务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110706507.9A CN113468226B (zh) | 2021-06-24 | 2021-06-24 | 一种业务处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110706507.9A CN113468226B (zh) | 2021-06-24 | 2021-06-24 | 一种业务处理方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113468226A CN113468226A (zh) | 2021-10-01 |
CN113468226B true CN113468226B (zh) | 2024-05-28 |
Family
ID=77872844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110706507.9A Active CN113468226B (zh) | 2021-06-24 | 2021-06-24 | 一种业务处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468226B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114238312A (zh) * | 2021-11-26 | 2022-03-25 | 上海维智卓新信息科技有限公司 | 基于位图计算的用户画像确定方法及装置 |
CN114356972B (zh) * | 2021-12-03 | 2022-08-23 | 四川科瑞软件有限责任公司 | 一种数据处理方法、基于事件时间的检索方法和装置 |
CN114461645A (zh) * | 2022-02-10 | 2022-05-10 | 浙江网商银行股份有限公司 | 目标对象确定方法以及装置 |
CN117520410B (zh) * | 2023-11-03 | 2024-08-16 | 华青融天(北京)软件股份有限公司 | 业务数据处理方法、装置、电子设备和计算机可读介质 |
CN118467590A (zh) * | 2024-07-10 | 2024-08-09 | 天津金城银行股份有限公司 | 一种数据去重方法、装置、终端及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551826A (zh) * | 2009-05-19 | 2009-10-07 | 成都市华为赛门铁克科技有限公司 | 数据检索方法、装置及其系统 |
CN108415952A (zh) * | 2018-02-02 | 2018-08-17 | 北京腾云天下科技有限公司 | 用户数据存储方法、标签计算方法及计算设备 |
CN109800225A (zh) * | 2018-12-24 | 2019-05-24 | 北京奇艺世纪科技有限公司 | 业务指标的获取方法、装置、服务器及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11256792B2 (en) * | 2014-08-28 | 2022-02-22 | Facetec, Inc. | Method and apparatus for creation and use of digital identification |
-
2021
- 2021-06-24 CN CN202110706507.9A patent/CN113468226B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551826A (zh) * | 2009-05-19 | 2009-10-07 | 成都市华为赛门铁克科技有限公司 | 数据检索方法、装置及其系统 |
CN108415952A (zh) * | 2018-02-02 | 2018-08-17 | 北京腾云天下科技有限公司 | 用户数据存储方法、标签计算方法及计算设备 |
CN109800225A (zh) * | 2018-12-24 | 2019-05-24 | 北京奇艺世纪科技有限公司 | 业务指标的获取方法、装置、服务器及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113468226A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113468226B (zh) | 一种业务处理方法、装置、电子设备和存储介质 | |
CN107807796B (zh) | 一种基于超融合存储系统的数据分层方法、终端及系统 | |
US8504556B1 (en) | System and method for diminishing workload imbalance across multiple database systems | |
CN110321273B (zh) | 一种业务统计方法及装置 | |
CN107729219B (zh) | 基于超融合存储系统的资源监控方法、装置及终端 | |
CN110493065B (zh) | 一种云中心运维的告警关联度分析方法及系统 | |
CN111339073A (zh) | 实时数据处理方法、装置、电子设备及可读存储介质 | |
US20210365421A1 (en) | Data analysis method, computer device and storage medium | |
CN107026881B (zh) | 业务数据的处理方法、装置及系统 | |
CN110019367B (zh) | 一种统计数据特征的方法和装置 | |
US20190034228A1 (en) | Method and apparatus for task scheduling | |
CN107016115B (zh) | 数据导出方法、装置、计算机可读存储介质及电子设备 | |
CN109960612B (zh) | 一种确定数据存储占比的方法、装置及服务器 | |
CN107818116B (zh) | 用于确定用户行为区域位置信息的方法与设备 | |
CN112328688B (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
US12072892B2 (en) | Data ingestion with spatial and temporal locality | |
CN113190426B (zh) | 一种大数据评分系统稳定性监控方法 | |
CN110807050B (zh) | 性能分析方法、装置、计算机设备及存储介质 | |
CN111275495A (zh) | 基于区块链的广告投放监测方法、装置及系统 | |
CN117633116A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN112100177A (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
US10983888B1 (en) | System and method for generating dynamic sparse exponential histograms | |
CN113238919B (zh) | 一种用户访问数的统计方法、装置及系统 | |
CN115905151A (zh) | 基于备份日志的流转信息查询方法、系统和装置 | |
CN112698988B (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 |