技术领域
[0001] 本
发明涉及
大数据领域,具体涉及移动设备信息采集系统。
背景技术
[0002] 在目前的移动互联网
风靡全球的大时代背景下,移动互联网依靠的终端设备之一的Android智能手机,每天产生了海量的含有大量待挖掘的信息数据。移动互联网企业通过这些信息数据,可以为产品在线上运营的情况提供可靠分析,从而了解产品线上情况,制定产品开发方向提供有
力支撑。那么,如何采集数据,如何进行数据的初步存储是每一个移动互联网企业所关心的重点所在。目前的移动信息设备采集系统如“友盟统计”,具有很强的本地数据分析能力与定制化的
数据采集方案。但其不对外提供原始数据接入
接口,配制定制化流程较为繁琐。
[0003] 比较当前的移动设备信息采集系统,本发明具有可通用的数据采集方案、可定制化的数据结构模式及方便快速的数据存储平台,可以有效提高企业的数据分析能力,缩短开发流程,节省人力物力,从而为企业提供一份快速、可靠的决策参考。
发明内容
[0004] 本发明的目的在于提供移动设备信息采集系统,可以顺应移动互联网时代的大
数据挖掘需求痛点,让信息数据能够快速流通起来,并将数据存储于通用的大数据组件中,以提供快速、高吞吐量的接口用于大数据挖掘与分析。
[0005] 为实现上述目的,本发明采取的技术方案是:移动设备信息采集系统,它包括数据采集模
块、数据接入与存储模块和配置管理模块,所述数据采集模块负责获取移动设备的原始数据,所述数据接入与存储模块负责采集数据的接收与存储,所述配置管理模块负责定义数据采集配置信息,提供图形化的管理功能,并通过同步服务将
修改的合法配置更新至
数据库。
[0006] 优选地,所述数据采集模块具体包括数据传输模块和数据获取模块。
[0007] 优选地,所述数据接入与存储模块具体包括数据库、原始
数据网络接入服务、数据预处理和数据存储模块。
[0008] 优选地,所述配置管理模块具体包括配置同步服务和WEB管理服务。
[0009] 优选地,所述数据获取模块将采集的数据发送至数据传输模块,所述数据传输模块与原始数据网络接入服务的接口形成互连。
[0010] 优选地,所述原始数据网络接入服务通过数据预处理将数据存储于数据存储模块中。
[0011] 优选地,所述数据库仅存储数据的配置信息,并通过WEB管理服务和配置同步服务进行WEB管理,并提供数据查询和计算的接口。
[0012] 本发明的特点在于:1)可以基于配置信息实现对采集数据信息的结构化;2)针对不同类型的数据,可以通过定制化字段来采集相应数据;3)可以初步控制数据采集信息上传的
频率;4)可以实现数据在服务端存储的完整性与可用性;5)可使系统具有良好的扩展性。
附图说明
[0013] 图1是本发明的系统结构示意图。
[0014] 图2是本发明的数据缓存基本时序图。
[0015] 图3是本发明的上传时序图。
具体实施方式
[0017] 下面结合附图对本发明作进一步地描述。
[0018] 如图1所示,本发明为移动设备信息采集系统,它包括数据采集模块、数据接入与存储模块和配置管理模块,所述数据采集模块负责获取移动设备的原始数据,所述数据接入与存储模块负责采集数据的接收与存储,所述配置管理模块负责定义数据采集配置信息,提供图形化的管理功能,并通过同步服务将修改的合法配置更新至数据库。所述数据采集模块具体包括数据传输模块和数据获取模块。所述数据接入与存储模块具体包括数据库、原始数据网络接入服务、数据预处理和数据存储模块。所述配置管理模块具体包括配置同步服务和WEB管理服务。所述数据获取模块将采集的数据发送至数据传输模块,所述数据传输模块与原始数据网络接入服务的接口形成互连。所述原始数据网络接入服务通过数据预处理将数据存储于数据存储模块中。所述数据库仅存储数据的配置信息,并通过WEB管理服务和配置同步服务进行WEB管理,并提供数据查询和计算的接口。
[0019] 优选地,对于配置管理模块,该模块定义了数据采集配置信息,包含了数据结构定义与上传频率。WEB管理服务中提供了图形化的管理功能,在WEB管理服务新增或者修改成功的合法配置数据将经由配置同步服务更新到数据库。
[0020] 优选地,对于数据接入与存储模块,原始数据网络接入服务监听配置同步服务更新状态。一旦配置数据更新状态改变,则热切换配置数据。由原始数据网络接入服务接收到的数据,将先通过数据预处理模块作初步清洗,清洗后的数据最终由数据存储模块存入到Kafka中。
[0021] 优选地,数据接入主要由部署在
服务器上的Thrift 服务与设置服务器集群的负载均衡器构成的。其中,数据接入必须适应高并发的业务场景。采取的数据接入方案为TCP短连接方式,以充分提高服务的QPS能力。数据传输方式采用同步阻塞和异步非阻塞方式,同步阻塞方式适宜于
原子性业务,对数据量的完整性有一定的误差容忍性,异步非阻塞方式则可提升服务端性能。对于配置文件信息的解决方案是直接将配置信息数据加载到内存中,并做热备份,以延时切换处理,这样可以减少配置文件切换时的性能损耗。
[0022] 优选地,数据存储采用HADOOP生态圈组件,包括使用Zookeeper、Kafka进行数据存储。Kafka 作为一个高性能的分布式消息系统,既可以提供实时处理数据接口,也可以对数据做持久化配置。Kafka组件在存储数据时通过顺序写磁盘的方式来持久化数据,可以提升整个集群的吞吐量。
[0023] 优选地,对于数据采集模块,由数据获取模块获取设备的原始数据,数据传输模块通过解析配置文件的信息,择机将
数据压缩后上传至原始数据网络接入服务。
[0024] 优选地,数据采集模块采用DataBase(MySQL数据库)来存放定义的配置信息,这些配置信息包括数据采集的结构定义、上传模式、
阈值条数等信息,SDK通过解析这些配置信息来做数据解析,择机上传数据。
[0025] 优选地,数据采集模块中需要考虑用户信息隐私权。移动设备上的Android系统具有完整的权限控制体系,Android权限系统关系着整个
操作系统的安全性,大部分授权行为在移动应用第一次启动时触发,这样可以避免每次向用户
申请权限。因此,需要采用一种方法能使用移动应用自身的权限去执行数据采集。数据采集模块中的SDK以
中间件的形式存在于各个应用中,由移动应用自身获取在应用权限范围内的数据,这样可避免移动权限系统乱用问题,保护用户信息安全。
[0026] 本发明的具体实现步骤是:步骤一:初始化。调用initIns()方法,中间件SDK原始配置开始初始化,初始化内容包括:创建缓存路径、创建数据库、获取字段、创建内部原始缓存队列、启动线程等;
步骤二:
访问网络。日志采集中间件通过基于Thrift的技术实现网络传输的功能,包括下载配置文件、上传日志数据。由访问网络线程控制配置文件下载,读取配置文件,定时调用上传控
制模块上传数据;
步骤三:上传控制。通过读取下载配置文件,判断日志是否满足上传条件,若满足上传条件则调用数据解析与持久化模块,取出数据调用访问网络模块上传数据;上传成功后则删除已上传数据,未成功则保留数据;
步骤四:对外接口。外部调用接口sent()传入原始日志数据,数据先进入原始日志缓存队列,由缓存数据线程从队列里取出数据调用
数据处理模块写入数据库;
步骤五:数据解析与持久化。读取日志的配置信息,若存在配置信息,则解析为以分割符分割的数据;若不存在,则存为JSON字符串。
[0027] 具体地,对于数据解析与持久化,由于日志采集中间件的生命周期是作为Android应用中间件存在的,对Android应用传入的原始数据,先放入阻塞队列中,通过缓存日志线程从队列中取出数据解析,并采用SQLite作为日志数据缓存容器,对传入的数据通过解析—建表—存入的方式,来缓存日志数据。如果数据可以被解析,则存放在正常表中;如果不能解析,则转化为JSON字符串存于异常表中。数据缓存基本时序图如图2所示。
[0028] 具体地,对于访问网络,基于Thrift的技术实现网络传输。整个数据传输模式为C/S模型。下载配置时,Server端先验证
请求中的Token字段,判断请求Client端是否合法。如果验证不合法,则从服务端返回NULL,中间件将捕获该异常并打印在Log信息中;如果验证合法,则通过token查找对应应用的上传信息表,将该日志的上传配置信息返回给中间件,并将该配置信息写入配置文件并存放在本地。上传数据时,先将需要上传的数据全部取出,压缩后上传。在上传方法执行中,若遇到网络问题,则返回已成功上传日志名。上传时序图如图3所示。
[0029] 具体地,对于上传控制,为了合理利用服务器资源,需要对Android设备数据上传数据的时机进行控制。在Client端获取上传配置信息后,会获取该应用下所有日志的上传状态。在 WEB 管理后台
开关的控制范围可以是应用级别的,也可以细化至日志级别。中间件通过解析配置信息完成选择和设置上传方式,从而实现开关策略。数据传输控制流程图如图4所示。
[0030] 本发明采用C/S模型,将每一个移动应用定义为一个客户端,将移动应用产生的日志数据,通过调用信息采集SDK中封装好的接口,向服务器上传数据。同时,通过服务端的配置信息修改,实现对信息采集SDK中的日志上传模式的定义,并调整信息采集结构,最终实现移动设备的数据采集与存储,进行大数据分析与挖掘。
[0031] 以上所述仅为本发明的较佳
实施例而已,并不用以限制本专明,凡在本发明的精神和原则之内,所有的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。