CN110019388B - 账号数量统计方法及装置 - Google Patents
账号数量统计方法及装置 Download PDFInfo
- Publication number
- CN110019388B CN110019388B CN201710929828.9A CN201710929828A CN110019388B CN 110019388 B CN110019388 B CN 110019388B CN 201710929828 A CN201710929828 A CN 201710929828A CN 110019388 B CN110019388 B CN 110019388B
- Authority
- CN
- China
- Prior art keywords
- data table
- account
- data
- time period
- counted
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种账号数量统计方法及装置,其中,该方法包括:从数据表集合中获取待统计时间段对应的第一数据表;对第一数据表中的每一个第一账号标识对应的数据与待统计时间段对应的数据进行运算,得到运算结果集合;统计运算结果集合中与目标运算结果匹配的运算结果的数量,并将运算结果的数量作为第一账号的数量。采用上述技术方案,解决了相关技术中统计账号数量时的统计效率较低的问题,提高了统计账号数量时的统计效率。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种账号数量统计方法及装置。
背景技术
实时系统最关键的地方就是计算的时间,所有通过实时系统计算出来的指标都要求快速的计算,这样才能体现出来实时系统的特性,但是由于庞大的数据量,导致有一些关键性的指标计算也很困难,比如一个很常见的场景就是对于独立用户的计算,比如有一个节目在某个频道上20:50开始播放,21:30结束,客户的需求是想看到在20:50-21:30这段时间到底有多少用户在观看此频道,在现有的技术中一般有两种方法来计算独立用户,一种将全天的数据放入数据库,然后根据时间做去重(distinct),另一种方案就是对于固定的时间开启新的计算窗口,只计算窗口内的数据,然后计算独立用户数。
对于将所有数据放入数据库中,根据时间做distinct统计用户数量的方式,数据量大,distinct计算慢,导致统计效率极低。而对某一特定的时间段开辟新的窗口做计算,然后将用户数据放入一个映射关系表(map)中,map的关键词(key)为用户id,要是计算20:50-21:30之间的独立用户,需要计算这段时间的map的大小。这种方式十分的不灵活,每次都需要提前开启一个map来存入用户的数据,而且只能计算固定时间的,比如上文说到的提前开启了20:80-21:30的窗口,但是当用户只想看21:20-21:30分到底有多少用户时,上述方法则无法实现。
针对相关技术中统计账号数量时的统计效率较低的问题,目前还没有有效地解决方案。
发明内容
本发明实施例提供了一种账号数量统计方法及装置,以至少解决相关技术中统计账号数量时的统计效率较低的问题。
根据本发明的一个实施例,提供了一种账号数量统计方法,包括:从数据表集合中获取所述待统计时间段对应的第一数据表,其中,所述数据表集合中的数据表用于记录第一账号标识与第一操作时间之间的对应关系,所述第一操作时间为所述第一账号登录的客户端执行所述目标操作的时间;对所述第一数据表中的每一个所述第一账号标识对应的数据与所述待统计时间段对应的数据进行运算,得到运算结果集合;统计所述运算结果集合中与目标运算结果匹配的运算结果的数量,并将所述运算结果的数量作为所述第一账号的数量。
可选地,从所述数据表集合中获取所述待统计时间段对应的所述第一数据表包括:确定所述待统计时间段在时间段集合中落入的目标时间段,其中,所述数据表集合中包括一个或者多个数据表,所述时间段集合中包括一个或者多个时间段,所述数据表集合中的数据表与所述时间段集合中的时间段一一对应;获取所述目标时间段在所述数据表集合中对应的数据表,得到所述第一数据表。
可选地,对所述第一数据表中的每一个所述第一账号标识对应的数据与所述待统计时间段对应的数据进行运算,得到运算结果集合包括:对所述第一数据表中的每一个所述第一账号标识对应的数据与所述待统计时间段对应的数据进行与运算,其中,所述每一个所述第一账号标识对应的数据中所述第一操作时间对应的数据位被置为1,所述待统计时间段对应的数据中所述待统计时间段指示的数据位被置为1。
可选地,统计所述运算结果集合中与目标运算结果匹配的运算结果的数量,并将所述运算结果的数量作为所述第一账号的数量包括:统计所述运算结果集合中运算结果为1的数量,并将所述运算结果为1的数量作为所述第一账号的数量。
可选地,在从数据表集合中获取所述待统计时间段对应的第一数据表之前,所述方法还包括:获取执行所述目标操作的第二账号对应的第二账号标识和所述第二账号登录的客户端执行所述目标操作的第二操作时间;获取所述第二操作时间在所述数据表集合中对应的第二数据表;将所述第二账号标识、所述第二操作时间记录在所述第二数据表中。
可选地,将所述第二账号标识、所述第二操作时间记录在所述第二数据表中包括:在所述第二数据表中查找所述第二账号标识;在查找到所述第二账号标识的情况下,将所述第二账号标识对应的数据中所述第二操作时间对应的数据位置为1;在未查找到所述第二账号标识的情况下,将所述第二账号标识添加到所述第二数据表中,并建立所述第二账号标识对应的数据;将建立的所述第二账号标识对应的数据中所述第二操作时间对应的数据位置为1。
根据本发明的另一个实施例,提供了一种账号数量统计装置,包括:第一获取模块,用于从数据表集合中获取待统计时间段对应的第一数据表,其中,所述数据表集合中的数据表用于记录第一账号标识与第一操作时间之间的对应关系,所述第一操作时间为所述第一账号登录的客户端执行所述目标操作的时间;运算模块,用于对所述第一数据表中的每一个所述第一账号标识对应的数据与所述待统计时间段对应的数据进行运算,得到运算结果集合;统计模块,用于统计所述运算结果集合中与目标运算结果匹配的运算结果的数量,并将所述运算结果的数量作为所述第一账号的数量。
可选地,所述装置还包括:第二获取模块,用于获取执行所述目标操作的第二账号对应的第二账号标识和所述第二账号登录的客户端执行所述目标操作的第二操作时间;第三获取模块,用于获取所述第二操作时间在所述数据表集合中对应的第二数据表;记录模块,用于将所述第二账号标识、所述第二操作时间记录在所述第二数据表中。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述任一项所述的方法。
根据本发明的又一个实施例,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任一项所述的方法。
通过本发明,从数据表集合中获取待统计时间段对应的第一数据表,其中,数据表集合中的数据表用于记录第一账号标识与第一操作时间之间的对应关系,第一操作时间为第一账号登录的客户端执行目标操作的时间;对第一数据表中的每一个第一账号标识对应的数据与待统计时间段对应的数据进行运算,得到运算结果集合;统计运算结果集合中与目标运算结果匹配的运算结果的数量,并将运算结果的数量作为第一账号的数量,由此可见,采用上述方案获取待统计时间段在数据表集合中对应的第一数据表,并利用待统计时间段对应的数据与第一数据表中每一个第一账号标识对应的数据进行运算,从运算结果集合中统计运算结果与目标运算结果匹配的数量,得到待统计的第一账号的数量,数据表集合中的数据表记录了第一账号标识与第一操作时间的对应关系,并且获取到的第一数据表是与待统计时间段对应的数据表,因此在第一数据表对应的时间内没有执行目标操作的账号不会出现在该第一数据表中,从而初步过滤掉了大部分的干扰数据,再利用数据间的简单运算统计第一账号的数量,节省了统计时间,加快了统计速度,使得账号数量的统计过程也更加的灵活,因此,提高了统计账号数量时的统计效率,从而解决了相关技术中统计账号数量时的统计效率较低的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种账号数量统计方法的流程图;
图2是根据本发明实施例的一种账号数量统计装置的结构框图一;
图3是根据本发明实施例的一种账号数量统计装置的结构框图二;
图4是根据本发明实施例的一种账号数量统计装置的结构框图三。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
在本实施例中提供了一种账号数量统计方法,图1是根据本发明实施例的一种账号数量统计方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,从数据表集合中获取待统计时间段对应的第一数据表,其中,数据表集合中的数据表用于记录第一账号标识与第一操作时间之间的对应关系,第一操作时间为第一账号登录的客户端执行目标操作的时间;
步骤S104,对第一数据表中的每一个第一账号标识对应的数据与待统计时间段对应的数据进行运算,得到运算结果集合;
步骤S106,统计运算结果集合中与目标运算结果匹配的运算结果的数量,并将运算结果的数量作为第一账号的数量。
可选地,上述账号数量统计方法可以但不限于应用于实时系统统计账号数量的场景中。例如:视频应用统计收看节目的用户的数量的场景等等。
可选地,上述账号数量统计方法可以但不限于应用于服务器端,例如:服务器端从客户端获取统计第一账号数量的指示信息,该指示信息中携带有待统计时间段,服务器响应该指示信息从数据表集合中获取待统计时间段对应的第一数据表,对第一数据表中的每一个第一账号标识对应的数据与待统计时间段对应的数据进行运算,得到运算结果集合,统计运算结果集合中与目标运算结果匹配的运算结果的数量,并将运算结果的数量作为第一账号的数量,服务器将统计得到的第一账号的数量返回给客户端,从而满足客户对账号数量的统计需求。
可选地,在本实施例中,上述目标操作可以但不限于包括点击、浏览、播放等等。例如:对网址链接、图片等的点击操作,对网页、文本等的浏览操作,对视频、音频等多媒体资源的播放操作等等。
可选地,在本实施例中,数据表集合中的数据表可以但不限于是与时间相对应的。例如:每一个数据表对应一个小时,一天有24个小时,那么,每一天的数据可以记录在24个数据表中,数据表集合中可以包括了一天或多天的数据表。
需要说明的是,中以小时为例划分数据表只是本实施例中所举的一个示例,还可以以其他度量单位划分数据表,本实施例对此不作限定。
可选地,在本实施例中,从数据表集合中获取待统计时间段对应的第一数据表可以是从数据表集合中获取待统计时间段对应的那个小时的数据表。例如:待统计时间段为12:10-12:40,则可以获取12点对应的那个数据表作为第一数据表。如果待统计时间段是跨小时的,则可以获取待统计时间段跨越的那几个小时对应的数据表。例如:待统计时间段为12:10-14:40,则可以获取12点、13点和14点对应的三个数据表作为第一数据表。
可选地,在本实施例中,对第一数据表中的数据和待统计时间段对应的数据进行的运算可以但不限于为“与”运算。
通过上述步骤,获取该统计时间段在数据表集合中对应的第一数据表,并利用待统计时间段对应的数据与第一数据表中每一个第一账号标识对应的数据进行运算,从运算结果集合中统计运算结果与目标运算结果匹配的数量,得到待统计的第一账号的数量,数据表集合中的数据表记录了第一账号标识与第一操作时间的对应关系,并且获取到的第一数据表是与待统计时间段对应的数据表,因此在第一数据表对应的时间内没有执行目标操作的账号不会出现在该第一数据表中,从而初步过滤掉了大部分的干扰数据,再利用数据间的简单运算统计第一账号的数量,节省了统计时间,加快了统计速度,使得账号数量的统计过程也更加的灵活,因此,提高了统计账号数量时的统计效率,从而解决了相关技术中统计账号数量时的统计效率较低的问题。
可选地,可以但不限于按照时间对数据进行记录,不同的数据表中记录了不同时间段获取的第一账号执行目标操作的数据,为了获取待统计时间段对应的第一数据表,可以获取待统计时间段落入的目标时间段,再根据时间段与数据表之间的对应关系获取目标时间段对应的数据表作为第一数据表。例如:在上述步骤S104中,确定待统计时间段在时间段集合中落入的目标时间段,其中,数据表集合中包括一个或者多个数据表,时间段集合中包括一个或者多个时间段,数据表集合中的数据表与时间段集合中的时间段一一对应;获取目标时间段在数据表集合中对应的数据表,得到第一数据表。
例如:对于每一天的数据,时间段集合中的时间段可以按小时划分为24个时间段,这24个时间段在数据表集合中对应了24张数据表。获取到待统计时间段为21:20-21:56,则可以确定待统计时间段对应的目标时间段为21:00-21:59,再在数据表集合中获取21:00-21:59对应的数据表作为第一数据表。
可选地,数据表中记录的数据可以但不限于为第一账号标识与操作时间的对应关系,该对应关系可以但不限于用二进制来表示,例如:1表示该账号在该时间执行过目标操作,0表示该账号在该时间未执行过目标操作,每一个第一账号标识对应的数据可以是一个二进制的数据序列,而待统计时间段对应的数据则可以是将该待统计时间段对应的位置上全部置为1,那么,对第一数据表中的每一个第一账号标识对应的数据与待统计时间段对应的数据进行与运算,如果运算结果为1表示该第一账号在待统计时间段内执行过目标操作。例如:在上述步骤S106中,可以对第一数据表中的每一个第一账号标识对应的数据与待统计时间段对应的数据进行与运算,其中,每一个第一账号标识对应的数据中第一操作时间对应的数据位被置为1,待统计时间段对应的数据中待统计时间段指示的数据位被置为1。
在一个可选的实施方式中,一张数据表可以设置有61个字段,第一个字段表示用户的ID(相当于上述第一账号标识),后面的所有字段表示这个用户在第几分钟出现过,比如在01分出现记为1,没出现默认为0,如表1所示。
表1
Userid | 01分 | 02分 | 03分 | 04分 | 05分 | 06分 | .... | 60分 |
User1 | 0 | 1 | 0 | 0 | 1 | 0 | … | 1 |
User2 | 1 | 0 | 0 | 1 | 0 | 1 | … | 0 |
User3 | 0 | 1 | 0 | 1 | 1 | 0 | … | 1 |
User4 | 1 | 0 | 0 | 0 | 0 | 0 | … | 1 |
User5 | 0 | 0 | 0 | 0 | 0 | 1 | … | 0 |
需要说明的是,如果用户在这一个小时内没有出现,这张数据表里面是不会出现用户的数据的。
由于一天有24个小时,每个小时60分钟,为了避免数据过大,造成计算时由于全表扫描带来的空间开销,所以可以每天生产24个数据表来将数据进行划分,所以每个小时都会对应一张数据表。
数据表生成之后,每一行的具体数据可以表示为以下形式(例如:下面的数据表示20点时候的用户数据):
User1
010010010010010010010010010010010010010010010010010010010010
User2
000010010010010010010010010010010010010010010010010010010010
User3
010010010010010010010010010010010010010010010010010010010010
User4
000010010010010010010010010010010010010010010010010010010010
User5
000010010010010010010010010010010010010010010010010010010010
User6
000100100100100100100100100010010010010010010010010010010010
……
UserN共60位01组成的二进制串。
如果需要计算20:10-20:30这段时间的独立用户数,那么只需要将每一个行与待统计时间段对应的下列二进制串(60位,第10位到第30位为1,其余全文0)进行“与”操作即可。
000000000111111111111111111111100000000000000000000000000000
比如与User1进行“与”操作之后的结果是:
User1
0000000000100100100100100100100000000000000000000000000000
只要结果大于0,则表示User1在20:10-20:30这段时间一定出现过。
可选地,在上述步骤S108中,可以通过统计运算结果集合中运算结果为1的数量,将运算结果为1的数量作为第一账号的数量,从而得到待统计时间段内的账号数量。
可选地,在上述步骤S104之前,可以但不限于通过以下方式记录执行目标操作的账号的数据:获取执行目标操作的第二账号对应的第二账号标识和第二账号登录的客户端执行目标操作的第二操作时间,获取第二操作时间在数据表集合中对应的第二数据表,将第二账号标识、第二操作时间记录在第二数据表中。
可选地,可以根据第二账号标识是否在第二数据标志出现过来记录第二账号标识对应的数据。例如:在第二数据表中查找第二账号标识,在查找到第二账号标识的情况下,将第二账号标识对应的数据中第二操作时间对应的数据位置为1,在未查找到第二账号标识的情况下,将第二账号标识添加到第二数据表中,并建立第二账号标识对应的数据;将建立的第二账号标识对应的数据中第二操作时间对应的数据位置为1。
可选地,在本实施例中,如果需要计算的待统计时间段是跨小时的,比如需要计算20:50-21:30,那么可以将20点对应的数据表与后10位全是1的60位二进制串做“与”操作,然后将21点对应的数据表与前30位全位1的60位二级制串做与操作,然后将两次计算的结果累加,就可以计算出这种跨小时的独立用户数。
实施例2
在本实施例中还提供了一种账号数量统计装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是根据本发明实施例的一种账号数量统计装置的结构框图一,如图2所示,该装置包括:
第一获取模块22,用于从数据表集合中获取待统计时间段对应的第一数据表,其中,数据表集合中的数据表用于记录第一账号标识与第一操作时间之间的对应关系,第一操作时间为第一账号登录的客户端执行目标操作的时间;
运算模块24,耦合至第一获取模块22,用于对第一数据表中的每一个第一账号标识对应的数据与待统计时间段对应的数据进行运算,得到运算结果集合;
统计模块26,耦合至运算模块24,用于统计运算结果集合中与目标运算结果匹配的运算结果的数量,并将运算结果的数量作为第一账号的数量。
可选地,上述账号数量统计装置可以但不限于应用于实时系统统计账号数量的场景中。例如:视频应用统计收看节目的用户的数量的场景等等。
可选地,上述账号数量统计装置可以但不限于应用于服务器端,例如:服务器端从客户端获取统计第一账号数量的指示信息,该指示信息中携带有待统计时间段,服务器响应该指示信息从数据表集合中获取待统计时间段对应的第一数据表,对第一数据表中的每一个第一账号标识对应的数据与待统计时间段对应的数据进行运算,得到运算结果集合,统计运算结果集合中与目标运算结果匹配的运算结果的数量,并将运算结果的数量作为第一账号的数量,服务器将统计得到的第一账号的数量返回给客户端,从而满足客户对账号数量的统计需求。
可选地,在本实施例中,上述目标操作可以但不限于包括点击、浏览、播放等等。例如:对网址链接、图片等的点击操作,对网页、文本等的浏览操作,对视频、音频等多媒体资源的播放操作等等。
可选地,在本实施例中,数据表集合中的数据表可以但不限于是与时间相对应的。例如:每一个数据表对应一个小时,一天有24个小时,那么,每一天的数据可以记录在24个数据表中,数据表集合中可以包括了一天或多天的数据表。
需要说明的是,中以小时为例划分数据表只是本实施例中所举的一个示例,还可以以其他度量单位划分数据表,本实施例对此不作限定。
可选地,在本实施例中,从数据表集合中获取待统计时间段对应的第一数据表可以是从数据表集合中获取待统计时间段对应的那个小时的数据表。例如:待统计时间段为12:10-12:40,则可以获取12点对应的那个数据表作为第一数据表。如果待统计时间段是跨小时的,则可以获取待统计时间段跨越的那几个小时对应的数据表。例如:待统计时间段为12:10-14:40,则可以获取12点、13点和14点对应的三个数据表作为第一数据表。
可选地,在本实施例中,对第一数据表中的数据和待统计时间段对应的数据进行的运算可以但不限于为“与”运算。
通过上述装置,获取该统计时间段在数据表集合中对应的第一数据表,并利用待统计时间段对应的数据与第一数据表中每一个第一账号标识对应的数据进行运算,从运算结果集合中统计运算结果与目标运算结果匹配的数量,得到待统计的第一账号的数量,数据表集合中的数据表记录了第一账号标识与第一操作时间的对应关系,并且获取到的第一数据表是与待统计时间段对应的数据表,因此在第一数据表对应的时间内没有执行目标操作的账号不会出现在该第一数据表中,从而初步过滤掉了大部分的干扰数据,再利用数据间的简单运算统计第一账号的数量,节省了统计时间,加快了统计速度,使得账号数量的统计过程也更加的灵活,因此,提高了统计账号数量时的统计效率,从而解决了相关技术中统计账号数量时的统计效率较低的问题。
图3是根据本发明实施例的一种账号数量统计装置的结构框图二,如图3所示,可选地,上述第一获取模块22包括:
确定单元32,用于确定待统计时间段在时间段集合中落入的目标时间段,其中,数据表集合中包括一个或者多个数据表,时间段集合中包括一个或者多个时间段,数据表集合中的数据表与时间段集合中的时间段一一对应;
获取单元34,耦合至确定单元32,用于获取目标时间段在数据表集合中对应的数据表,得到第一数据表。
可选地,可以但不限于按照时间对数据进行记录,不同的数据表中记录了不同时间段获取的第一账号执行目标操作的数据,为了获取待统计时间段对应的第一数据表,可以获取待统计时间段落入的目标时间段,再根据时间段与数据表之间的对应关系获取目标时间段对应的数据表作为第一数据表。
例如:对于每一天的数据,时间段集合中的时间段可以按小时划分为24个时间段,这24个时间段在数据表集合中对应了24张数据表。获取到待统计时间段为21:20-21:56,则可以确定待统计时间段对应的目标时间段为21:00-21:59,再在数据表集合中获取21:00-21:59对应的数据表作为第一数据表。
可选地,上述运算模块24用于:对第一数据表中的每一个第一账号标识对应的数据与待统计时间段对应的数据进行与运算,其中,每一个第一账号标识对应的数据中第一操作时间对应的数据位被置为1,待统计时间段对应的数据中待统计时间段指示的数据位被置为1。
可选地,数据表中记录的数据可以但不限于为第一账号标识与操作时间的对应关系,该对应关系可以但不限于用二进制来表示,例如:1表示该账号在该时间执行过目标操作,0表示该账号在该时间未执行过目标操作,每一个第一账号标识对应的数据可以是一个二进制的数据序列,而待统计时间段对应的数据则可以是将该段待统计时间段对应的位置上全部置为1,那么,对第一数据表中的每一个第一账号标识对应的数据与待统计时间段对应的数据进行与运算,如果运算结果为1表示该第一账号在待统计时间段内执行过目标操作。
在一个可选的实施方式中,一张数据表可以设置有61个字段,第一个字段表示用户的ID(相当于上述第一账号标识),后面的所有字段表示这个用户在第几分钟出现过,比如在01分出现记为1,没出现默认为0,如表1所示。
表1
Userid | 01分 | 02分 | 03分 | 04分 | 05分 | 06分 | .... | 60分 |
User1 | 0 | 1 | 0 | 0 | 1 | 0 | … | 1 |
User2 | 1 | 0 | 0 | 1 | 0 | 1 | … | 0 |
User3 | 0 | 1 | 0 | 1 | 1 | 0 | … | 1 |
User4 | 1 | 0 | 0 | 0 | 0 | 0 | … | 1 |
User5 | 0 | 0 | 0 | 0 | 0 | 1 | … | 0 |
需要说明的是,如果用户在这一个小时内没有出现,这张数据表里面是不会出现用户的数据的。
由于一天有24个小时,每个小时60分钟,为了避免数据过大,造成计算时由于全表扫描带来的空间开销,所以可以每天生产24个数据表来将数据进行划分,所以每个小时都会对应一张数据表。
数据表生成之后,每一行的具体数据可以表示为以下形式(例如:下面的数据表示20点时候的用户数据):
User1
010010010010010010010010010010010010010010010010010010010010
User2
000010010010010010010010010010010010010010010010010010010010
User3
010010010010010010010010010010010010010010010010010010010010
User4
000010010010010010010010010010010010010010010010010010010010
User5
000010010010010010010010010010010010010010010010010010010010
User6
000100100100100100100100100010010010010010010010010010010010
……
UserN共60位01组成的二进制串。
如果需要计算20:10-20:30这段时间的独立用户数,那么只需要将每一个行与待统计时间段对应的下列二进制串(60位,第10位到第30位为1,其余全文0)进行“与”操作即可。
000000000111111111111111111111100000000000000000000000000000
比如与User1进行“与”操作之后的结果是:
User1
0000000000100100100100100100100000000000000000000000000000
只要结果大于0,则表示User1在20:10-20:30这段时间一定出现过。
可选地,上述统计模块28用于:统计运算结果集合中运算结果为1的数量,并将运算结果为1的数量作为第一账号的数量。
图4是根据本发明实施例的一种账号数量统计装置的结构框图三,如图4所示,可选地,上述装置还包括:
第二获取模块42,用于获取执行目标操作的第二账号对应的第二账号标识和第二账号登录的客户端执行目标操作的第二操作时间;
第三获取模块44,耦合至第二获取模块42,用于获取第二操作时间在数据表集合中对应的第二数据表;
记录模块46,耦合至第三获取模块44和第一获取模块24之间,用于将第二账号标识、第二操作时间记录在第二数据表中。
可选地,上述记录模块46用于:在第二数据表中查找第二账号标识;在查找到第二账号标识的情况下,将第二账号标识对应的数据中第二操作时间对应的数据位置为1;在未查找到第二账号标识的情况下,将第二账号标识添加到第二数据表中,并建立第二账号标识对应的数据;将建立的第二账号标识对应的数据中第二操作时间对应的数据位置为1。
可选地,在本实施例中,如果需要计算的待统计时间段是跨小时的,比如需要计算20:50-21:30,那么可以将20点对应的数据表与后10位全是1的60位二进制串做“与”操作,然后将21点对应的数据表与前30位全位1的60位二级制串做与操作,然后将两次计算的结果累加,就可以计算出这种跨小时的独立用户数。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项所述的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,从数据表集合中获取待统计时间段对应的第一数据表,其中,数据表集合中的数据表用于记录第一账号标识与第一操作时间之间的对应关系,第一操作时间为第一账号登录的客户端执行目标操作的时间;
S2,对第一数据表中的每一个第一账号标识对应的数据与待统计时间段对应的数据进行运算,得到运算结果集合;
S3,统计运算结果集合中与目标运算结果匹配的运算结果的数量,并将运算结果的数量作为第一账号的数量。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本发明的实施例还提供了一种处理器,该处理器用于运行程序,其中,该程序运行时执行上述任一项方法中的步骤。
可选地,在本实施例中,上述程序用于执行以下步骤:
S1,从数据表集合中获取待统计时间段对应的第一数据表,其中,数据表集合中的数据表用于记录第一账号标识与第一操作时间之间的对应关系,第一操作时间为第一账号登录的客户端执行目标操作的时间;
S2,对第一数据表中的每一个第一账号标识对应的数据与待统计时间段对应的数据进行运算,得到运算结果集合;
S3,统计运算结果集合中与目标运算结果匹配的运算结果的数量,并将运算结果的数量作为第一账号的数量。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种账号数量统计方法,其特征在于,包括:
从数据表集合中获取待统计时间段对应的第一数据表,其中,所述数据表集合中的数据表用于记录第一账号标识与第一操作时间之间的对应关系,所述第一操作时间为所述第一账号登录的客户端执行目标操作的时间;
对所述第一数据表中的每一个所述第一账号标识对应的数据与所述待统计时间段对应的数据进行运算,得到运算结果集合;
统计所述运算结果集合中与目标运算结果匹配的运算结果的数量,并将所述运算结果的数量作为所述第一账号的数量;
对所述第一数据表中的每一个所述第一账号标识对应的数据与所述待统计时间段对应的数据进行运算,得到运算结果集合包括:对所述第一数据表中的每一个所述第一账号标识对应的数据与所述待统计时间段对应的数据进行与运算,其中,所述每一个所述第一账号标识对应的数据中所述第一操作时间对应的数据位被置为1,所述待统计时间段对应的数据中所述待统计时间段指示的数据位被置为1;
统计所述运算结果集合中与目标运算结果匹配的运算结果的数量,并将所述运算结果的数量作为所述第一账号的数量包括:统计所述运算结果集合中运算结果为1的数量,并将所述运算结果为1的数量作为所述第一账号的数量。
2.根据权利要求1所述的方法,其特征在于,从所述数据表集合中获取所述待统计时间段对应的所述第一数据表包括:
确定所述待统计时间段在时间段集合中落入的目标时间段,其中,所述数据表集合中包括一个或者多个数据表,所述时间段集合中包括一个或者多个时间段,所述数据表集合中的数据表与所述时间段集合中的时间段一一对应;
获取所述目标时间段在所述数据表集合中对应的数据表,得到所述第一数据表。
3.根据权利要求1至2中任一项所述的方法,其特征在于,在从数据表集合中获取所述待统计时间段对应的第一数据表之前,所述方法还包括:
获取执行所述目标操作的第二账号对应的第二账号标识和所述第二账号登录的客户端执行所述目标操作的第二操作时间;
获取所述第二操作时间在所述数据表集合中对应的第二数据表;
将所述第二账号标识、所述第二操作时间记录在所述第二数据表中。
4.根据权利要求3所述的方法,其特征在于,将所述第二账号标识、所述第二操作时间记录在所述第二数据表中包括:
在所述第二数据表中查找所述第二账号标识;
在查找到所述第二账号标识的情况下,将所述第二账号标识对应的数据中所述第二操作时间对应的数据位置为1;
在未查找到所述第二账号标识的情况下,将所述第二账号标识添加到所述第二数据表中,并建立所述第二账号标识对应的数据;将建立的所述第二账号标识对应的数据中所述第二操作时间对应的数据位置为1。
5.一种账号数量统计装置,其特征在于,包括:
第一获取模块,用于从数据表集合中获取待统计时间段对应的第一数据表,其中,所述数据表集合中的数据表用于记录第一账号标识与第一操作时间之间的对应关系,所述第一操作时间为所述第一账号登录的客户端执行目标操作的时间;
运算模块,用于对所述第一数据表中的每一个所述第一账号标识对应的数据与所述待统计时间段对应的数据进行运算,得到运算结果集合;
统计模块,用于统计所述运算结果集合中与目标运算结果匹配的运算结果的数量,并将所述运算结果的数量作为所述第一账号的数量;
所述运算模块用于对所述第一数据表中的每一个所述第一账号标识对应的数据与所述待统计时间段对应的数据进行与运算,其中,所述每一个所述第一账号标识对应的数据中所述第一操作时间对应的数据位被置为1,所述待统计时间段对应的数据中所述待统计时间段指示的数据位被置为1;
所述统计模块用于统计所述运算结果集合中运算结果为1的数量,并将所述运算结果为1的数量作为所述第一账号的数量。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取执行所述目标操作的第二账号对应的第二账号标识和所述第二账号登录的客户端执行所述目标操作的第二操作时间;
第三获取模块,用于获取所述第二操作时间在所述数据表集合中对应的第二数据表;
记录模块,用于将所述第二账号标识、所述第二操作时间记录在所述第二数据表中。
7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行权利要求1至4中任一项所述的方法。
8.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710929828.9A CN110019388B (zh) | 2017-09-30 | 2017-09-30 | 账号数量统计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710929828.9A CN110019388B (zh) | 2017-09-30 | 2017-09-30 | 账号数量统计方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019388A CN110019388A (zh) | 2019-07-16 |
CN110019388B true CN110019388B (zh) | 2021-02-26 |
Family
ID=67186443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710929828.9A Active CN110019388B (zh) | 2017-09-30 | 2017-09-30 | 账号数量统计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019388B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880676A (zh) * | 2012-09-10 | 2013-01-16 | 新浪网技术(中国)有限公司 | 统计用户行为数据的方法及用户行为数据统计系统 |
CN105468699A (zh) * | 2015-11-18 | 2016-04-06 | 珠海多玩信息技术有限公司 | 去重数据统计方法及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970752B (zh) * | 2013-01-25 | 2017-12-05 | 秒针信息技术有限公司 | 独立访问者数量估算方法和系统 |
CN103605738B (zh) * | 2013-11-19 | 2017-03-15 | 北京国双科技有限公司 | 网页访问数据统计方法及装置 |
CN104504077B (zh) * | 2014-12-22 | 2018-04-03 | 北京国双科技有限公司 | 网页访问数据的统计方法和装置 |
CN105872624A (zh) * | 2015-12-14 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 收视率统计方法、终端、服务器与系统 |
-
2017
- 2017-09-30 CN CN201710929828.9A patent/CN110019388B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880676A (zh) * | 2012-09-10 | 2013-01-16 | 新浪网技术(中国)有限公司 | 统计用户行为数据的方法及用户行为数据统计系统 |
CN105468699A (zh) * | 2015-11-18 | 2016-04-06 | 珠海多玩信息技术有限公司 | 去重数据统计方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110019388A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105912587A (zh) | 一种数据采集方法和系统 | |
CN110896488B (zh) | 一种直播间的推荐方法以及相关设备 | |
CN112783857B (zh) | 一种数据血缘管理方法、装置、电子设备及存储介质 | |
JP2016535369A (ja) | アプリケーションプログラム及びユーザ推薦情報の提供 | |
CN102546668B (zh) | 一种独立访问者的统计方法、装置及系统 | |
CN104699710A (zh) | 用户结构判断方法和装置以及账号状态记录方法和装置 | |
CN106055630A (zh) | 日志存储的方法及装置 | |
WO2013130626A1 (en) | Method and apparatus of user recognition and information distribution | |
CN110881131B (zh) | 一种直播回看视频的分类方法及其相关装置 | |
CN104270654A (zh) | 互联网视频播放监测方法和装置 | |
CN106649363A (zh) | 数据查询方法及装置 | |
CN110795026B (zh) | 热点数据的识别方法、装置、设备及存储介质 | |
CN103617221A (zh) | 软件推荐方法及系统 | |
CN110019388B (zh) | 账号数量统计方法及装置 | |
CN105550250B (zh) | 一种访问日志的处理方法及装置 | |
CN106933934B (zh) | 数据表的连接方法和装置 | |
CN106534341A (zh) | 一种推送更新新闻的方法及装置 | |
CN109213841B (zh) | 直播主题样本提取方法、存储介质、电子设备及系统 | |
CN105824903A (zh) | 一种生成计数事件的方法及装置 | |
CN105681097B (zh) | 获取终端设备更换周期的方法和装置 | |
CN112749946B (zh) | 一种word2vec模型训练、数据召回方法及装置 | |
CN110532242B (zh) | 业务消息发送方法和装置 | |
CN112417281A (zh) | 数据分析方法、装置及设备 | |
CN106611059A (zh) | 推荐多媒体文件的方法及装置 | |
CN109558402B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |