CN110955685A - 一种大数据基数估计方法、系统、服务器和存储介质 - Google Patents
一种大数据基数估计方法、系统、服务器和存储介质 Download PDFInfo
- Publication number
- CN110955685A CN110955685A CN201911200996.XA CN201911200996A CN110955685A CN 110955685 A CN110955685 A CN 110955685A CN 201911200996 A CN201911200996 A CN 201911200996A CN 110955685 A CN110955685 A CN 110955685A
- Authority
- CN
- China
- Prior art keywords
- data
- aggregation
- estimation
- generate
- data set
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000004220 aggregation Methods 0.000 claims abstract description 55
- 230000002776 aggregation Effects 0.000 claims abstract description 53
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 27
- 230000006870 function Effects 0.000 claims description 17
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 230000004931 aggregating effect Effects 0.000 claims 2
- 238000004364 calculation method Methods 0.000 description 10
- 238000006116 polymerization reaction Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- 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/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种大数据基数估计方法,包括:对多个源数据分别进行第一聚合,生成多个第一数据集;对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集;使用HLL算法对所述第二数据集进行基数估计以得到基数值。本发明的基数估计方法使基数估计能够适应大数据环境,节省存储空间,匹配不同计数的查询需求。
Description
技术领域
本发明实施例涉及大数据计算技术领域,尤其涉及一种大数据基数估计方法、系统、服务器和存储介质。
背景技术
基数是指一个集合中,不同的数的个数,基数估计是对集合不同的数的个数进行计算。例如,一个集合为{0,1,2,2,4,5},其基数是5,而个数是6。因为1重复出现了两次,基数是去重统计,基数估计是估计一个集合中不同的数的个数,不是数据总量的估计,也不是基数的精确计算。而是用概率算法的思想,来用低空间和时间成本,以一个很低的误差度来估计数据的基数。
当前大数据时代可把大数据分成两种:批式大数据和流式大数据。如果把数据当成水库的话,水库里的水就是批式大数据,进来的水就是流式大数据。流式大数据指以数据流的方式到达并实时写入到存储管理系统中的数据源,也称FastData。其具有高吞吐率、体量巨大的特点,而且数据规模与数据值范围往往不可预知。基数(cardinality)是指一个集合(允许存在重复元素,与集合论对集合严格的定义略有不同)中不同元素的个数。精确的基数计数在面对大数据场景时往往力不从心,因此如何在误差可控的情况下对基数进行估计就显得十分重要。
在大数据背景下,数据容量越来越大。在海量数据情况下做基数估计,传统的方式已经很难达到工程上的需求。过大的数据量无论是在存储还是在查询方面都存在巨大的挑战,无论我们是用位存储还是树结构存储等方式来优化,都需要消耗大量存储空间,同时不够准确,无法满足大数据的基数估计需求。
发明内容
本发明提供一种大数据基数估计方法、系统、服务器和存储介质,以使基数估计能够适应大数据环境,匹配不同计数的查询需求。
第一方面,本发明实施例提出一种大数据基数估计方法,包括:
对多个源数据分别进行第一聚合,生成多个第一数据集;
对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集;
使用HLL算法对所述第二数据集进行基数估计以得到基数值。
第二方面,本发明实施例还提供了一种大数据基数估计系统,包括:
第一聚合模块,用于对多个源数据分别进行第一聚合,生成多个第一数据集;
第二聚合模块,用于对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集;
基数估计模块,用于使用HLL算法对所述第二数据集进行基数估计以得到基数值。
第三方面,本发明实施例还提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如上述任一所述的大数据基数估计方法。
第四方面,本发明实施例还提供了一种终端可读存储介质,其上存储有程序,所述程序被处理器执行时能够实现如上述任一所述的大数据基数估计方法。
本发明通过在大数据背景下使用HLL算法,使基数估计能够适应大数据环境,节省存储空间,匹配不同计数的查询需求。
附图说明
图1是本发明实施例一中的一种大数据基数估计方法流程图。
图2是本发明实施例二中的一种大数据基数估计方法流程图。
图3是本发明实施例三中的一种大数据基数估计方法流程图。
图4是本发明实施例四中的一种大数据基数估计系统模块图。
图5是本发明实施例四替代实施例中的一种大数据基数估计系统模块图。
图6是本发明实施例五中的服务器结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,第一数据集可以为第二数据集,类似地,第二数据集可以为第一数据集。第一数据集和第二数据集都是基数估计过程中使用的数据集,但其不是同一数据集。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”、“批量”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在下述实施例中提及的专有名词含义如下:
基数:基数指的是一个可重复集合中不重复元素的个数。基数计算是指给定一个含有重复元素的有限集合,计算其不重复元素的个数。简单来说就是各种UV的计算,即独立IP的访客UniqueVistor。一般地,我们可以用两个数值标准来统计访问某网站的访客,即“访问次数”和“独立访客(问)数”,访问次数和独立访客数是两个不同的概念。基数估计常见的实现方式为Hash集合结合计数或者BitMap结合计数。
基数估计算法:基数估计是一类概率算法,可以在允许一定误差的前提下以远低于精确计算的时间和空间消耗对基数进行估计,其特点是:允许有误差,基数估计过程的时间复杂度和空间复杂度仅与误差和基数上限有关,易于合并。
实施例一
如图1所示,本实施例提供了一种大数据基数估计方法,在不直接存储大数据的前提下,对数据基数进行估计,包括如下步骤:
S101、对多个源数据分别进行第一聚合,生成多个第一数据集。
在大数据背景下,数据来源可能包括多个节点,在本实施例中,示例性地,获取10个节点的10个源数据,对每个源数据进行第一聚合。具体地,第一聚合包括:获取数据源的最大值,获取数据源的数据行数。
在本实施例中,数据聚合是指合并来自不同数据源的数据,在该步骤中,示例性地,从十个数据源中获取十个源数据集合,对每一个数据源进行预聚合。聚合可以在查询、分析进行之前完成,预聚合过程可以创建生成预聚合表或聚合表,作为提取、转换和加载过程的一部分,方便后续的重聚合、基数估计等操作。示例性地,如果预聚合的数据源为每月销售数额,则在预聚合时生成带有销售数据与月份的聚合报表。预聚合过程消除了运行时对来自大的、较低层系的事实表中的许多列数据的读、排序和计算的操作,提高了运算效率。该步骤执行后生成与数据源数量对应数目的第一数据集。
其中,可选地,第一数据集及下述第二数据集在Flink平台进行处理。Flink是一个针对流数据和批数据的分布式处理引擎,所要处理的主要场景就是流数据,在实际操作中,Flink可以支持本地的快速迭代,以及一些环形的迭代任务,把所有任务当成流来处理,这也是其最大的特点。具体有三个用途:持续的在应用程序和系统间移动数据;聚合并处理时间;在本地维持应用程序的状态。
Flink是个分布式流处理开源框架,即使源数据是无序的或者晚到达的数据,也能保持结果准确性,有状态并且容错,并可以保持exactly-once,即每条数据严格只处理一次,可以无缝的从失败中恢复,同时可以适应分布式系统。Flink是一个开源的分布式流计算和批处理平台,基于统一的流式执行模型,将批处理当作特殊的流计算,从而将流计算和批处理统一起来,避免了离线计算和实时计算同一套逻辑实现两次的负担,具有高吞吐、低延迟、高性能的特点。
S102、对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集。
对上述生成的预聚合结果,即第一数据集进行第二聚合。该步骤中的第二聚合指的是重聚合。在该步骤中,重聚合的次数基于数据估计的精度确定。在本实施例中,示例性地,预设聚合次数为两次。
S103、使用HLL算法对所述第二数据集进行基数估计以得到基数值。
该步骤中,通过HLL算法进行基数估计以得到基数值。HLL算法即为hyperLogLog算法,Loglog是一种估算基数的方法,其以基数统计精度为牺牲,换来很少的内存消耗,在实际操作中,1亿条数据仅需1K内存,相比于B数、bitmap等其他基数计数方法,极大节省了存储空间,同时能够适用于数据量较大不需要精确计数、不追求绝对准确的基数计数场景,在节省存储空间的同时将误差控制在一定范围内。
本实施例通过在大数据背景下使用HLL算法,使基数估计能够适应大数据环境,节省存储空间。
实施例二
如图2所示,本实施例提供了一种大数据基数估计方法,具体步骤如下:
S201、判断所述源数据是否满足预设规则。
该步骤中,根据所要估计的数据类型,判断获取对应的源数据是否满足预设规则。
S202、若满足,则获取所述源数据。
本实施例中的基数估计应用于分布式背景下,因此该步骤采用一个中心化的数据库系统用于存储事务性数据,应用程序依靠数据库系统实现,随着分布式系统的发展,开始出现了以数据流为基础的架构。以流为基础的架构设计让数据记录持续的从数据源流向应用程序,并在各个应用程序之间持续流动,没有数据库来集中存储全局状态数据。
若满足预设规则,则获取所述源数据并存储,若不满足,则执行步骤S203。
S203、若不满足,则不获取所述源数据。
S204、对多个源数据分别进行第一聚合,生成多个第一数据集。
S2051、获取所述源数据的日志信息。
基数计数是一种常见的计算场景,它是对一个可重复集合中不重复元素个数的统计,实际应用中可以用作计算各类指标的基数,例如在电子商务领域,可以计算整个网站当天的独立访客数和浏览商品种类数。本发明实施例中以此举例说明具体计算过程。该步骤中,源数据一般是指从PC端或移动终端抓取的目标电商网站的访问数据日志。
S2052、基于所述日志信息确定指标信息和查询精度。
该步骤中,指标信息是用户ID和访问商品种类数,指标名称对应的指标值分别是用户设备的UUID和访问的商品的SKUID。查询精度一般是指大数据背景下获取的数据的量的大小,由于HLL算法预估基数在基数较大时精度更高,因此在获取日志信息时需要确认获取的大数据的量是否满足适合HLL算法精度需求的数量。
S2053、基于所述指标信息,确定所述第二聚合的第二聚合函数。
S2054、基于所述查询精度,确定所述第二聚合的所述预设次数。
该步骤中,多次聚合的目的是使源数据多个源数据合并得到的数据集能够适应需要查询的指标信息,示例性地,查询的是独立访客数,或查询的是商品种类总数等。该步骤的预设次数可以在2~10次之间,根据需要进行确定。
确定查询精度后,优选地,还增加了如下步骤:判断所述指标信息是否格式异常,若异常,则删除所述指标信息。
在该步骤中,以估计某电商网站一天内的独立访客和商品种类数量为例,对获取的指标信息进行业务校验:当存在日志中没有对应的UUID或SKUID或者获取的UUID、SKUID格式不正确等情况时,则删除异常格式的数据。最后将组成[业务ID=ID值,指标名称=指标值],例如[业务ID=日志所产生时间,用户ID=UUID]和/或[业务ID=日志所产生时间,浏览商品种类数=SKUID]的数据保留,以进行下一步的计算。
S2055、使用确定的所述第二聚合函数对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集。
S206、使用HLL算法对所述第二数据集进行基数估计以得到基数值。
本实施例基于数据查询需求确定第二聚合的聚合函数和聚合次数,以生成一个第二数据集,使基数估计过程更有针对性,能够适应大数据环境,匹配不同计数的查询需求。
实施例三
如图3所示,本实施例提供了一种大数据基数估计方法,在上述实施例的基础上增加了HLL算法进行基数估计的具体步骤。HLL算法即HyperLogLog算法,是一种非精确估计法,基于LogLog算法的优化和改进,在同样空间复杂度情况下,能够比LLC的基数估计误差更小。HLL算法通过输入一个数据集,应用哈希函数,生成一个可观测的字符串,将哈希输入流分割成若干个字符串,对每个字符串保持可观测值,利用额外的观测值的平均值产生一个计数器,精度随着字符串格式的整长而增长。具体步骤如下:
S301、对多个源数据分别进行第一聚合,生成多个第一数据集。
S302、对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集。
该步骤中,第二数据集指的是不重复元素组成的数据集,在上述步骤中经过预设次数的二次聚合,第二数据集中的元素为不重复的元素组成的数据集。
S3031、将所述元素输入哈希函数,获取比特串。
第二数据集中包含多个元素,在该步骤中,第二数据集中的每个元素经过哈希函数后可以表示成0和1构成的二进制数串,二进制串中从低位开始第一个1出现的位置,可以通过第一个1出现位置的最大值来预估总共有多少个不同的元素,即为第二数据集的基数,其中该步骤所说的低位指的是位。
S3032、基于每个所述比特串的低位数字确定数组的第一位置。
该步骤的数组指的是分桶数组,HLL的基本思想是利用集合中数字的比特串第一个1出现位置的最大值来预估整体基数,但是这种预估方法存在较大误差,为了改善误差情况,HLL中引入分桶平均的概念。示例性地,将统计数据划分为m个桶,每个桶分别统计各自的Kmax并能得到各自的基数预估值最终对这些求平均得到整体的基数估计值。分桶数组是为了消减因偶然性带来的误差,提高预估的准确性。在LLC中使用几何平均数预估整体的基数值,但是当统计数据量较小时误差较大,因此HLL算法在LLC基础上做了改进,采用调和平均数,调和平均数的优点是可以过滤掉不健康的统计值。
S3033、从所述第一位置的下一位开始依次查询,以确定第一个1出现的第二位置。
该步骤中,若将上述第一位置设为t位,则从t+1位开始找到第一个1出现的位置即为第二位置,创建一个数组Si。
S3034、基于多个元素获取的多个所述第二位置生成数组。
S3035、基于预设公式和所述数组计算所述基数。
本实施例确定了HLL算法的具体过程,提高了计算精度。
实施例四
如图4所示,本发明实施例提供了一种大数据基数估计系统4,包括如下模块:
第一聚合模块401,用于对多个源数据分别进行第一聚合,生成多个第一数据集;
第二聚合模块402,用于对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集;
基数估计模块403,用于使用HLL算法对所述第二数据集进行基数估计以得到基数值。
在替代实施例中,还包括:
第一判断模块404,用于判断所述源数据是否满足预设规则;
源数据获取模块405,用于若满足,则获取所述源数据;
若不满足,则不获取所述源数据。
在替代实施例中,所述第二聚合模块402包括:
日志获取单元4021,用于获取所述源数据的日志信息;
基于所述日志信息确定指标信息和查询精度;
函数确定单元4022,用于基于所述指标信息,确定所述第二聚合的第二聚合函数;
聚合次数确定单元4023,用于基于所述查询精度,确定所述第二聚合的所述预设次数;
数据集生成单元4024,用于使用确定的所述第二聚合函数对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集。
在替代实施例中,所述基数估计模块403,还包括:
输入单元4031,用于将所述元素输入哈希函数,获取比特串;
第一位置确定单元4032,用于基于每个所述比特串的低位数字确定数组的第一位置;
第二位置确定单元4033,用于从所述第一位置的下一位开始依次查询,以确定第一个1出现的第二位置;
数组生成单元4034,用于基于多个元素获取的多个所述第二位置生成数组;
基数计算单元4035,用于基于预设公式和所述数组计算所述基数。
在替代实施中,还包括:
第二判断模块406,用于判断所述指标信息是否格式异常;
删除模块407,用于若异常,则删除所述指标信息。
本实施例的一种大数据基数估计系统,可执行本发明任意实施例所提供的大数据基数估计方法,具备执行方法相应的功能模块和有益效果。
实施例五
如图为本发明实施例五提供的一种服务器的结构示意图,如图6所示,该服务器包括处理器501、存储器502、输入装置503和输出装置504;服务器中处理器501的数量可以是一个或多个,图中以一个处理器501为例;设备/终端/服务器中的处理器501、存储器502、输入装置503和输出装置504可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器502作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的主题更新方法对应的程序指令/模块(例如,上述实施例中的第一聚合模块401,第二聚合模块402等)。处理器501通过运行存储在存储器502中的软件程序、指令以及模块,从而执行设备/终端/服务器的各种功能应用以及数据处理,即实现上述的大数据基数估计方法。
存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器502可进一步包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置503可用于接收输入的数字或字符信息,以及产生与设备/终端/服务器的用户设置以及功能控制有关的键信号输入。输出装置504可包括显示屏等显示设备。
本发明实施例中的服务器使基数估计能够适应大数据环境,匹配不同计数的查询需求。
实施例六
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的大数据基数估计方法,该方法可以包括:
对多个源数据分别进行第一聚合,生成多个第一数据集;
对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集;
使用HLL算法对所述第二数据集进行基数估计以得到基数值。
本发明实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或终端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种大数据基数估计方法,其特征在于,包括:
对多个源数据分别进行第一聚合,生成多个第一数据集;
对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集;
使用HLL算法对所述第二数据集进行基数估计以得到基数值。
2.根据权利要求1所述的一种大数据基数估计方法,其特征在于,在所述对多个源数据分别进行第一聚合,生成多个第一数据集之前,还包括:
判断所述源数据是否满足预设规则;
若满足,则获取所述源数据;
若不满足,则不获取所述源数据。
3.根据权利要求1所述的一种大数据基数估计方法,其特征在于,对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集,包括:
获取所述源数据的日志信息;
基于所述日志信息确定指标信息和查询精度;
基于所述指标信息,确定所述第二聚合的第二聚合函数;
基于所述查询精度,确定所述第二聚合的所述预设次数;
使用确定的所述第二聚合函数对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集。
4.根据权利要求1所述的一种大数据基数估计方法,其特征在于,所述第二数据集包含多个元素,所述使用HLL算法对所述第二数据集进行基数估计以得到基数值,包括:
将所述元素输入哈希函数,获取比特串;
基于每个所述比特串的低位数字确定数组的第一位置;
从所述第一位置的下一位开始依次查询,以确定第一个1出现的第二位置;
基于多个元素获取的多个所述第二位置生成数组;
基于预设公式和所述数组计算所述基数。
5.根据权利要求1所述的一种大数据基数估计方法,其特征在于,所述第一数据集保存在Flink平台。
6.根据权利要求3所述的一种大数据基数估计方法,其特征在于,在所述基于所述日志信息确定指标信息和查询精度之后,还包括:
判断所述指标信息是否格式异常;
若异常,则删除所述指标信息。
7.一种大数据基数估计系统,其特征在于,包括:
第一聚合模块,用于对多个源数据分别进行第一聚合,生成多个第一数据集;
第二聚合模块,用于对多个所述第一数据集进行预设次数的第二聚合,生成一个第二数据集;
基数估计模块,用于使用HLL算法对所述第二数据集进行基数估计以得到基数值。
8.根据权利要求7所述的一种大数据基数估计系统,其特征在于,所述基数估计模块包括:
输入单元,用于将所述元素输入哈希函数,获取比特串;
第一位置确定单元,用于基于每个所述比特串的低位数字确定数组的第一位置;
第二位置确定单元,用于从所述第一位置的下一位开始依次查询,以确定第一个1出现的第二位置;
数组生成单元,用于基于多个元素获取的多个所述第二位置生成数组;
基数计算单元,用于基于预设公式和所述数组计算所述基数。
9.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6任一所述的大数据基数估计方法。
10.一种终端可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时能够实现如权利要求1-6任一所述的大数据基数估计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911200996.XA CN110955685A (zh) | 2019-11-29 | 2019-11-29 | 一种大数据基数估计方法、系统、服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911200996.XA CN110955685A (zh) | 2019-11-29 | 2019-11-29 | 一种大数据基数估计方法、系统、服务器和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110955685A true CN110955685A (zh) | 2020-04-03 |
Family
ID=69978972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911200996.XA Pending CN110955685A (zh) | 2019-11-29 | 2019-11-29 | 一种大数据基数估计方法、系统、服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110955685A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966006A (zh) * | 2021-03-11 | 2021-06-15 | 北京明略昭辉科技有限公司 | 用于基数估计的方法、装置、电子设备及存储介质 |
CN113468179A (zh) * | 2021-07-09 | 2021-10-01 | 北京东方国信科技股份有限公司 | 数据库的基数估算方法、装置、设备及存储介质 |
CN114697060A (zh) * | 2020-12-29 | 2022-07-01 | 广州腾讯科技有限公司 | 业务控制方法、装置和电子设备 |
CN115085985A (zh) * | 2022-06-06 | 2022-09-20 | 西安电子科技大学 | 一种用于网络安全监测的内存高效范围基数测量方法 |
CN116095029A (zh) * | 2022-11-30 | 2023-05-09 | 鹏城实验室 | 网络数据流测量方法、系统、终端及存储介质 |
CN116800637A (zh) * | 2023-08-28 | 2023-09-22 | 北京傲星科技有限公司 | 数据流中数据项基数的估算方法及相关设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709001A (zh) * | 2016-12-22 | 2017-05-24 | 西安电子科技大学 | 一种面向流式大数据的基数估计方法 |
WO2017172557A1 (en) * | 2016-03-30 | 2017-10-05 | Microsoft Technology Licensing, Llc | High performance query processing and data analytics |
CN107346270A (zh) * | 2016-05-05 | 2017-11-14 | 北京京东尚科信息技术有限公司 | 基于实时计算的基数估计的方法和系统 |
CN108197324A (zh) * | 2018-02-06 | 2018-06-22 | 百度在线网络技术(北京)有限公司 | 用于存储数据的方法和装置 |
CN109558400A (zh) * | 2018-11-28 | 2019-04-02 | 北京锐安科技有限公司 | 数据处理方法、装置、设备和存储介质 |
CN109952743A (zh) * | 2016-12-06 | 2019-06-28 | 华为技术有限公司 | 用于低内存和低流量开销大流量对象检测的系统和方法 |
-
2019
- 2019-11-29 CN CN201911200996.XA patent/CN110955685A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017172557A1 (en) * | 2016-03-30 | 2017-10-05 | Microsoft Technology Licensing, Llc | High performance query processing and data analytics |
CN107346270A (zh) * | 2016-05-05 | 2017-11-14 | 北京京东尚科信息技术有限公司 | 基于实时计算的基数估计的方法和系统 |
CN109952743A (zh) * | 2016-12-06 | 2019-06-28 | 华为技术有限公司 | 用于低内存和低流量开销大流量对象检测的系统和方法 |
CN106709001A (zh) * | 2016-12-22 | 2017-05-24 | 西安电子科技大学 | 一种面向流式大数据的基数估计方法 |
CN108197324A (zh) * | 2018-02-06 | 2018-06-22 | 百度在线网络技术(北京)有限公司 | 用于存储数据的方法和装置 |
CN109558400A (zh) * | 2018-11-28 | 2019-04-02 | 北京锐安科技有限公司 | 数据处理方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
GDRETOP: ""神奇的HyperLogLog算法【转载 #涉及到数学原理】"", 《HTTPS://BLOG.CSDN.NET/FIRENET1/ARTICLE/DETAILS/77247649》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114697060A (zh) * | 2020-12-29 | 2022-07-01 | 广州腾讯科技有限公司 | 业务控制方法、装置和电子设备 |
CN114697060B (zh) * | 2020-12-29 | 2024-05-07 | 广州腾讯科技有限公司 | 业务控制方法、装置和电子设备 |
CN112966006A (zh) * | 2021-03-11 | 2021-06-15 | 北京明略昭辉科技有限公司 | 用于基数估计的方法、装置、电子设备及存储介质 |
CN113468179A (zh) * | 2021-07-09 | 2021-10-01 | 北京东方国信科技股份有限公司 | 数据库的基数估算方法、装置、设备及存储介质 |
CN113468179B (zh) * | 2021-07-09 | 2024-03-19 | 北京东方国信科技股份有限公司 | 数据库的基数估算方法、装置、设备及存储介质 |
CN115085985A (zh) * | 2022-06-06 | 2022-09-20 | 西安电子科技大学 | 一种用于网络安全监测的内存高效范围基数测量方法 |
CN115085985B (zh) * | 2022-06-06 | 2023-03-31 | 西安电子科技大学 | 一种用于网络安全监测的内存高效范围基数测量方法 |
CN116095029A (zh) * | 2022-11-30 | 2023-05-09 | 鹏城实验室 | 网络数据流测量方法、系统、终端及存储介质 |
CN116095029B (zh) * | 2022-11-30 | 2024-05-14 | 鹏城实验室 | 网络数据流测量方法、系统、终端及存储介质 |
CN116800637A (zh) * | 2023-08-28 | 2023-09-22 | 北京傲星科技有限公司 | 数据流中数据项基数的估算方法及相关设备 |
CN116800637B (zh) * | 2023-08-28 | 2023-10-24 | 北京傲星科技有限公司 | 数据流中数据项基数的估算方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110955685A (zh) | 一种大数据基数估计方法、系统、服务器和存储介质 | |
US10447772B2 (en) | Managed function execution for processing data streams in real time | |
JP6913695B2 (ja) | スタックトレース情報を符号化するための圧縮技術 | |
Zheng et al. | Service-generated big data and big data-as-a-service: an overview | |
US8843423B2 (en) | Missing value imputation for predictive models | |
WO2018014814A1 (zh) | 终端规则引擎装置、终端规则运行方法 | |
US20140215477A1 (en) | Realizing graph processing based on the mapreduce architecture | |
US10255347B2 (en) | Smart tuple dynamic grouping of tuples | |
US10409813B2 (en) | Imputing data for temporal data store joins | |
US9928215B1 (en) | Iterative simple linear regression coefficient calculation for streamed data using components | |
US10909114B1 (en) | Predicting partitions of a database table for processing a database query | |
US10061678B2 (en) | Automated validation of database index creation | |
EP3679473B1 (en) | A system and method for stream processing | |
US11907092B2 (en) | Quantum computing monitoring system | |
CN115335821B (zh) | 卸载统计收集 | |
US10558670B2 (en) | Smart tuple condition-based operation performance | |
WO2023051974A1 (en) | Calibrated decoders for implementations of quantum codes | |
CN113810234B (zh) | 微服务链路拓扑处理方法、装置及可读存储介质 | |
US10296620B2 (en) | Smart tuple stream alteration | |
Zhang et al. | Personalized quality centric service recommendation | |
US10409704B1 (en) | Systems and methods for resource utilization reporting and analysis | |
CN110705736A (zh) | 宏观经济预测方法、装置、计算机设备及存储介质 | |
CN106776291B (zh) | 一种系统结构复杂度计算方法 | |
Wu et al. | Real-Time Search Method for Large-Scale Regional Targets Based on Parallel Google S2 Algorithm | |
Xu et al. | Online personalized QoS prediction approach for cloud services |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200403 |
|
RJ01 | Rejection of invention patent application after publication |