一种对海量数据的维度用户的处理方法与流程

文档序号:12470510阅读:461来源:国知局
一种对海量数据的维度用户的处理方法与流程

本发明涉及一种数据处理方法,特别是涉及一种对海量数据中特定类型数据的处理方法。



背景技术:

在竞争与机遇并存的数字化信息时代,数据的分析与统计以决策支撑的身份出现在经济、管理、规划和投资等许多相关领域。作为为企业经营部门和决策层提供重要决策依据的技术手段,需要完成对反应和影响企业发展的重要数据进行实时收集、分析,并及时形成关键信息并反馈的处理过程,在满足时效性的前提下,客观地反应业务发展状况。

例如对经营性企业来说,用户数指标是反映业务发展的一项关键指标。

在用户业务量不断增长的情况下,海量数据环境下如何快速计算出用户数,已经成为数据分析系统亟待解决的业务需求。在面对每天产生的上亿条用户使用日志进行海量数据统计处理的计算中,用户数的快速读取计算是一个急需解决的技术难题。

目前,计算海量数据的现有技术通常采用的方法是进行一次对一种维度(即某一个计算指标或参数,例如日期、业务类型、用户类型等)的统计需求,就要对全部数据进行一次扫描计算,具体方法包括分组、去重、求和的过程。用户数的计算过程是首先要在全部数据中排除重复用户的标识,然后计算去重后的用户数量。

当增加统计维度时,还需要重新进行去重操作与重复计算,其计算量非常巨大和耗时。例如:针对一天的日志数据分别计算网络类型和业务类型的用户数时,按照现有技术的方法,需要扫描两次日志文件数据源:第一次计算网络类型的用户对象的数量,第二次计算业务类型的用户对象数量。

当需要以上两种类型(两个维度)的组合用户数时,还需要重新进行一次扫描和计算,而每一次的扫描与统计计算因为涉及海量的数据对象,都会占用大量的计算机资源。每一次对数据源(通常是存储在数据库中的日志数据)的扫描,需要调用高级数据接口、处理复杂数据对象,往往要对数据库引擎、处理器和磁盘系统、内存系统造成较大压力,海量数据的扫描周期较长也不利于保证时效性。

如何快速完成多维度用户数据的扫描计算形成多维度数据分析结果,这一计算机数值分析与统计领域的技术问题,往往涉及以下技术难点:

如何定位数据源中的某一维度的数据,在去重的同时保证数据的离散化和可检索。这是保证减少完整扫描次数和满足数据扫描结果积累更新的关键。

如何形成对海量数据的高效中间运算,尽量运用低级运算方式和方法,避免高级数据对象运算形成的高TPS(每秒处理事务数)消耗。



技术实现要素:

有鉴于此,本发明实施例提供了一种对海量数据的维度用户的处理方法,用于解决海量数据的用户维度数据分析中数据分析过程效率低下,无法有效利用计算机资源的技术问题。

本发明的一种对海量数据的维度用户的处理方法,包括:

利用线性结构数据存储一个维度的用户分布数据;

通过数据容器建立与用户分布数据相应的二进制序列;

根据用户分布数据对二进制序列幅值和填充;

通过数据容器形成单一维度用户位置数据文件;

利用各单一维度用户位置数据文件的相应位运算形成多维度用户位置数据文件。

所述线性结构数据为链表结构,存储无重复用户的用户分布数据。

所述线性结构数据为队列结构,存储重复用户的用户分布数据。

所述对二进制序列幅值包括:

在赋值过程中与二进制序列的位内容进行布尔运算,用运算结果赋值。

将所述单一维度用户位置数据文件加载在所述数据容器中,对所述数据容器中的二进制序列进行特定位内容数量统计。

所述形成多维度用户位置数据文件包括:

将各所述单一维度用户位置数据文件加载在所述数据容器中,形成相应的二进制序列;

在二进制序列间相应的位对象进行布尔运算,形成一个与多维度用户位置数据相应的二进制序列。

还包括:

对利用所述数据容器中的与多维度用户位置数据相应的二进制序列进行特定位内容数量统计。

所述用户分布数据的形成包括:

扫描数据源,提取数据源中单一维度的用户数据中的用户信息,形成相应的用户标识;

用户标识与用户键值对数据比较,形成用户的相应键值对数据;

将相应用户键值对数据形成线性结构数据;

利用线性结构数据中的值定位内存中的存储位并赋值,形成用户分布数据。

所述用户键值对的形成包括:

扫描数据源,获取用户信息,提取用户的唯一用户标识;

为每一用户分配唯一的数字标识;

将唯一用户标识和唯一的数字标识形成用户的键值对数据。

所述数据容器采用BLOB,相应位运算采用布尔运算。

本发明的对海量数据的维度用户的处理方法,利用维度用户在线性位置的形成的可测量和存储的分布信息,利用布尔运算形成相应维度类型的用户信息。解决了维度数据处理无法利用高效运算方式造成处理结果时效性差和系统负荷无法降低的技术问题。利用用户与离散数值间建立的位置标识,在内存空间中建立位置关联,将映射的用户信息以位置信息存储,充分利用内存环境的寻址性能和处理器低级运算的绝对优势,将海量数据中的维度用户数据分析的运算周期大大缩短。

附图说明

图1a为本发明对海量数据的维度用户的处理方法一实施例的流程图;

图1b为本发明对海量数据的维度用户的处理方法一实施例的预置流程图;

图2为本发明对海量数据的维度用户的处理方法一实施例的位置标识的形成流程图;

图3为本发明对海量数据的维度用户的处理方法一实施例的用户分布的形成流程图;

图4为本发明对海量数据的维度用户的处理方法一实施例的维度数据的形成流程图;

图5为本发明对海量数据的维度用户的处理方法一实施例的多维度用户分析的形成流程图;

图6为本发明对海量数据的维度用户的处理方法一实施例形成维度用户数据的过程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图纸中的步骤编号仅用于作为该步骤的附图标记,不表示执行顺序。

本发明的对海量数据的维度用户的处理方法,利用数的离散性,将与用户对应的连续数值形成相关的位置标识,将位置标识映射为二维空间中的位置和距离,并利用内存地址的连续性确定相应的位置和距离,利用布尔运算形成相应维度类型的用户信息。

图1a为本发明一实施例的对海量数据的维度用户的处理方法的流程图,为形成多维度用户信息的过程。如图1a所示,该方法包括:

步骤02:扫描数据源,利用位置标识定位单一维度下的用户位置信息,形成用户分布数据;

步骤03:根据用户分布数据形成可存储的维度用户数据;

步骤04:在可存储的维度用户数据间,通过布尔运算形成多维数据分析结果。

本实施例的对海量数据的维度用户的处理方法,利用用户与离散数值间建立的位置标识,在内存空间中建立位置关联,将映射的用户信息以位置信息存储,充分利用内存环境的寻址性能和处理器低级运算的绝对优势,将海量数据中的维度用户数据分析的运算周期大大缩短。在复杂的多维度用户数的处理过程中,可以将数据源扫描频率降低、分析过程简化,处理速度可以提高一至两个量级。

图1b为本发明一实施例的对海量数据的维度用户的处理方法的预置流程图,提供了一种形成位置标识的过程,如图1b所示,该方法包括:

步骤01:建立用户标识键值结构,形成用户的位置标识。

步骤01作为利用位置标识进行数据处理前的独立的数据处理过程。

本实施例的对海量数据的维度用户的处理方法,利用数值的离散性,将离散用户与连续数值关联形成位置标识,连续数值映射为二维空间中的距离和位置。

图2为本发明对海量数据的维度用户的处理方法一实施例的位置标识的形成流程图。如图2所示包括:

步骤11:获取数据源中的用户信息,提取用户标识;

通过分段扫描数据源,获取用户信息,提取用户的唯一用户标识。具有分段提取数据功能有利于数据源积累时的更新。

步骤12:为每一用户分配唯一的数字标识,形成用户标识和数字标识的键值对数据;

待分配的数字标识具有连续性,且不可重复,每个用户的用户标识固定对应一个数字标识,数字标识的分配具有随机性。保证键及键值的唯一性,数字标识的分配符合正态分布。

步骤13:利用键值对数据建立可读入内存的用户键值对结构数据。

例如,利用JAVA编程将该用户标识和数字标识的对应关系加载至哈希映射对象HashMap中,形成"用户名:数字标识"的键值对数据结构,用户标识为键,数字标识为值。

图3为本发明对海量数据的维度用户的处理方法一实施例的用户分布的形成流程图。如图3所示包括:

步骤21:分段扫描数据源,提取数据源中单一维度的用户数据中的用户信息,形成相应的用户标识;

可以是同步提取数据源中其他各维度的用户数据中的用户信息,形成后续并行的数据处理过程。

步骤22:用户标识与内存中的用户键值对结构数据比较,形成去重的用户的相应键值对数据;

去重,体现了在同一维度中的用户数量,也可以采用对用户标识进行标记,对标记进行布尔或运算,过滤重复的用户信息。例如,在分段扫描数据源的过程中,在用户键值对结构数据上设置标记为1,被标记过的用户键值对对应的重复用户标识放弃。适合在一次完整的海量数据的用户分布数据形成过程中使用,可以与分段扫描配合。

步骤23:将相应用户键值对数据形成线性结构数据;

线性结构数据采用链表结构,利用键和值确定相应链表节点的域值。

步骤24:利用线性结构数据中的值定位内存中的存储位,利用键作为赋值依据,赋值,形成二维空间中的用户分布数据。

利用内存的连续寻址特点,将离散的用户数据通过键值对映射在内存的连续地址空间中,获得位置的索引信息,并充分利用内存运算速度,避免与存储装置频繁交互。

图4为本发明对海量数据的维度用户的处理方法一实施例的维度数据的形成流程图。如图4所示包括:

步骤31:通过数据容器建立可存储的数据环境;

利用数据库中存储二进制大对象文件的容器BLOB建立数据容器,也可以用个编程语言化凝重的相应数据类型对象形成容器。

步骤32:根据用户分布数据中的位置数据确定存储范围;

位置数据的最大值可用来确定数据容器的尺寸,数据容器的尺寸与位置数据数值相适应,可以后续扩大,与用户积累更新相适应。

步骤33:根据用户分布数据中的位置数据在数据容器的相应位赋值,在数据容器的其他位填充;

在数据容器的与位置数据对应的位赋值1,在其他位赋值0。也可以先填充0,再做相应的赋值过程。

步骤34:将数据容器中的内容形成磁盘文件,作为单一维度的用户的位置的数据文件。

利用数据容器形成尺寸与内存地址相应的位或字节的对应存储,将内存地址中的信息映射为磁盘文件中具体的位或字节。用于映射用户标识的连续内存地址在磁盘文件中形成相对起始位置的偏移地址,保证了映射前后的位置和间距的固定。

在本发明对海量数据的维度用户的处理方法一实施例的数据处理过程中,在上述步骤21中以并行方式同步提取数据源中其他各维度的用户数据中的用户信息的相应后续步骤会形成若干个单一维度的用户的位置的数据文件。

图5为本发明对海量数据的维度用户的处理方法一实施例的多维度用户分析的形成流程图。如图5所示包括:

步骤41:利用数据容器获取不同单一维度的用户的位置的数据文件;

步骤42:在数据容器中对各数据文件的相应位进行布尔运算,形成布尔运算的结果序列,计数结果序列中的标识值,形成相应维度的用户数信息。

单一维度用户位置数据文件中包括以位数据形成的用户分布数据中的位置信息和用户信息,利用相同位置的用户信息标记内容做必要的布尔运算,可以充分利用软硬件环境的优势,完成数据分析。

例如,不同维度用户的数据文件中相同位置的布尔运算有下述两种:

位与是两个二进制位做与运算:该两个位必须都为1时,它们的与运算结果才为1,否则为0;

位或是两个二进制位做或运算:该两个位只要有一个为1,它们的或运算结果就为1,否则为0。

将BLOB存储位置二进制位对象转换为JAVA中表示大整数数据结构的BigInteger对象;

若是统计一个纬度的用户数,则对单一维度用户位置数据文件调用BigInteger对象的bitCount()方法,统计其中二进制1的个数,就能够获得用户数的数据。

若是统计多个纬度组合匹配的用户数,则要对多个单一维度用户位置数据文件相应的位对象进行布尔运算,形成一个二进制序列,再计算位运算后的BigInteger对象的1的个数,才能得到所需求的用户数数据。

本发明的对海量数据的维度用户的处理方法的上述实施例的中的去重,可以与线性结构数据的结构优化相结合,形成另一种用户分布数据的形成过程,包括:

在步骤22替换为:用户标识与内存中的用户键值对结构数据比较,形成包括重复用户的相应键值对数据;

在步骤23的线性结构数据采用队列数据结构:将相应用户键值对数据形成队列,记录包含重复出现的用户键值。

相应的,在步骤33替换为:根据用户分布数据中的位置数据在数据容器的相应位利用布尔运算去重、赋值,在数据容器的其他位填充。

本实施例中,利用改变线性结构数据的数据结构,改变了去重的处理步骤和实现位置,可以使得去重尽量利用低级的布尔运算,避免对高级数据对象的运算,进一步提高处理性能。

如图4和图5所示的过程形成过程,可以进一步简化为对海量数据的维度用户的处理方法,包括:

利用线性结构数据存储一个维度的用户分布数据;

通过数据容器建立与用户分布数据相应的二进制序列;

根据用户分布数据对二进制序列幅值和填充;

通过数据容器形成单一维度用户位置数据文件;

利用各单一维度用户位置数据文件的相应位运算形成多维度用户位置数据文件。

图6为本发明对海量数据的维度用户的处理方法一实施例形成维度用户数据的过程示意图。如图6所示,用户标识键值结构形成的键值对为“用户:数值”,一用户对应一个唯一的数值,数值以递增的整数连续分配。数值与内存的地址相匹配,一数值对应内存一地址(具体为位地址或字节地址)。当在单一维度的用户位置计算时,例如该维度的数据对象中出现user1、2、3、5、6,那么经计算映射,在相应内存地址的寄存器置1,则所有用户范围内的用户信息序列数据位1110110,该数据采用BLOB对象可以直接处理为相应的二进制序列形成相应的磁盘文件,使位置及用户信息与维度相对应地保存,并用于后续的数据分析。

根据本发明实施例的对海量数据的维度用户的处理方法形成的相应的处理装置,至少包括:

用户分布数据生成装置,用于扫描数据源,利用位置标识定位单一维度下的用户位置信息,形成用户分布数据的;

维度用户数据生成装置,用于根据用户分布数据形成可存储的维度用户数据的装置;

多维数据分析结果生成装置,用于在可存储的维度用户数据间,通过布尔运算形成多维数据分析结果的装置。

还包括位置标识装置,用于建立用户标识键值结构,形成用户的位置标识。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1