在线人数分布计算方法及装置制造方法及图纸

技术编号:13342958 阅读:60 留言:0更新日期:2016-07-13 20:44
本发明专利技术公开了一种在线人数分布计算方法及装置,属于在线直播领域。该方法包括获取各个用户在互联网产品中对应于不同类型的客户端的在线时间段;对于每个用户在对应于不同类型的客户端的存在交集的在线时间段,按照交集端点进行分裂,得到每个用户在不同在线类型下的分裂时间段;根据每个用户在不同在线类型下的分裂时间段,计算对应于某一类型客户端的在线人数统计数据;解决了在计算对应于不同类型的客户端的在线人数统计数据时,计算数量庞大,计算较为耗时的问题;达到了在计算过程中规避笛卡尔乘积和大量的去重计算,计算在线人数在不同类型的客户端上的分布情况时简化数据,减少计算数据计算量,提高算法运行效率的效果。

【技术实现步骤摘要】
在线人数分布计算方法及装置
本专利技术实施例涉及在线直播领域,特别涉及一种在线人数计算方法及装置。
技术介绍
在互联网产品中,用户客户端一般分为三类型:电脑客户端、手机客户端和网页客户端。当统计出互联网产品的最高在线人数之后,为更好地观察用户分布情况,还需要统计出每一秒的同时在线人数,以及每一秒的同时在线人数在三种客户端上的分布情况。现有技术中,使用事实表存储用户的在线数据,事实表中的每条记录里至少包括互联网产品名、日期、用户名、客户端、开始时间和结束时间,使用时间维表存储一天的时间,时间维表中用秒表征00:00:00至23:59:59的时间,一秒为一条记录,共有24*3600即86400条记录。在利用SQL(StructuredQueryLanguage,结构化查询语言)计算在线人数时,需要将事实表和时间维表做连接运算,若事实表中有N条记录,则完成N*86400次运算后,得到N*86400个每一秒三种用户客户端上总的同时在线人数的统计结果,再重复N*86400次运算后,得到每一秒各个用户客户端上同时在线人数的统计结果。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:由于将事实表和时间维表做连接时是做笛卡尔乘积,事实表和时间维表连接之后的数据集大小为N*86400,且每计算一秒的同时在线人数就需要进行一次去重统计,完成N*86400次计算相当于需要进行N*86400次去重统计,导致计算过程中数据量过于庞大,计算过程较为耗时。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种在线人数分布计算方法及装置。该技术方案如下:第一方面,提供了一种在线人数分布计算方法,该方法包括:获取各个用户在互联网产品中对应于不同类型的客户端的在线时间段;对于每个用户在对应于不同类型的客户端的存在交集的在线时间段,按照交集端点进行分裂,得到每个用户在不同在线类型下的分裂时间段,在线类型是按照用户在同一时间内在线的客户端数量和客户端类型而进行划分的;根据每个用户在不同在线类型下的分裂时间段,计算对应于某一类型客户端的在线人数统计数据。可选的,对于每个用户在对应于不同类型的客户端的存在交集的在线时间段,按照交集端点进行分裂,得到每个用户在不同在线类型下的分裂时间段,包括:对于每个用户,将用户对应于不同类型的客户端的在线时间段按照起始时间的先后顺序进行排序,得到m个在线时间段,m为正整数;获取m个在线时间段中的第i个在线时间段,i的初始值为2;利用第i个在线时间段对已有的分裂时间段进行分裂;已有的分裂时间段是对前i-1个在线时间段进行分裂后得到的分裂时间段,已有的分裂时间段的初始值是m个在线时间段中的第1个在线时间段;在i<m时,令i=i+1,重复执行获取m个在线时间段中的第i个时间段的步骤。可选的,利用第i个在线时间段对已有的分裂时间段进行分裂,包括:检测第i个在线时间段与已有的分裂时间段中的第x个在线时间段是否存在交集,x的初始值为1,已有的分裂时间段中共有k个在线时间段,k为正整数;若第i个在线时间段与已有的分裂时间段中的第x个在线时段存在交集,则利用第i个在线时间段按照交集端点对已有的分裂时间段中的第x个在线时间段进行分裂,得到分裂时间段;在x<k时,令x=x+1,重复执行检测第i个在线时间段与已有的分裂时间段中的第x个在线时间段是否存在交集的步骤;其中,分裂时间段中起始时间和结束时间均为交集端点时,分裂时间段的在线类型对应于至少两种类型的客户端。可选的,利用第i个在线时间段按照交集端点对已有的分裂时间段中的第x个在线时间段进行分裂,得到分裂时间段,包括:根据交集端点,将第i个在线时间段和已有的分裂时间段中的第x个在线时间段分裂为不存在交集的分裂时间段;在x<k时,检测第i个在线时间段的结束时间是否晚于已有的分裂时间段中的第x个在线时段的结束时间;若第i个在线时间段的结束时间晚于已有的分裂时间段中的第x个在线时段的结束时间,则从得到的分裂时间段中确定出指定分裂时间段,指定分裂时间段的起始时间为第x个在线时间段的结束时间加一个计量时间的最小刻度,指定分裂时间段的结束时间为第i个在线时间段的结束时间;令x=x+1,将指定分裂时间段重新确定为第i个在线时间段,重新执行检测第i个在线时间段与已有的分裂时间段中的第x个在线时间段是否存在交集的步骤。可选的,检测第i个在线时间段的结束时间是否晚于已有的分裂时间段中的第x个在线时段的结束时间之后,还包括:若第i个在线时间段的结束时间不晚于已有的分裂时间段中的第x个在线时段的结束时间,则令x=x+1,重新执行检测第i个在线时间段与已有的分裂时间段中的第x个在线时间段是否存在交集的步骤。可选的,检测第i个在线时间段与已有的分裂时间段中的第x个在线时间段是否存在交集之后,还包括:若第i个在线时间段与已有的分裂时间段中的第x个在线时间段不存在交集,则在x<k时,令x=x+1,重新执行检测第i个在线时间段与已有的分裂时间段中的第x个在线时间段是否存在交集的步骤。可选的,根据每个用户在不同在线类型下的分裂时间段,计算对应于某一类型客户端的在线人数统计数据,包括:对于每个用户对应于不同在线类型的分裂时间段,逐个取出分裂时间段中所包括的每个时间点,时间点采用秒表征;若统计数据中尚不存在时间点,则将时间点添加至统计数据;对于每个时间点对应的客户端类型,若时间点对应的客户端类型已经存在于统计数据中,则将客户端类型对应的在线人数加一;若时间点对应的客户端类型尚不存在,则将客户端类型添加至统计数据中,并将客户端类型对应的在线人数设置为一。第二方面,提供了一种在线人数分布计算装置,该装置包括:获取模块,用于获取各个用户在互联网产品中对应于不同类型的客户端的在线时间段;分裂模块,用于对于每个用户在对应于不同类型的客户端的存在交集的在线时间段,按照交集端点进行分裂,得到每个用户在不同在线类型下的分裂时间段,在线类型是按照用户在同一时间内在线的客户端数量和客户端类型而进行划分的;计算模块,用于根据每个用户在不同在线类型下的分裂时间段,计算对应于某一类型客户端的在线人数统计数据。可选的,分裂模块包括:排序单元,用于对于每个用户,将用户对应于不同类型的客户端的在线时间段按照起始时间的先后顺序进行排序,得到m个在线时间段,m为正整数;获取单元,用于获取m个在线时间段中的第i个在线时间段,i的初始值为2;分裂单元,用于利用第i个在线时间段对已有的分裂时间段进行分裂;已有的分裂时间段是对前i-1个在线时间段进行分裂后得到的分裂时间段,已有的分裂时间段的初始值是m个在线时间段中的第1个在线时间段;重复单元,用于在i<m时,令i=i+1,重复执行获取m个在线时间段中的第i个时间段的步骤。可选的,分裂单元包括:检测子单元,用于检测第i个在线时间段与已有的分裂时间段中的第x个在线时间段是否存在交集,x的初始值为1,已有的分裂时间段中共有k个在线时间段,k为正整数;分裂子单元,用于若第i个在线时间段与已有的分裂时间段中的第x个在线时段存在交集,则利用第i个在线时间段按照交集端点对已有的分裂时间段中的第x个在线时间段进行分裂,得到分裂时间段;第一重复子单元,用于在x<k时,令x=x+1,重复执行检测第i个在线时间段本文档来自技高网...

【技术保护点】
一种在线人数分布计算方法,其特征在于,所述方法包括:获取各个用户在互联网产品中对应于不同类型的客户端的在线时间段;对于每个用户在对应于不同类型的客户端的存在交集的在线时间段,按照交集端点进行分裂,得到每个用户在不同在线类型下的分裂时间段,所述在线类型是按照用户在同一时间内在线的客户端数量和客户端类型而进行划分的;根据所述每个用户在不同在线类型下的分裂时间段,计算对应于某一类型客户端的在线人数统计数据。

【技术特征摘要】
1.一种在线人数分布计算方法,其特征在于,所述方法包括:从互联网产品相关的事实表中获取各个用户在所述互联网产品中对应于不同类型的客户端的在线时间段;对于每个用户在对应于不同类型的客户端的存在交集的在线时间段,按照交集端点进行分裂,得到每个用户在不同在线类型下的分裂时间段,所述在线类型是按照用户在同一时间内在线的客户端数量和客户端类型而进行划分的;根据所述每个用户在不同在线类型下的分裂时间段,计算对应于某一类型客户端的在线人数统计数据;所述根据所述每个用户在不同在线类型下的分裂时间段,计算对应于某一类型客户端的在线人数统计数据,包括:对于每个所述用户对应于所述不同在线类型的分裂时间段,逐个取出所述分裂时间段中所包括的每个时间点;若所述统计数据中尚不存在所述时间点,则将所述时间点添加至所述统计数据;对于每个时间点对应的客户端类型,若所述时间点对应的客户端类型已经存在于所述统计数据中,则将所述客户端类型对应的在线人数加一;若所述时间点对应的客户端类型尚不存在,则将所述客户端类型添加至所述统计数据中,并将所述客户端类型对应的在线人数设置为一。2.根据权利要求1所述的方法,其特征在于,所述对于每个用户在对应于不同类型的客户端的存在交集的在线时间段,按照交集端点进行分裂,得到每个用户在不同在线类型下的分裂时间段,包括:对于每个用户,将所述用户对应于不同类型的客户端的在线时间段按照起始时间的先后顺序进行排序,得到m个在线时间段,m为正整数;获取所述m个在线时间段中的第i个在线时间段,i的初始值为2;利用所述第i个在线时间段对已有的分裂时间段进行分裂;所述已有的分裂时间段是对前i-1个在线时间段进行分裂后得到的分裂时间段,所述已有的分裂时间段的初始值是所述m个在线时间段中的第1个在线时间段;在i<m时,令i=i+1,重复执行所述获取所述m个在线时间段中的第i个时间段的步骤。3.根据权利要求2所述的方法,其特征在于,所述利用所述第i个在线时间段对已有的分裂时间段进行分裂,包括:检测所述第i个在线时间段与所述已有的分裂时间段中的第x个在线时间段是否存在交集,x的初始值为1,所述已有的分裂时间段中共有k个在线时间段,k为正整数;若所述第i个在线时间段与所述已有的分裂时间段中的第x个在线时段存在交集,则利用所述第i个在线时间段按照所述交集端点对所述已有的分裂时间段中的第x个在线时间段进行分裂,得到分裂时间段;在x<k时,令x=x+1,重复执行所述检测所述第i个在线时间段与所述已有的分裂时间段中的第x个在线时间段是否存在交集的步骤;其中,所述分裂时间段中所述起始时间和结束时间均为所述交集端点时,所述分裂时间段的在线类型对应于至少两种类型的客户端。4.根据权利要求3所述的方法,其特征在于,所述利用所述第i个在线时间段按照所述交集端点对所述已有的分裂时间段中的第x个在线时间段进行分裂,得到分裂时间段,包括:根据所述交集端点,将所述第i个在线时间段和所述已有的分裂时间段中的第x个在线时间段分裂为不存在交集的分裂时间段;在x<k时,检测所述第i个在线时间段的结束时间是否晚于所述已有的分裂时间段中的第x个在线时段的结束时间;若所述第i个在线时间段的结束时间晚于所述已有的分裂时间段中的第x个在线时段的结束时间,则从得到的所述分裂时间段中确定出指定分裂时间段,所述指定分裂时间段的起始时间为所述第x个在线时间段的结束时间加一个计量时间的最小刻度,所述指定分裂时间段的结束时间为所述第i个在线时间段的结束时间;令x=x+1,将所述指定分裂时间段重新确定为所述第i个在线时间段,重新执行所述检测所述第i个在线时间段与所述已有的分裂时间段中的第x个在线时间段是否存在交集的步骤。5.根据权利要求4所述的方法,其特征在于,所述检测所述第i个在线时间段的结束时间是否晚于所述已有的分裂时间段中的第x个在线时段的结束时间之后,还包括:若所述第i个在线时间段的结束时间不晚于所述已有的分裂时间段中的第x个在线时段的结束时间,则令x=x+1,重新执行所述检测所述第i个在线时间段与所述已有的分裂时间段中的第x个在线时间段是否存在交集的步骤。6.根据权利要求3所述的方法,其特征在于,所述检测所述第i个在线时间段与所述已有的分裂时间段中的第x个在线时间段是否存在交集之后,还包括:若所述第i个在线时间段与所述已有的分裂时间段中的第x个在线时间段不存在交集,则在x...

【专利技术属性】
技术研发人员:陶胜
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1