数据分析方法、 系统及服务器 【技术领域】
本申请涉及通信和计算机技术领域, 特别涉及一种数据分析方法、 系统及服务器。背景技术 随着 web2.0 技术的发展, 互联网应用或者互联网平台中的业务数据, 如用户行为 数据和平台系统数据, 都呈现出海量增长的趋势。 为了便于海量业务数据的处理, 挖掘其内 在价值, 通常采用一种并行的数据处理架构来支撑海量数据的处理工作, 即利用多个分布 式的计算机相互协作工作, 共同完成对海量数据的处理。
当前, 在大型的互联网网站平台中, 应用最为广泛的一种并行的数据处理架构为 Hadoop 系统框架。在 Hadoop 的系统架构中包括有一个主服务器和多个从服务器组成的集 群, 主服务器将海量数据分割成多个数据块, 再将分割后的数据块分配给多个并行的从服 务器, 由每个从服务器处理各自的数据块, 并将处理的结果发送至主服务器, 主服务器将处 理的结果合并后输出。此外, 当前阶段主服务器输出的合并结果又可以作为下一阶段主服 务器进行数据处理的一个输入, 得到下一阶段的合并结果。这种并行和串行相结合的处理 方式可以使并行的数据处理系统高效地处理海量数据。
目前, 对于数据的分析方法主要为基于关系型数据库的数据分析方法, 然而, 这种 方法很难基于并行的数据处理架构对关系型数据库的数据进行分析, 特别是在需要进行归 类、 报表生成等复杂的数据分析处理工作时, 难以满足实际需要。因此, 基于关系型数据库 的数据分析方法并不适用于对并行的数据处理架构中的海量数据进行分析。
发明内容
为了解决上述技术问题, 本申请实施例提供了一种数据分析方法、 系统及服务器, 以实现对并行的数据处理架构中的海量数据进行分析。
本申请实施例公开公开了如下技术方案 : 一种数据分析方法, 包括 :
从服务器接收主服务器发送的文件, 其中, 所述文件携带待分析的原始数据的数 据标识和预置键值对, 所述预置键定义了从服务器对待分析的原始数据进行归类的方式, 所述预置值定义了从服务器对归类后的原始数据进行分析处理的方式 ; 从服务器根据所述 数据标识, 从数据源中获取待分析的原始数据, 其中, 所述原始数据中数据元素之间以分割 标识进行隔离 ; 从服务器根据所述分割标识将获取的原始数据切割成数据元素 ; 从服务器 按照预置键中对数据元素的定义方式, 对获取的原始数据进行归类 ; 从服务器按照预置值 的定义, 对归类后的原始数据进行分析处理, 并将分析处理结果反馈给主服务器。
本申请还提供另一种数据分析方法, 包括 : 多线程中子线程接收主线程发送的文 件, 其中, 所述文件携带待分析的原始数据的数据标识和预置键值对, 所述预置键定义了子 线程对待分析的原始数据进行归类的方式, 所述预置值定义了子线程对归类后的原始数据 进行分析处理的方式 ; 子线程根据所述数据标识, 从数据源中获取待分析的原始数据, 其 中, 所述原始数据中数据元素之间以分割标识进行隔离 ; 子线程根据所述分割标识将获取的原始数据切割成数据元素 ; 子线程按照预置键中对数据元素的定义方式, 对获取的原始 数据进行归类 ; 子线程按照预置值的定义, 对归类后的原始数据进行分析处理, 并将分析处 理结果反馈给主线程。
本申请还提供一种数据分析系统, 包括 : 一主服务器和至少两个从服务器, 其中, 所述主服务器, 用于向从服务器发送文件, 并对接收到的分析处理结果进行合并, 其中, 所 述文件携带待分析的原始数据的数据标识和预置键值对, 所述预置键定义了从服务器对待 分析的原始数据进行归类的方式, 所述预置值定义了从服务器对归类后的原始数据进行分 析处理的方式 ; 所述从服务器, 用于接收主服务器发送的文件, 根据所述数据标识, 从数据 源中获取待分析的原始数据, 其中, 所述原始数据中数据元素之间以分割标识进行隔离, 根 据所述分割标识将获取的原始数据切割成数据元素, 按照预置键中对数据元素的定义方 式, 对获取的原始数据进行归类, 按照预置值的定义, 对归类后的原始数据进行分析处理, 并将分析处理结果反馈给主服务器。
本申请还提供另一数据分析系统, 包括 : 一主线程模块和至少两个子线程模块, 其 中, 所述主线程模块, 用于向子线程模块发送文件, 并对接收到的分析处理结果进行合并, 其中, 所述文件携带待分析的原始数据的数据标识和预置键值对, 所述预置键定义了子线 程模块对待分析的原始数据进行归类的方式, 所述预置值定义了子线程模块对归类后的原 始数据进行分析处理的方式 ; 所述子线程模块, 用于接收主线程模块发送的文件, 根据所述 数据标识, 从数据源中获取待分析的原始数据, 其中, 所述原始数据中数据元素之间以分割 标识进行隔离, 根据所述分割标识将获取的原始数据切割成数据元素, 按照预置键中对数 据元素的定义方式, 对获取的原始数据进行归类, 按照预置值的定义, 对归类后的原始数据 进行分析处理, 并将分析处理结果反馈给主线程模块。 本申请还提供一种从服务器, 包括 : 第一文件接收模块, 用于接收主服务器发送的 文件, 其中, 所述文件携带待分析的原始数据的数据标识和预置键值对, 所述预置键定义了 从服务器对待分析的原始数据进行归类的方式, 所述预置值定义了从服务器对归类后的原 始数据进行分析处理的方式 ; 第一数据获取模块, 用于根据所述数据标识, 从数据源中获取 待分析的原始数据, 其中, 所述原始数据中数据元素之间以分割标识进行隔离 ; 第一数据切 割模块, 用于根据所述分割标识将获取的原始数据切割成数据元素 ; 第一数据归类模块, 用 于按照预置键中对数据元素的定义方式, 对获取的原始数据进行归类 ; 第一数据计算模块, 用于按照预置值的定义, 对归类后的原始数据进行分析处理, 并将分析处理结果反馈给主 服务器。
本申请还提供另一种服务器, 包括 : 第二文件接收模块, 用于接收主线程发送的文 件, 其中, 所述文件携带待分析的原始数据的数据标识和预置键值对, 所述预置键定义了子 线程对待分析的原始数据进行归类的方式, 所述预置值定义了子线程对归类后的原始数据 进行分析处理的方式 ; 第二数据获取模块, 用于根据所述数据标识, 从数据源中获取待分析 的原始数据, 其中, 所述原始数据中数据元素之间以分割标识进行隔离 ; 第二数据切割模 块, 用于根据所述分割标识将获取的原始数据切割成数据元素 ; 第二数据归类模块, 用于按 照预置键中对数据元素的定义方式, 对获取的原始数据进行归类 ; 第二数据计算模块, 用于 按照预置值的定义, 对归类后的原始数据进行分析处理, 并将分析处理结果反馈给主线程。
由上述实施例可以看出, 首先从数据源中获取待分析的原始数据, 然后按照分割
标识将原始数据切割成数据元素, 并将切割得到的数据元素作为键值对中的键, 再从切割 得到的数据元素中, 提取出符合预置键值对中的键定义的数据元素, 最后按照预置键值对 中的值定义, 对提取出的数据元素进行分析处理, 并将分析处理结果反馈给主服务器, 以便 主服务器对接收到的分析处理结果进行合并。因此, 为并行的数据处理架构中的海量数据 进行分析提供了具体的实现方案。 附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 申请的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可 以根据这些附图获得其他的附图。
图 1 为本申请一种数据分析方法的一个实施例的流程图 ;
图 2 为本申请一种数据分析方法的另一个实施例的流程图 ;
图 3 为本申请一种从服务器的一个实施例的结构图 ;
图 4 为本申请一种从服务器的另一个实施例的结构图 ;
图 5 为本申请一种从服务器的另一个实施例的结构图 ; 图 6 为本申请一种服务器的一个实施例的结构图 ; 图 7 为本申请一种数据分析系统的一个实施例的结构图 ; 图 8 为本申请一种数据分析系统的另一个实施例的结构图。具体实施方式
为使本申请的上述目的、 特征和优点能够更加明显易懂, 下面结合附图对本申请 实施例进行详细描述。
本申请实施例中的数据分析方法可以对任何并行的数据处理架构中的海量数据 进行分析, 例如, Hadoop 系统框架中的海量数据。本申请实施例对并行的数据处理架构并 不进行限定。
实施例一
请参阅图 1, 其为本申请一种数据分析方法的一个实施例的流程图, 其应用于包括 一个主服务器和多个从服务器组成的集群系统中, 该方法包括以下步骤 :
步骤 101 : 从服务器接收主服务器发送的文件, 其中, 所述文件中携带从服务器待 分析的原始数据的数据标识和预置键值对, 所述预置键定义了从服务器对待分析的原始数 据进行归类的方式, 所述预置值定义了从服务器对归类后的原始数据进行分析处理的方 式;
例如, 在一个并行的数据处理架构中, 主服务器向各个从服务器发送一个文件, 在 文件中携带有数据标识和预置键值对, 其中的预置键值对可以有多个。 其中, 所述数据标识 指示了对应的从服务器需要获取的待分析的原始数据, 例如, 数据的地址信息等可以作为 数据标识, 指示对应的从服务器待分析的原始数据。 所述预置键值对包括预置键和预置值, 预置键定义了从服务器对待分析的原始数据进行归类的方式 ; 预置值定义了从服务器对归 类后的原始数据进行分析处理的方式。 例如, 假设一预置键值对中, 预置键为 : key = “1, 2,3” , 预置值为 : value = max($a$+$b$+$c$)。 则该预置键值对具体定义了从服务器需要对待 分析的原始数据按照第 1 至 3 列数据元素进行归类, 并按照预置值的定义, 对归类后的原始 数据中第 a 列、 第 b 列和第 c 列的数据元素的分析处理方法为求和后再取最大值。
需要说明的是, 预置值定义的分析处理方法可以包括但不限于 : 统计最小值 (min)、 统计最大值 (max)、 计算平均值 (average)、 计数 (count)、 求和 (sum) 及直接显示 (plain) 等, 直接显示 (plain) 一般用于主键列的显示。当然, 分析处理过程也可以包括其 他的计算方法, 本申请实施例对分析处理的方式并不进行限定。
步骤 102 : 从服务器根据所述数据标识, 从数据源中获取待分析的原始数据, 其 中, 所述原始数据中数据元素之间以分割标识进行隔离 ;
例如, 各个从服务器根据自身接收的数据标识, 从数据源处获取数据标识所指示 的待分析的原始数据, 如, 数据源可以是 FTP 服务器、 数据库 (DB) 或文件系统, 具体数据的 格式可以是数据表、 记录、 日志等。 并且, 在本申请的原始数据中, 各个数据元素之间以分割 标识进行隔离。该分割标识可以是逗号、 分号、 空格、 冒号等。本申请实施例中以逗号作为 数据元素之间的分割标识进行举例说明。
例如, 以下为一段从数据源处获取原始数据, 该原始数据为日志片段。 在这个日志 片段中, 每个数据元素之间以逗号隔离。 并且, 在这个日志片段中, 共有两段记录, 每个记录 以回车换行符作为记录的结束。 0, 203.171.227.117 ,null ,xml , 12005554 ,taobao.user.get , 0, 0, 0, 172.24.14.65, 小郭 cc, 1.0, null, 3, null, 0, 1274803197776, 0, 0, 0, 1, 0, 0, 0, 0, 8, 0, 0, 0, 9
0, 97.74.215.111, null, xml, 12028711, taobao.taobaoke.items.detail.get, 0, 0, null, 172.24.14.65, null, 2.0, md5, 4, null, 221000, 1274803197765, 0, 2, -1, 1, 0, 0, 0, 0, 23, 0, 0, 0, 26
步骤 103 : 从服务器根据所述分割标识将获取的原始数据切割成数据元素 ;
例如, 如果各个数据元素之间以逗号隔离, 则可以按照逗号将第一条记录切割成 以下共 30 个数据元素 : 第一个数据元素为 0, 第二数据元素为 203.171.227.117, 第三个数 据元素为 null, 第四个数据元素为 xml, 第五个数据元素为 12005554, 第六个数据元素为 taobao.user.get, ......, 第 30 个数据元素为 9。
同样, 可以按照上述方式将第二条记录切割成 30 个数据元素。
步骤 104 : 从服务器按照预置键中对数据元素的定义方式, 对获取的原始数据进 行归类 ;
仍以上述第一条记录为例, 如果在预置键值对中定义的预置键为 : key = “1, 2, 3” , 则从切割得到的数据元素中提取出的符合预置键值对中预置对应的数据元素, 即原始 数据中的第 1 至 3 列数据元素 0、 203.171.227.117 和 null。
例如, 仍旧以预置键为 : key = “1, 2, 3” , 预置值为 : value = max($a$+$b$+$c$) 例 来说明上述预置键值对的作用。如, 对于一个从服务器上的 10 个待分析的原始数据而言, 当通过预置键的归类后, 发现在 10 个待分析的原始数据中, 有 7 个原始数据中的第 1 至 3 列数据元素相同, 另外 3 个原始数据中的第 1 至 3 列的数据元素相同, 则分别对 7 个原始数 据中第 a 列、 第 b 列和第 c 列的数据元素求和, 再取最大值, 并且分别对另外 3 个原始数据 中第 a 列、 第 b 列和第 c 列的数据元素求和, 再取最大值。
但是, 当记录中的数据元素较多时, 或者数据元素在原始数据中的顺序发生变化 时, 容易发生数据元素操作错误的现象。例如, 当数据元素在原始数据中的顺序发生变化, 相应地, 该数据元素对应的预置键的定义也会发生变化。如, 假设数据元素 0 对应的预置键 的定义为 : key = “1” , 当其在原始数据中的顺序向右移动一位后, 其对应的预置键的定义 变为 key = “2” 。此时, 如果要提取数据元素 0, 必须修改其在预置键值对中的预置键的定 义, 即由 key = 1 修改为 key = 2, 否则就会提取错误的数据元素。为了保证当数据元素移 位时, 不必重新修改其在预置键值对中的预置键的定义, 优选地, 为每个数据元素设定一个 别名, 如下所示, 每个数据元素都对应一个别名。
由上述内容可知, 在一个记录中, 第一个数据元素的别名为″ appStatus″, 第二 个数据元素的别名为″ remoteIp″, ......, 依此类推。此时, 上述预置键值对中定义的 预置键相应地被别名替换为 : key = “appStatus, remoteIp, partnerId” 。可见, 即使第 一个数据元素 0 在记录中向右移动一位后, 其在记录中的顺序发生变化, 但是其别名仍为 “appStatus” , 因此, 不必修改预置键值对中的预置键的定义。
步骤 105 : 从服务器按照预置值的定义, 对归类后的原始数据进行分析处理, 并将 分析处理结果反馈给主服务器, 主服务器对接收到的分析处理结果进行汇总。并且还可以 进一步执行对应的分析处理工作, 例如采用与从服务器相同的处理方式, 对收到的分析结 果进行分析、 合并等工作。
例 如, 如果在预置键值对中定义的预置键为 : key = ″ version, apiName, format″, 定义的预置值为 : value =″ average($responseMappingTime$)″, 当从服务器 按照预置键的定义从获取的原始数据中提取出数据元素 version、 apiName 和 format 相同 的原始数据
( 记录 ) 后, 即, 对原始数据进行归类后, 按照预置值的定义, 从服务器对提取出的 原始数据中的数据元素 responseMappingTime 进行求平均计算。 以下为一个文件中的预置键值对中对预置键和预置值的定义。
其中, 在第一条预置键值对中, 预置键定义了从服务器对数据元素 version、 apiName 和 format 相同的原始数据进行归类, 预置值定义了从服务器对归类后的原始数据 中的数据元素 apiName 进行显示 ;
在第二条预置键值对中, 预置键定义了从服务器对数据元素 version、 apiName 和 format 相同的原始数据进行归类, 预置值定义了从服务器对归类后的原始数据中的数据元 素 version 进行显示 ;
在第三条键值对中, 预置键定义了从服务器对数据元素 version、 apiName 和 format 相同的原始数据进行归类, 预置值定义了从服务器对归类后的原始数据中的数据元 素 format 进行显示 ;
在第四条键值对中, 预置键定义了从服务器对数据元素 version、 apiName 和 format 相同的原始数据进行归类, 预置值定义了从服务器对归类后的原始数据中的数据元 素 responseMappingTime 进行求平均计算 ;
在第五条键值对中, 预置键定义了从服务器对数据元素 version、 apiName 和 format 相同的原始数据进行归类, 预置值定义了对归类后的原始数据中的数据元素 responseMappingTime 求最大值 ;
在第六条键值对中, 预置键定义了从服务器对数据元素 version、 apiName 和 format 相同的原始数据进行归类, 预置值定义了从服务器对归类后的原始数据中的数据元 素 timestamp9 进行求平均计算 ;
在第七条键值对中, 预置键定义了从服务器对数据元素 version、 apiName 和 format 相同的原始数据进行归类, 预置值定义了从服务器统计 (count) 归类后预置键相同 的的原始数据 ( 记录 ) 的数量。 另外, 上述七条键值对中还指定了预置值结果的显示名称, 如, “服务名称” 、 “版本 号” 、 “返回格式” 、 “Mapping 时间” 、 “Mapping 时间最大” 、 “业务平均消耗时间 (ms)” 和 “处 理总数” 等。
经过上述数据分析处理后, 下面为数据分析处理结果的一个数据片段。
11
版本 号 1 1 1 1 1 1 1 1 json json json 0 0 0 json 0 json 0 0 0 0 0 0 xml 0 0 json 0 0 xml 0 0 格式 时间 时间最大 返回 Mapping Mapping 业务平均消 耗时间 (ms) 88.73333 417.2395 423.9512 128.5 306.25 158.2 13.5 7 处理 总数 15 3561 1210 10 16 5 4 1
102314460 A CN 102314464服务名称taobao.areas.gettaobao.delivery.send说taobao.delivery.send明上 述 数据 片段中, 第 一行数 据表示, 按照预 置 键对 应的数 据 元素 “version” 、 “apiName”和 “format”进 行 归 类, 即按照 “服 务 名 称” 、 “版 本 号” 、 “返 回 格 式”分 别 为 “taobao.areas.get” 、 “1” 和 “xml” 对数据记录进行归类, 相同的数据记录的处理总数为 15 条, 其 Mapping 时间和 Mapping 时间最大均为 0, 15 条记录统计的业务平均消耗时间为 88.73333ms。12taobao.fenxiao.alipay.user.get书taobao.fenxiao.delivery.sendtaobao.fenxiao.distributor.addtaobao.fenxiao.supplier.punishtaobao.fenxiao.supplier.update8/14 页102314460 A CN 102314464
说明书9/14 页从上述实例中可以看出, 本申请实施例通过文件中的预置键值对中对预置键和预 置值的定义, 可实现数据的归类、 统计分析、 报表生成 ( 例如可根据设定的预置键值对的顺 序生成报表 ) 等复杂功能, 例如适合于各种不同类型数据的海量分析、 处理, 为并行的数据 处理架构中的海量数据的分析、 处理以及报表的生成提供了一种方便、 灵活、 直观、 具体的 实现方案。
当各个从服务器对原始数据进行分析处理后, 将各自的分析处理结果反馈给主服 务器, 由主服务器对接收到的分析处理结果进行合并。 其中, 主服务器也可按照预置键值对 中预置键的定义对从多个从服务器处得到分析处理结果进行归类, 并按照预置键值对中预 置值的定义对归类的分析处理结果进行合并处理。 例如, 在主服务器中, 预置键定义了主服 务器对分析处理结果进行归类的方式, 预置值定义主服务器对归类后的分析处理结果进行 合并处理的方法。例如, 假设主服务器接收到了来自 5 个从服务器上报的分析处理结果共 10 个, 按照预置键的定义, 其中的 7 个分析处理结果可以进行归类, 另外的 3 个分析处理结 果可以进行归类, 则主服务器分别可以对归类后的 7 个分析处理结果按照预置值的定义进 行合并处理, 以及, 对归类后的另外 3 个分析处理结果按照预置值的定义进行合并处理。由 于前面已经详细说明了预置键的归类方法和预置值的处理方法, 故此处不再赘述。
需要说明的是, 上述实施例一除了应用于由一个主服务器和多个从服务器所组成 的集群系统中外, 还可以应用于由一个主线程和多个子线程所组成的一个数据分析服务器 中。此时, 主线程用于实现主服务器的功能, 子线程用于实现从服务器的功能。
由上述实施例可以看出, 首先从数据源中获取待分析的原始数据, 然后按照分割 标识将原始数据切割成数据元素, 并将切割得到的数据元素作为键值对中的键, 再从切割 得到的数据元素中, 提取出符合预置键值对中的键定义的数据元素, 最后按照预置键值对 中的值定义, 对提取出的数据元素进行分析处理, 并将分析处理结果反馈给主服务器, 以便 主服务器对接收到的分析处理结果进行合并。因此, 为并行的数据处理架构中的海量数据 进行分析提供了具体的实现方案。
实施例二
当从服务器按照预置键中对数据元素的定义方式对获取的原始数据进行归类之 后, 根据用户的实际使用需求, 还可对归类后的原始数据进行进一步的过滤, 以过滤掉用户 不需要的一部分原始数据, 保留用户需要的原始数据。因此, 本实施例与实施例一的区别 在于 : 为了筛除掉归类后的原始数据中不需要处理的原始数据, 在执行完步骤 104 后, 还包 括: 从归类后的原始数据中筛选出符合第一预置过滤条件的原始数据。请参阅图 2, 其为本 申请一种数据分析方法的另一个实施例的流程图, 该方法包括以下步骤 :
步骤 201 : 从服务器接收主服务器发送的文件, 其中, 所述文件中包括待分析的原 始数据的数据标识和预置键值对, 所述预置键定义了从服务器对待分析的原始数据进行归 类的方式, 所述预置值定义了从服务器对归类后的原始数据进行分析处理的方式 ;
步骤 202 : 从服务器根据所述数据标识, 从数据源中获取待分析的原始数据, 其 中, 所述原始数据中数据元素之间以分割标识进行隔离 ;
步骤 203 : 从服务器根据所述分割标识将获取的原始数据切割成数据元素 ;
步骤 204 : 从服务器按照预置键中对数据元素的定义方式对获取的原始数据进行 归类 ;需要说明的是, 上述步骤 201 至步骤 204 的执行过程可以参见实施例一中步骤 101 至步骤 104, 此处不再赘述。
步骤 205 : 从服务器从归类后的原始数据中筛选出符合第一预置过滤条件的原始 数据 ;
例如, 当从服务器初始时从数据源处获取的 10 个原始数据, 并经过预置值的归类 后, 将其中的 7 个原始数据进行了归类, 将另外的 3 个原始数据进行了归类。而根据用户的 实际使用需求, 7 个归类后的原始数据经过第一预置过滤条件的过滤后, 从中筛选出 5 个符 合第一预置过滤条件的原始数据, 从服务器将按照预置值的定义对这 5 个筛选出的原始数 据进行分析处理。
其中, 第一预置过滤条件包括大于、 小于、 不等于、 大于或者等于和小于或者等于 等条件表达式。 当然, 第一预置过滤条件为用户根据实际使用需求而设置的条件, 本申请实 施例对其不进行限定。
步骤 206 : 从服务器按照预置键值对中预置值的定义, 对筛选出的原始数据进行 分析处理, 并将分析处理结果反馈给主服务器。
另外, 当按照预置键值对中的预置值定义, 对筛选出的原始数据进行分析处理之 后, 根据用户的实际使用需求, 有些分析处理结果是不符合使用条件的分析处理结果。 优选 地, 为了筛除掉不符合使用条件的分析处理结果, 在按照预置键值对中的预置值的定义, 对 筛选出的数据元素进行分析处理之后, 且将分析处理结果反馈给主服务器之前, 还包括 : 从 分析处理得到的分析处理结果中筛选出符合第二预置过滤条件的分析处理结果。
其中, 第二预置过滤条件为用于根据实际使用需求而设置的条件, 支持大于、 小 于、 不等于、 大于或者等于、 小于或者等于和是否是数字等表达式。
另外, 对于一个报表数据的分析来说, 除了对数据本身作分析以外, 还可能需要能 够对数据与其他数据作对比分析, 产生一些预警, 避免出现的问题或者关注的内容被埋没 在海量的数据之中。 优选地, 本申请实施例中, 当主服务器对接收到的分析处理结果进行合 并处理后, 将得到的合并处理结果与同一时间下的历史合并结果进行对比分析, 根据对比 分析的结果产生预警信号。 例如, 用户可以根据各自的使用需求设定各种预警条件, 当主服 务器对接收到的分析处理结果进行合并处理后, 将合并处理结果与同一时间下的历史合并 结果进行对比分析, 判断对比分析的结果是否满足预警条件, 如果是, 生产预警信号。 其中,
具体地, 可以包括四种对比分析方式 :
将今天 (day) 合并处理后的数据与昨天合并处理后的数据进行对比。例如, 将今 天合并处理后的数据与昨天合并处理后的数据进行比对, 预警条件是前者小于后者时, 产 生预警信号。
预警条件为将将今天的数据和上周 (week) 同一时间的数据进行对比。
预警条件为将将今天的数据与上月 (month) 的同一时间数据进行对比分析。
将今天合并处理后的数据与定义的时间同期合并处理后的数据进行对比。
当然, 根据具体的应用需求, 还可以包括其他的对比分析方式, 本申请对对比分析 方式及预警条件的设立并不进行限定。
需要说明的是, 上述实施例二除了应用于由一个主服务器和多个从服务器所组成 的集群系统中外, 同样可以应用于由一个主线程和多个子线程所组成的一个数据分析服务器中。此时, 主线程用于实现主服务器的功能, 子线程用于实现从服务器的功能。其中, 优 选地, 子线程按照预置键中对数据元素的定义方式, 对获取的原始数据进行归类之后, 还包 括: 子线程从归类后的原始数据中筛选出符合第一预置过滤条件的原始数据 ; 则按照预置 值的定义, 对归类后的原始数据键进行分析处理为 : 按照预置值的定义, 对筛选出的原始数 据进行分析处理。
优选的, 子线程按照预置值的定义, 对归类后的原始数据进行分析处理之后, 还包 括: 子线程从分析处理得到的分析处理结果中筛选出符合第二预置过滤条件的分析处理结 果; 则所述将分析处理结果反馈给主线程为 : 将筛选出的分析处理结果反馈给主线程。
优选的, 当主线程对接收到的分析处理结果进行合并处理后, 将得到的合并处理 结果与同一时间下的历史合并结果进行对比分析, 根据对比分析的结果产生预警信号。
由上述实施例可以看出, 首先从数据源中获取待分析的原始数据, 然后按照分割 标识将原始数据切割成数据元素, 并将切割得到的数据元素作为键值对中的键, 再从切割 得到的数据元素中, 提取出符合预置键值对中的键定义的数据元素, 最后按照预置键值对 中的值定义, 对提取出的数据元素进行分析处理, 并将分析处理结果反馈给主服务器, 以便 主服务器对接收到的分析处理结果进行合并。因此, 为并行的数据处理架构中的海量数据 进行分析提供了具体的实现方案。 并且通过过滤条件可以过滤掉原始数据中不符合条件的 数据, 使分析处理后的数据更加准确有效。 此外还通过设定的预警条件, 避免出现的问题或 者关注的内容被埋没在海量的数据之中。 实施例三
与上述一种数据分析方法相对应, 本申请实施例还提供了一种数据分析装置。请 参阅图 3, 其为本申请一种从服务器的一个实施例的结构图, 该从服务器包括第一文件接收 模块 301、 第一数据获取模块 302、 第一数据切割模块 303、 第一数据归类模块 304 和第一数 据计算模块 305。下面结合该装置的工作原理进一步介绍其内部结构以及连接关系。
第一文件接收模块 301, 用于接收主服务器发送的文件, 其中, 所述文件携带待分 析的原始数据的数据标识和预置键值对, 所述预置键定义了从服务器对待分析的原始数据 进行归类的方式, 所述预置值定义了从服务器对归类后的原始数据进行分析处理的方式 ;
第一数据获取模块 302, 用于根据所述数据标识, 从数据源中获取待分析的原始数 据, 其中, 所述原始数据中数据元素之间以分割标识进行隔离 ;
第一数据切割模块 303, 用于根据所述分割标识将获取的原始数据切割成数据元 素;
第一数据归类模块 304, 用于按照预置键中对数据元素的定义方式, 对获取的原始 数据进行归类 ;
第一数据计算模块 305, 用于按照预置值的定义, 对归类后的原始数据进行分析处 理, 并将分析处理结果反馈给主服务器。
优选的, 请参阅图 4, 其为本申请一种从服务器的另一个实施例的结构图, 所述从 服务器还包括第一过滤模块 306, 用于从归类后的原始数据中筛选出符合第一预置过滤条 件的原始数据 ; 则第一数据计算模块 305 按照预置值的定义, 对筛选出的原始数据进行分 析处理。
优选的, 请参阅图 5, 其为本申请一种从服务器的另一个实施例的结构图, 所述从
服务器还包括 : 第二过滤模块 307, 用于从分析处理得到的分析处理结果中筛选出符合第 二预置过滤条件的分析处理结果 ; 则第一数据计算模块 305 将筛选出的分析处理结果反馈 给主服务器。
由上述实施例可以看出, 首先从数据源中获取待分析的原始数据, 然后按照分割 标识将原始数据切割成数据元素, 并将切割得到的数据元素作为键值对中的键, 再从切割 得到的数据元素中, 提取出符合预置键值对中的键定义的数据元素, 最后按照预置键值对 中的值定义, 对提取出的数据元素进行计算, 并将计算结果反馈给主服务器, 以便主服务器 对接收到的计算结果进行合并。因此, 为并行的数据处理架构中的海量数据进行分析提供 了具体的实现方案。
实施例四
与上述一种数据分析方法相对应, 本申请实施例还提供了一种数据分析装置。请 参阅图 6, 其为本申请一种服务器的一个实施例的结构示意图。所述服务器包括 : 第二文件 接收模块 601、 第一数据获取模块 602、 第一数据切割模块 603、 第一数据归类模块 604 和第 一数据计算模块 605。下面结合该装置的工作原理进一步介绍其内部结构以及连接关系。
第二文件接收模块 601, 用于接收主线程发送的文件, 其中, 所述文件携带待分析 的原始数据的数据标识和预置键值对, 所述预置键定义了子线程对待分析的原始数据进行 归类的方式, 所述预置值定义了子线程对归类后的原始数据进行分析处理的方式 ; 第二数据获取模块 602, 用于根据所述数据标识, 从数据源中获取待分析的原始数 据, 其中, 所述原始数据中数据元素之间以分割标识进行隔离 ;
第二数据切割模块 603, 用于根据所述分割标识将获取的原始数据切割成数据元 素;
第二数据归类模块 604, 用于按照预置键中对数据元素的定义方式, 对获取的原始 数据进行归类 ;
第二数据计算模块 605, 用于按照预置值的定义, 对归类后的原始数据进行分析处 理, 并将分析处理结果反馈给主线程。
优选的, 子线程按照预置键中对数据元素的定义方式, 对获取的原始数据进行归 类之后, 所述服务器还包括 : 第三过滤模块, 用于从归类后的原始数据中筛选出符合第一预 置过滤条件的原始数据 ; 则第二数据计算模块 605 按照预置值的定义, 对归类后的原始数 据键进行分析处理为 : 按照预置值的定义, 对筛选出的原始数据进行分析处理。
优选的, 子线程按照预置值的定义, 对归类后的原始数据进行分析处理之后, 所述 服务器还包括 : 第四过滤模块, 用于从分析处理得到的分析处理结果中筛选出符合第二预 置过滤条件的分析处理结果 ; 则第二数据计算模块 605 将分析处理结果反馈给主线程为 : 将筛选出的分析处理结果反馈给主线程。
由上述实施例可以看出, 首先从数据源中获取待分析的原始数据, 然后按照分割 标识将原始数据切割成数据元素, 并将切割得到的数据元素作为键值对中的键, 再从切割 得到的数据元素中, 提取出符合预置键值对中的键定义的数据元素, 最后按照预置键值对 中的值定义, 对提取出的数据元素进行计算, 并将计算结果反馈给主服务器, 以便主服务器 对接收到的计算结果进行合并。因此, 为并行的数据处理架构中的海量数据进行分析提供 了具体的实现方案。
实施例五
本申请还提供了一种数据分析系统, 请参阅图 7, 其为本申请一种数据分析系统的 一个实施例的结构图。所述系统包括 : 一主服务器 701 和至少两个从服务器 702, 其中,
主服务器 701, 用于向从服务器 702 发送文件, 并对接收到的分析处理结果进行合 并, 其中, 所述文件携带待分析的原始数据的数据标识和预置键值对, 所述预置键定义了从 服务器 702 对待分析的原始数据进行归类的方式, 所述预置值定义了从服务器 702 对归类 后的原始数据进行分析处理的方式 ;
从服务器 702, 用于接收主服务器 701 发送的文件, 根据所述数据标识, 从数据源 中获取待分析的原始数据, 其中, 所述原始数据中数据元素之间以分割标识进行隔离, 根据 所述分割标识将获取的原始数据切割成数据元素, 按照预置键中对数据元素的定义方式, 对获取的原始数据进行归类, 按照预置值的定义, 对归类后的原始数据进行分析处理, 并将 分析处理结果反馈给主服务器 701。
优选的, 当主服务器 701 对接收到的分析处理结果进行合并后, 主服务器 701 还用 于将得到的分析处理结果与同一时间下的历史合并结果进行对比分析, 并根据对比分析的 结果产生预警信号。
由上述实施例可以看出, 首先从数据源中获取待分析的原始数据, 然后按照分割 标识将原始数据切割成数据元素, 并将切割得到的数据元素作为键值对中的键, 再从切割 得到的数据元素中, 提取出符合预置键值对中的键定义的数据元素, 最后按照预置键值对 中的值定义, 对提取出的数据元素进行计算, 并将计算结果反馈给主服务器, 以便主服务器 对接收到的计算结果进行合并。因此, 为并行的数据处理架构中的海量数据进行分析提供 了具体的实现方案。
实施例六
本申请还提供了一种数据分析系统, 请参阅图 8, 其为本申请一种数据分析系统的 另一个实施例的结构图。所述数据分析系统包括 : 一主线程模块 801 和至少两个子线程模 块 802, 其中,
主线程模块 801, 用于向子线程模块 802 发送文件, 并对接收到的分析处理结果 进行合并, 其中, 所述文件携带待分析的原始数据的数据标识和预置键值对, 所述预置键定 义了子线程模块 802 对待分析的原始数据进行归类的方式, 所述预置值定义了子线程模块 802 对归类后的原始数据进行分析处理的方式 ;
子线程模块 802, 用于接收主线程模块 801 发送的文件, 根据所述数据标识, 从数 据源中获取待分析的原始数据, 其中, 所述原始数据中数据元素之间以分割标识进行隔离, 根据所述分割标识将获取的原始数据切割成数据元素, 按照预置键中对数据元素的定义方 式, 对获取的原始数据进行归类, 按照预置值的定义, 对归类后的原始数据进行分析处理, 并将分析处理结果反馈给主线程模块 801。
由上述实施例可以看出, 首先从数据源中获取待分析的原始数据, 然后按照分割 标识将原始数据切割成数据元素, 并将切割得到的数据元素作为键值对中的键, 再从切割 得到的数据元素中, 提取出符合预置键值对中的键定义的数据元素, 最后按照预置键值对 中的值定义, 对提取出的数据元素进行计算, 并将计算结果反馈给主服务器, 以便主服务器 对接收到的计算结果进行合并。因此, 为并行的数据处理架构中的海量数据进行分析提供了具体的实现方案。
需要说明的是, 本领域普通技术人员可以理解实现上述实施例方法中的全部或部 分流程, 是可以通过计算机程序来指令相关的硬件来完成, 所述的程序可存储于一计算机 可读取存储介质中, 该程序在执行时, 可包括如上述各方法的实施例的流程。其中, 所述的 存储介质可为磁碟、 光盘、 只读存储记忆体 (Read-Only Memory, ROM) 或随机存储记忆体 (Random Access Memory, RAM) 等。
以上对本申请所提供的一种数据分析方法、 系统及服务器进行了详细介绍, 本文 中应用了具体实施例对本申请的原理及实施方式进行了阐述, 以上实施例的说明只是用于 帮助理解本申请的方法及其核心思想 ; 同时, 对于本领域的一般技术人员, 依据本申请的思 想, 在具体实施方式及应用范围上均会有改变之处, 综上所述, 本说明书内容不应理解为对 本申请的限制。