CN103605756B - 用于联机分析处理的数据处理方法和装置 - Google Patents

用于联机分析处理的数据处理方法和装置 Download PDF

Info

Publication number
CN103605756B
CN103605756B CN201310598565.XA CN201310598565A CN103605756B CN 103605756 B CN103605756 B CN 103605756B CN 201310598565 A CN201310598565 A CN 201310598565A CN 103605756 B CN103605756 B CN 103605756B
Authority
CN
China
Prior art keywords
user
data
subregion
line analytical
repetition counting
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
Application number
CN201310598565.XA
Other languages
English (en)
Other versions
CN103605756A (zh
Inventor
洪超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201310598565.XA priority Critical patent/CN103605756B/zh
Publication of CN103605756A publication Critical patent/CN103605756A/zh
Application granted granted Critical
Publication of CN103605756B publication Critical patent/CN103605756B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种用于联机分析处理的数据处理方法和装置。该用于联机分析处理的数据处理方法包括:获取对联机分析处理中的数据进行分区得到的多个分区;分别计算多个分区的去重计数指标的用户数;以及将计算得到的多个分区的去重计数指标的用户数相加,得到联机分析处理中的去重计数的用户数。通过本发明,解决了现有技术中在进行联机分析处理时内存开销比较大的问题,达到了减少联机分析处理时内存开销的效果。

Description

用于联机分析处理的数据处理方法和装置
技术领域
本发明涉及数据处理领域,具体而言,涉及一种用于联机分析处理的数据处理方法和装置。
背景技术
去重指标指“访问者”这样的用户数指标,是不可累加的指标,在计算时,需要对所有需要的数据都加载到内存,再进行去重,最后得到用户数指标。
不可累加指标是指标数据不能叠加,假设联机分析处理里按时间进行分区,例如每个月份分一个区,若9月份的分区中记录的用户数为100,10月份的分区中记录的用户数为200,那么近两月(9月和10月)的访问用户数在去重之后有可能是200至300之间的任意一个值,对于这种去重指标为不可累加指标,其值不能由各分区得出的值直接相加获得,需要将所有值加载到内存之后,再进行去重才能获得。
去重指标是不可累加的指标,按照传统的分区方式,在各个分区内计算的用户数等去重指标,不能直接累加,需要所有分区一起参与计算,因此内存开销较大。
针对现有技术中在进行联机分析处理时内存开销比较大的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种用于联机分析处理的数据处理方法和装置,以解决相关技术中在进行联机分析处理时内存开销比较大问题。
为了实现上述目的,根据本发明的一个方面,提供了一种用于联机分析处理的数据处理方法。该数据处理方法包括:获取对联机分析处理中的数据进行分区得到的多个分区;分别计算多个分区的去重计数指标的用户数;以及将计算得到的多个分区的去重计数指标的用户数相加,得到联机分析处理中的去重计数的用户数。
进一步地,在获取对联机分析处理中的数据进行分区得到的多个分区之前,数据处理方法包括:对联机分析处理中的数据进行分区处理,得到对应于多个时间段的多个第一分区;将每个第一分区划分为多个子分区;以及将多个子分区作为对联机分析处理中的数据进行分区得到的多个分区。
进一步地,多个子分区中的每个子分区包括同一哈希组的用户数据,在获取对联机分析处理中的数据进行分区得到的多个分区之后,数据处理方法包括:判断是否有新增加用户;如果判断出有新增加的用户,则获取预先设置的哈希组;以及将新增加用户的用户数据分配到预先设置的哈希组中。
进一步地,将计算得到的多个分区的去重计数指标的用户数相加,得到联机分析处理中的去重计数的用户数包括:查找去重计数指标的相关列;由去重计数指标的相关列创建用户哈希映射列,其中,去重计数指标的相关列和用户哈希映射列为一一对应关系;以及通过采用用户哈希映射列替换去重计数指标的相关列进行去重计数计算。
进一步地,通过采用用户哈希映射列替换去重计数指标的相关列进行去重计数计算包括:获取联机分析处理中的去重计数指标;以及通过直接更改联机分析处理中的去重计数指标进行去重计数计算。
为了实现上述目的,根据本发明的另一方面,提供了一种用于联机分析处理的数据处理装置。该数据处理装置包括:第一获取单元,用于获取对联机分析处理中的数据进行分区得到的多个分区;计算单元,用于分别计算多个分区的去重计数指标的用户数;以及求和单元,用于将计算得到的多个分区的去重计数指标的用户数相加,得到联机分析处理中的去重计数的用户数。
进一步地,数据处理装置包括:分区单元,用于在获取对联机分析处理中的数据进行分区得到的多个分区之前,对联机分析处理中的数据进行分区处理,得到对应于多个时间段的多个第一分区;划分单元,用于将每个第一分区划分为多个子分区;以及处理单元,用于将多个子分区作为对联机分析处理中的数据进行分区得到的多个分区。
进一步地,多个子分区中的每个子分区包括同一哈希组的用户数据,数据处理装置包括:判断单元,用于在获取对联机分析处理中的数据进行分区得到的多个分区之后,判断是否有新增加用户;第二获取单元,用于在判断出有新增加的用户时,获取预先设置的哈希组;以及分配单元,用于将新增加用户的用户数据分配到预先设置的哈希组中。
进一步地,求和单元包括:查找模块,用于查找去重计数指标的相关列;映射模块,用于由去重计数指标的相关列创建用户哈希映射列,其中,去重计数指标的相关列和用户哈希映射列为一一对应关系;以及去重模块,用于通过采用用户哈希映射列替换去重计数指标的相关列进行去重计数计算。
进一步地,去重模块包括:获取子模块,用于获取联机分析处理中的去重计数指标;以及去重子模块,用于通过直接更改联机分析处理中的去重计数指标进行去重计数计算。
通过本发明,采用获取对联机分析处理中的数据进行分区得到的多个分区;分别计算所述多个分区的去重计数指标的用户数;以及将计算得到的所述多个分区的去重计数指标的用户数相加,得到所述联机分析处理中的去重计数的用户数,解决了现有技术中进行联机分析处理时内存开销比较大的问题,进而达到了减少联机分析处理时内存开销的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明一实施例的数据处理方法的流程图;
图2是根据本发明又一实施例的数据处理方法的流程图;
图3是根据本发明实施例的计算联机分析处理中的去重计数的用户数的流程图;
图4是根据本发明一实施例的数据处理装置的示意图;
图5是根据本发明又一实施例的数据处理装置的示意图;以及
图6是根据本发明实施例的又一实施例的数据处理装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明实施例提供了一种用于联机分析处理的数据处理方法。
图1是根据本发明一实施例的数据处理方法的流程图。如图所示,该数据处理方法包括如下步骤:
步骤S101,获取对联机分析处理中的数据进行分区得到的多个分区。需要进行联机分析处理的数据通常按照一定的规则存储在某个分区中,例如,按时间存储在不同的时间分区中,例如按照每个月份进行分区,对于一年的数据就可以分为12个区,假设当前月份是11月份,则最近两个月份为9月份和10月份。联机分析处理中的数据可以存储近两个月的数据或者更长时间的数据。
为了方便对联机分析处理中的数据进行计算处理,对按照例如月份进行分区之后得到的分区再按照一定规则进行分区处理。例如,按照用户是数量或者CPU的数量对10月份分区内的数据再进行分区处理,得到多个分区。经过再次分区得到的多个分区中的数据可以由不可累加的指标变成可累加的指标。
需要说明的是,这里所说的分区规则不用于限制本发明的技术方案,应当理解为本发明技术方案的优选实施方式。
步骤S102,分别计算多个分区的去重计数指标的用户数。
用户数是指访问者的数目,由于一个访问者可能多次访问某个网址,那么每次访问都会计数一次,每个月份同一个访问者多次访问同一个网址,则每个月份该访问者会被多次计数。为了准确计算访问一个网址的实际用户数,则需要对记录的用户数进行去重计算。
由于通过分区将可以进行累加的一类指标数据存放至一个分区上,每个分区上的数据按照用户唯一标识作为分区条件,则每个分区中存放的用户相同,不同分区中的用户不相同,对多个分区中的用户数分别进行去重计数指标的计算,得到每个分区的去重计数指标的用户数。
步骤S103,将计算得到的多个分区的去重计数指标的用户数相加,得到联机分析处理中的去重计数的用户数。
由于每个分区的用户数是按照用户唯一标识作为分区条件的,每个分区中存放的用户相同,不同分区中的用户不同,在分别计算每个分区的去重计数指标的用户数之后,可以将不同分区计算得到的去重计数指标的用户数进行累加,无需经过内存的去重计算,从而将不可累加的用户数指标转化为可以累加的指标,进而达到了减少联机分析处理时内存开销的效果。
需要指出的是,用户数指标是去重计数指标中的一类指标,本发明实施例中所说的用户数指标只是用来详细说明本发明实施例的具体实施方式,本发明实施例所记载的具体实施方式还可以用于计算去重计数指标的其他种类的指标,例如用户访问时间、用户访问内容和用户访问路径等。
图2是根据本发明又一实施例的数据处理方法的流程图。如图所示,该数据处理方法包括如下步骤:
步骤S201,对联机分析处理中的数据进行分区处理,得到对应于多个时间段的多个第一分区。
按照时间段将联机分析处理中的数据进行分区处理,例如,将10月份的联机分析处理中的数据存储在10份的分区中,将11月份的联机分析处理中的数据存储在11月份的分区中,再例如,将11月份第一周的联机分析处理中的数据存储在11月份第一周的分区中,将11月份第二周的联机分析处理中的数据存储在11月份第二周的分区中。
按照一定的时间段,可以将联机分析处理中数据分配到相应的时间段的分区中,这些按照时间段得到的分区为第一分区。
步骤S202,将每个第一分区划分为多个子分区。对按照时间段划分得到的第一分区再进行分区,得到多个子分区。划分多个子分区可以按照用户唯一标识进行划分,用户唯一标识可以为用户ID、用户手机号或者用户cookie等信息。按照用户唯一标识将与用户唯一标识相关的一类数据放在同一个子分区中,以便对每个子分区中的数据进行去重计数指标的计算之后,对计算结果进行累加。
步骤S203,将多个子分区作为对联机分析处理中的数据进行分区得到的多个分区。经过分区处理得到的多个子分区即为步骤S101中对联机分析处理中的数据进行分区得到的多个分区。
例如,按照时间段分区后,10月份的用户数为100,11月份的用户数位200,由于10月份的用户数中可能有同一用户被重复计数,11月份的用户数中也可能有同一用户被重复计数,如果直接将100与200相加会导致计算结果不准确,需要将10月份和11月份的用户数放在内存中进行去重处理,但是这样会消耗大量的内存资源。
为了减少内存资源的消耗,将10月份用户按照用户ID等信息分为多个子分区,每个子分区分别进行去重计数,将多个子分区中的去重计算结果相加,即可得到10月份的无重复的用户数,例如90。用同样的方法对11月份的用户数进行计算得到11月份无重复的用户数,例如150。如果需要计算10月份和11月份的用户数,可以将10月份和11月份的数据分配到多个子分区中,对多个子分区中的数据进行去重计算,并对计算结果进行累加,得到两个月份的无重复的用户数。
通过将与用户唯一标识相关的一类数据放在同一个子分区中,那么相同的数据也放在同一子分区中,对每个子分区进行去重计数的计算之后,可以直接对每个子分区的计算结果进行累加,得到多个子分区的去重计数指标的计算结果。用这种方法能够避免在内存中处理大量数据,减少了内存开销。
优选地,多个子分区中的每个子分区包括同一哈希组的用户数据。在上述实施例中,利用用户唯一标识例如用户ID、用户Cookie等信息作为分区条件,为了减少分区的个数,将用户哈希值作为用户唯一标识,使每个子分区中包括同一哈希组的用户数据。在获取对联机分析处理中的数据进行分区得到的多个分区之后,该数据处理方法包括如下步骤:
步骤204,判断是否有新增加用户。由于将用户唯一标识作为分区条件,则每增加一个用户,便会多一个用户唯一标识,用户动态增加则用户唯一标识动态增加。为了及时将新增加的用户分配到利用该用户唯一标识作为分区条件得到的分区中,首先要判断是否有新增加用户,并对用户唯一标识进行处理。
步骤205,如果判断出有新增加的用户,则获取预先设置的哈希组。
预先设置的哈希组中包含多个哈希值,哈希值与用户唯一标识一一对应,每个用户唯一标识有且仅对应一个哈希值,每个哈希值可以对应多个用户唯一标识。
对用户唯一标识进行处理得到哈希值,假设分区数为8,具体步骤如下:
A),将用户唯一标识的值模以分区数8之后,取余数。
B),将余数乘以10的N次方,其中,N为分区数8。假设用户唯一标识的值的最大值为2,147,483,647,如果预估用户数最大值为1亿,则用最大值2,147,483,647除以1亿,得到的数值约为21,此数值大于8,则可以将N取为8,即分区数为8。
C),将步骤A)中求得的余数和步骤B)中的数值相加,将得到的结果作为与用户唯一标识的值对应的哈希值。
用户唯一标识的值 a b c
198 6 6*10^8=6亿 6亿+198
99196 4 4*10^8=4亿 4亿+99196
步骤206,将新增加用户的用户数据分配到预先设置的哈希组中。
按照哈希值将用户数据分为8个分区,每个分区的数值容量为1亿,则拆分的8个分区分别为:
第一个分区:哈希值为0-1亿;
第二个分区:哈希值为1-2亿;
第三个分区:哈希值为2-3亿……依次类推。
对每个新增加用户的用户唯一标识的值进行上述计算,并根据计算结果将用户数据分配到预先设置的哈希组中,例如,计算得到的哈希值为400099196,则该用户数据存储在第四个分区中。
图3是根据本发明实施例的计算联机分析处理中的去重计数的用户数的流程图。如图所示,该方法包括如下步骤:
步骤S301,查找去重计数指标的相关列。去重计数指标的相关列可以为用户唯一标识列。
步骤S302,由去重计数指标的相关列创建用户哈希映射列,其中,去重计数指标的相关列和用户哈希映射列为一一对应关系。
去重计数指标为用户唯一标识列,用户唯一标识列与用户哈希值相对应,一个用户唯一标识对应一个用户哈希值,一个用户哈希值可以对应多个用户唯一标识。用户哈希映射列包括多个用户哈希值,多个用户哈希值组成一个用户哈希映射列。
步骤S303,通过采用用户哈希映射列替换去重计数指标的相关列进行去重计数计算。在进行去重计算时,将用户哈希值作为分区条件,按照用户哈希映射列将相应的用户分配到与该用户哈希值对应的分区中。
具体地,通过采用用户哈希映射列替换去重计数指标的相关列进行去重计数计算包括:获取联机分析处理中的去重计数指标,以及通过直接更改联机分析处理中的去重计数指标进行去重计数计算。
用户的去重计数指标不仅指用户数,还可以指用户访问时间、访问路径等去重计数指标,对于用户数这一去重计数指标,在进行去重计数计算时,去掉相同用户的数量,对于访问路径这一去重计数指标,在进行去重计算时,去掉相同路径的数量。其他去重计数指标类推,不做一一赘述。
在对用户数以外的其他去重计数指标进行去重计数计算时,直接将联机分析处理中的去重计数指标更改为其他去重计数指标,以进行去重计数计算。
本发明实施例提供了一种用于联机分析处理的数据处理装置。
图4是根据本发明一实施例的数据处理装置的示意图。如图所示,该数据处理装置包括第一获取单元10、计算单元20和求和单元30。
第一获取单元10用于获取对联机分析处理中的数据进行分区得到的多个分区。需要进行联机分析处理的数据通常按照一定的规则存储在某个分区中,例如,按时间存储在不同的时间分区中,例如按照每个月份进行分区,对于一年的数据就可以分为12个区,假设当前月份是11月份,则最近两个月份为9月份和10月份。联机分析处理中的数据可以存储近两个月的数据或者更长时间的数据。
为了方便对联机分析处理中的数据进行计算处理,对按照例如月份进行分区之后得到的分区再按照一定规则进行分区处理。例如,按照用户是数量或者CPU的数量对10月份分区内的数据再进行分区处理,得到多个分区。经过再次分区得到的多个分区中的数据可以由不可累加的指标变成可累加的指标。
需要说明的是,这里所说的分区规则不用于限制本发明的技术方案,应当理解为本发明技术方案的优选实施方式。
计算单元20用于分别计算多个分区的去重计数指标的用户数。用户数是指访问者的数目,由于一个访问者可能多次访问某个网址,那么每次访问都会计数一次,每个月份同一个访问者多次访问同一个网址,则每个月份该访问者会被多次计数。为了准确计算访问一个网址的实际用户数,则需要对记录的用户数进行去重计算。
由于通过分区将可以进行累加的一类指标数据存放至一个分区上,每个分区上的数据按照用户唯一标识作为分区条件,则每个分区中存放的用户相同,不同分区中的用户不相同,对多个分区中的用户数分别进行去重计数指标的计算,得到每个分区的去重计数指标的用户数。
求和单元30用于将计算得到的多个分区的去重计数指标的用户数相加,得到联机分析处理中的去重计数的用户数。
由于每个分区的用户数是按照用户唯一标识作为分区条件的,每个分区中存放的用户相同,不同分区中的用户不同,在分别计算每个分区的去重计数指标的用户数之后,可以将不同分区计算得到的去重计数指标的用户数进行累加,无需经过内存的去重计算,从而将不可累加的用户数指标转化为可以累加的指标,进而达到了减少联机分析处理时内存开销的效果。
需要指出的是,用户数指标是去重计数指标中的一类指标,本发明实施例中所说的用户数指标只是用来详细说明本发明实施例的具体实施方式,本发明实施例所记载的具体实施方式还可以用于计算去重计数指标的其他种类的指标,例如用户访问时间、用户访问内容和用户访问路径等。
图5是根据本发明又一实施例的数据处理装置的示意图。如图所示,该数据处理装置包括第一获取单元10、计算单元20和求和单元30,还包括分区单元40、划分单元50和处理单元60。
分区单元40用于在获取对联机分析处理中的数据进行分区得到的多个分区之前,对联机分析处理中的数据进行分区处理,得到对应于多个时间段的多个第一分区。按照时间段将联机分析处理中的数据进行分区处理,例如,将10月份的联机分析处理中的数据存储在10份的分区中,将11月份的联机分析处理中的数据存储在11月份的分区中,再例如,将11月份第一周的联机分析处理中的数据存储在11月份第一周的分区中,将11月份第二周的联机分析处理中的数据存储在11月份第二周的分区中。
按照一定的时间段,可以将联机分析处理中数据分配到相应的时间段的分区中,这些按照时间段得到的分区为第一分区。
划分单元50用于将每个第一分区划分为多个子分区。对按照时间段划分得到的第一分区再进行分区,得到多个子分区。划分多个子分区可以按照用户唯一标识进行划分,用户唯一标识可以为用户ID、用户手机号或者用户cookie等信息。按照用户唯一标识将与用户唯一标识相关的一类数据放在同一个子分区中,以便对每个子分区中的数据进行去重计数指标的计算之后,对计算结果进行累加。
处理单元60用于将多个子分区作为对联机分析处理中的数据进行分区得到的多个分区。经过分区处理得到的多个子分区即为第一获取单元10中对联机分析处理中的数据进行分区得到的多个分区。
例如,按照时间段分区后,10月份的用户数为100,11月份的用户数位200,由于10月份的用户数中可能有同一用户被重复计数,11月份的用户数中也可能有同一用户被重复计数,如果直接将100与200相加会导致计算结果不准确,需要将10月份和11月份的用户数放在内存中进行去重处理,但是这样会消耗大量的内存资源。
为了减少内存资源的消耗,将10月份用户按照用户ID等信息分为多个子分区,每个子分区分别进行去重计数,将多个子分区中的去重计算结果相加,即可得到10月份的无重复的用户数,例如90。用同样的方法对11月份的用户数进行计算得到11月份无重复的用户数,例如150。如果需要计算10月份和11月份的用户数,可以将10月份和11月份的数据分配到多个子分区中,对多个子分区中的数据进行去重计算,并对计算结果进行累加,得到两个月份的无重复的用户数。
通过将与用户唯一标识相关的一类数据放在同一个子分区中,那么相同的数据也放在同一子分区中,对每个子分区进行去重计数的计算之后,可以直接对每个子分区的计算结果进行累加,得到多个子分区的去重计数指标的计算结果。用这种方法能够避免在内存中处理大量数据,减少了内存开销。
优选地,多个子分区中的每个子分区包括同一哈希组的用户数据。在上述实施例中,利用用户唯一标识例如用户ID、用户Cookie等信息作为分区条件,为了减少分区的个数,将用户哈希值作为用户唯一标识,使每个子分区中包括同一哈希组的用户数据。
该数据处理装置还包括判断单元、第二获取单元和分配单元。
判断单元用于在获取对联机分析处理中的数据进行分区得到的多个分区之后,判断是否有新增加用户。由于将用户唯一标识作为分区条件,则每增加一个用户,便会多一个用户唯一标识,用户动态增加则用户唯一标识动态增加。为了及时将新增加的用户分配到利用该用户唯一标识作为分区条件得到的分区中,首先要判断是否有新增加用户,并对用户唯一标识进行处理。
第二获取单元用于在判断出有新增加的用户时,获取预先设置的哈希组。预先设置的哈希组中包含多个哈希值,哈希值与用户唯一标识一一对应,每个用户唯一标识有且仅对应一个哈希值,每个哈希值可以对应多个用户唯一标识。
对用户唯一标识进行处理得到哈希值,假设分区数为8,具体步骤如下:
A),将用户唯一标识的值模以分区数8之后,取余数。
B),将余数乘以10的N次方,其中,N为分区数8。假设用户唯一标识的值的最大值为2,147,483,647,如果预估用户数最大值为1亿,则用最大值2,147,483,647除以1亿,得到的数值约为21,此数值大于8,则可以将N取为8,即分区数为8。
C),将步骤A)中求得的余数和步骤B)中的数值相加,将得到的结果作为与用户唯一标识的值对应的哈希值。
用户唯一标识的值 a b c
198 6 6*10^8=6亿 6亿+198
99196 4 4*10^8=4亿 4亿+99196
分配单元用于将新增加用户的用户数据分配到预先设置的哈希组中。按照哈希值将用户数据分为8个分区,每个分区的数值容量为1亿,则拆分的8个分区分别为:
第一个分区:哈希值为0-1亿;
第二个分区:哈希值为1-2亿;
第三个分区:哈希值为2-3亿……依次类推。
对每个新增加用户的用户唯一标识的值进行上述计算,并根据计算结果将用户数据分配到预先设置的哈希组中,例如,计算得到的哈希值为400099196,则该用户数据存储在第四个分区中。
图6是根据本发明实施例的又一实施例的数据处理装置的示意图。如图所示,该数据处理装置包括第一获取单元10、计算单元20和求和单元30,其中,求和单元30包括查找模块301、映射模块302和去重模块303。
查找模块301用于查找去重计数指标的相关列。去重计数指标的相关列可以为用户唯一标识列。
映射模块302用于由去重计数指标的相关列创建用户哈希映射列,其中,去重计数指标的相关列和用户哈希映射列为一一对应关系。去重计数指标为用户唯一标识列,用户唯一标识列与用户哈希值相对应,一个用户唯一标识对应一个用户哈希值,一个用户哈希值可以对应多个用户唯一标识。用户哈希映射列包括多个用户哈希值,多个用户哈希值组成一个用户哈希映射列。
去重模块303用于通过采用用户哈希映射列替换去重计数指标的相关列进行去重计数计算。在进行去重计算时,将用户哈希值作为分区条件,按照用户哈希映射列将相应的用户分配到与该用户哈希值对应的分区中。
具体地,去重模块303包括获取子模块和去重子模块,其中获取子模块用于获取联机分析处理中的去重计数指标,去重子模块,用于通过直接更改联机分析处理中的去重计数指标进行去重计数计算。
用户的去重计数指标不仅指用户数,还可以指用户访问时间、访问路径等去重计数指标,对于用户数这一去重计数指标,在进行去重计数计算时,去掉相同用户的数量,对于访问路径这一去重计数指标,在进行去重计算时,去掉相同路径的数量。其他去重计数指标类推,不做一一赘述。
在对用户数以外的其他去重计数指标进行去重计数计算时,直接将联机分析处理中的去重计数指标更改为其他去重计数指标,以进行去重计数计算。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种用于联机分析处理的数据处理方法,其特征在于,包括:
获取对联机分析处理中的数据进行分区得到的多个分区;
分别计算所述多个分区的去重计数指标的用户数;以及
将计算得到的所述多个分区的去重计数指标的用户数相加,得到所述联机分析处理中的去重计数的用户数,
其中,在获取对联机分析处理中的数据进行分区得到的多个分区之后,包括:对得到的所述多个分区按照预定规则再次进行分区处理,其中,所述预定规则包括:用户的数量或CPU的数量,
其中,所述去重计数指标包括下述至少之一:所述用户数、用户访问时间、访问路径。
2.根据权利要求1所述的数据处理方法,其特征在于,在获取对联机分析处理中的数据进行分区得到的多个分区之前,所述数据处理方法还包括:
对所述联机分析处理中的数据进行分区处理,得到对应于多个时间段的多个第一分区;
将每个所述第一分区均划分为多个子分区;以及
将所述多个子分区作为对所述联机分析处理中的数据进行分区得到的多个分区。
3.根据权利要求2所述的数据处理方法,其特征在于,所述多个子分区中的每个子分区包括同一哈希组的用户数据,在获取对联机分析处理中的数据进行分区得到的多个分区之后,所述数据处理方法还包括:
判断是否有新增加用户;
如果判断出有新增加的用户,则获取预先设置的哈希组;以及
将所述新增加用户的用户数据分配到所述预先设置的哈希组中。
4.根据权利要求1所述的数据处理方法,其特征在于,将计算得到的所述多个分区的去重计数指标的用户数相加,得到所述联机分析处理中的去重计数的用户数包括:
查找所述去重计数指标的相关列;
由所述去重计数指标的相关列创建用户哈希映射列,其中,所述去重计数指标的相关列和所述用户哈希映射列为一一对应关系;以及
通过采用所述用户哈希映射列替换所述去重计数指标的相关列进行去重计数计算。
5.根据权利要求4所述的数据处理方法,其特征在于,通过采用所述用户哈希映射列替换所述去重计数指标的相关列进行去重计数计算包括:
获取所述联机分析处理中的去重计数指标;以及
通过直接更改所述联机分析处理中的去重计数指标进行所述去重计数计算。
6.一种用于联机分析处理的数据处理装置,其特征在于,
第一获取单元,用于获取对联机分析处理中的数据进行分区得到的多个分区;
计算单元,用于分别计算所述多个分区的去重计数指标的用户数;以及
求和单元,用于将计算得到的所述多个分区的去重计数指标的用户数相加,得到所述联机分析处理中的去重计数的用户数,
其中,所述第一获取单元包括:分区模块,用于在获取对联机分析处理中的数据进行分区得到的多个分区之后,对得到的所述多个分区按照预定规则再次进行分区处理,其中,所述预定规则包括:用户的数量或CPU的数量,
其中,所述去重计数指标包括下述至少之一:所述用户数、用户访问时间、访问路径。
7.根据权利要求6所述的数据处理装置,其特征在于,所述数据处理装置还包括:
分区单元,用于在获取对联机分析处理中的数据进行分区得到的多个分区之前,对所述联机分析处理中的数据进行分区处理,得到对应于多个时间段的多个第一分区;
划分单元,用于将每个所述第一分区均划分为多个子分区;以及
处理单元,用于将所述多个子分区作为对所述联机分析处理中的数据进行分区得到的多个分区。
8.根据权利要求7所述的数据处理装置,其特征在于,所述多个子分区中的每个子分区包括同一哈希组的用户数据,所述数据处理装置还包括:
判断单元,用于在获取对联机分析处理中的数据进行分区得到的多个分区之后,判断是否有新增加用户;
第二获取单元,用于在判断出有新增加的用户时,获取预先设置的哈希组;以及
分配单元,用于将所述新增加用户的用户数据分配到所述预先设置的哈希组中。
9.根据权利要求6所述的数据处理装置,其特征在于,所述求和单元包括:
查找模块,用于查找所述去重计数指标的相关列;
映射模块,用于由所述去重计数指标的相关列创建用户哈希映射列,其中,所述去重计数指标的相关列和所述用户哈希映射列为一一对应关系;以及
去重模块,用于通过采用所述用户哈希映射列替换所述去重计数指标的相关列进行去重计数计算。
10.根据权利要求9所述的数据处理装置,其特征在于,所述去重模块包括:
获取子模块,用于获取所述联机分析处理中的去重计数指标;以及
去重子模块,用于通过直接更改所述联机分析处理中的去重计数指标进行所述去重计数计算。
CN201310598565.XA 2013-11-22 2013-11-22 用于联机分析处理的数据处理方法和装置 Active CN103605756B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310598565.XA CN103605756B (zh) 2013-11-22 2013-11-22 用于联机分析处理的数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310598565.XA CN103605756B (zh) 2013-11-22 2013-11-22 用于联机分析处理的数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN103605756A CN103605756A (zh) 2014-02-26
CN103605756B true CN103605756B (zh) 2017-08-01

Family

ID=50123978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310598565.XA Active CN103605756B (zh) 2013-11-22 2013-11-22 用于联机分析处理的数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN103605756B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103886061B (zh) * 2014-03-17 2017-10-03 北京国双科技有限公司 基于联机分析处理的去重计数方法和装置
CN103886060B (zh) * 2014-03-17 2017-12-22 北京国双科技有限公司 用于联机分析处理分区的数据处理方法和装置
CN105989072B (zh) * 2015-02-10 2019-09-27 阿里巴巴集团控股有限公司 去重计数方法及设备
CN107948738B (zh) * 2016-10-13 2020-10-20 北京国双科技有限公司 一种网络电视去重用户数的计算方法及装置
CN107133329B (zh) * 2017-05-09 2022-03-08 腾讯科技(深圳)有限公司 数据处理方法、数据处理装置及存储介质
CN113743975A (zh) * 2021-01-29 2021-12-03 北京沃东天骏信息技术有限公司 一种广告效果处理方法和装置
CN113204602B (zh) * 2021-05-07 2023-08-01 星环信息科技(上海)股份有限公司 数据处理方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386599B2 (en) * 2009-03-04 2013-02-26 Max Fomitchev Method and system for estimating unique visitors for internet sites
US8566341B2 (en) * 2009-11-12 2013-10-22 Oracle International Corporation Continuous aggregation on a data grid

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Big Data Counting: How To Count A Billion Distinct Objects Using Only 1.5KB Of Memory;Matt Abrams;《http://highscalability.com/blog/2012/4/5/big-data-counting-how-to-count-a-billion-distinct-objects-us.html》;20120405;全文 *
海量数据处理:十道面试题与十个海量数据处理方法总结;July 等;《http://blog.csdn.net/v_JULY_v/article/details/6279498》;20110326;第一部分第1节第7-9行, 第2部分第5节6-9行 *

Also Published As

Publication number Publication date
CN103605756A (zh) 2014-02-26

Similar Documents

Publication Publication Date Title
CN103605756B (zh) 用于联机分析处理的数据处理方法和装置
Jaillet et al. Generalized online routing: New competitive ratios, resource augmentation, and asymptotic analyses
CN104954401B (zh) 流量调度方法和装置
CN108090208A (zh) 融合数据处理方法及装置
CN108062573A (zh) 模型训练方法及装置
CN104408179A (zh) 数据表中数据处理方法和装置
CN108074031A (zh) 订单组分配方法及装置
CN104765751A (zh) 应用推荐方法及装置
CN104408640B (zh) 应用软件推荐方法及装置
CN108509583A (zh) 一种信息推送方法、服务器及计算机可读存储介质
CN102298650A (zh) 一种海量数字信息的分布式推荐方法
CN104199945A (zh) 数据存储方法和装置
CN106202524A (zh) 数据库及其分表装置和方法
CN106202280A (zh) 一种信息处理方法及服务器
CN103714098A (zh) 用于对数据库进行分区的方法和系统
CN106952085B (zh) 一种数据存储与业务处理的方法及装置
CN106815274A (zh) 基于Hadoop的日志数据挖掘方法及系统
CN103853500A (zh) 一种基于海量数据的数据分配方法、装置及系统
CN105022807A (zh) 信息推荐方法及装置
CN108304404B (zh) 一种基于改进的Sketch结构的数据频率估计方法
CN113129091A (zh) 一种资费套餐的推荐方法及装置
CN104268293B (zh) 数据库中的不可累加指标处理方法和装置
CN105120008B (zh) 一种基于分层的分布式云计算中心负载平衡方法
CN103036796B (zh) 路由信息更新方法及装置
CN109284277B (zh) 一种汇总表格的数据调平方法、电子设备及存储介质

Legal Events

Date Code Title Description
C06 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
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Data processing method and data processing device for on-line analysis processing

Effective date of registration: 20190531

Granted publication date: 20170801

Pledgee: Shenzhen Black Horse World Investment Consulting Co.,Ltd.

Pledgor: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Registration number: 2019990000503

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Patentee after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Patentee before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

PP01 Preservation of patent right
PP01 Preservation of patent right

Effective date of registration: 20240604

Granted publication date: 20170801