一种数据提取方法技术

技术编号:18497321 阅读:13 留言:0更新日期:2018-07-21 20:17
本发明专利技术公开了一种数据提取方法,包括:步骤1,客户端采集数据,将数据保存在日志服务器、业务数据库、缓存服务器中;步骤2,对采集到的数据预处理,将数据按照数据量以及数据及时性的要求,定时从日志服务器、业务数据库中同步到分布式文件存储器中;步骤3,计算机集群按照需求分配CPU核心数以及内存数,从分布式文件存储器中提取数据并进行数据计算处理,将结果数据写回分布式文件存储器中;步骤4,将计算处理后的结果数据进行数据结果化处理,并同步到业务数据库中;步骤5,业务服务器根据需求选择从缓存服务器或业务数据库中提取数据。本发明专利技术的有益效果:高效提取数据中的价值,便于BI系统提取数据,提高BI系统的效率。

A method of data extraction

The invention discloses a method of data extraction, including step 1. The client collects data and stores the data in the log server, the business database and the cache server. Step 2, the data is preprocessed, and the data is timed from the log server and the service number according to the requirement of the data quantity and the timeliness of the data. The database is synchronized to the distributed file memory; step 3, the computer cluster assigns the CPU core and the number of memory according to the requirement, extracts the data from the distributed file memory and carries out the data calculation and processing, and writes the result data back to the distributed file memory; step 4, the data is calculated after the processing of the data. Results are processed and synchronized to the business database; step 5, the business server selects data from the cache server or the business database according to the requirements. The beneficial effect of the invention is that the value of the data can be extracted efficiently, and the data of the BI system can be easily extracted to improve the efficiency of the BI system.

【技术实现步骤摘要】
一种数据提取方法
本专利技术涉及计算机
,具体而言,涉及一种数据提取方法。
技术介绍
随着互联网的快速发展,以及云计算技术的推广,海量数据不断产生,海量数据的处理越来越重要。对于传统的基于关系型数据库(RDS)架构的数据分析系统,当表单数据超过千万,对于RDS的压力就会呈指数增加,最主要的表现体现在IOPS的增加和CPU使用率的提升,严重的情况会影响正常业务的进行。BI系统在提取数据时,当从单一数据库中提取时,由于用户数量不大,每天的业务数据不大,可以直接在生产库中查询;而当业务数据量增加时,数据表之间的连表查询需求越来越大,如果直接生产库中查询,对生产库的压力非常大,很容易就会影响生产库正常的读写任务。
技术实现思路
为解决上述问题,本专利技术的目的在于提供一种数据提取方法,高效提取数据中的价值,便于BI系统提取数据,提高BI系统的效率。本专利技术提供了一种数据提取方法,该方法包括:步骤1,客户端采集数据,将数据根据需要保存在日志服务器、业务数据库、缓存服务器中;步骤2,对采集到的数据预处理,将数据按照数据量以及数据及时性的要求,定时从日志服务器、业务数据库中同步到分布式文件存储器中;步骤3,计算机集群按照需求分配CPU核心数以及内存数,从分布式文件存储器中提取数据并进行数据计算处理,将计算处理后的结果数据写回分布式文件存储器中;步骤4,将计算处理后的结果数据进行数据结果化处理,并同步到业务数据库中;步骤5,业务服务器根据需求选择从缓存服务器或业务数据库中提取数据。作为本专利技术进一步的改进,步骤2中,将数据从日志服务器、业务数据库同步到分布式文件存储器中时,需要根据业务场景需要按分钟、按小时、按天、按月同步;当数据是从日志服务器中同步到分布式文件存储器中时:将日志文件细分到分钟,根据细分后的日志文件预计的大小,按照分布式文件存储器的文件格式分别投递到分布式文件存储器中,同时在分布式文件存储器中设置好字段类型,并将不符合的数据清洗掉;当数据是从业务数据库中同步到分布式文件存储器中时:将业务数据库中该数据对应的表加上创建时间索引及ID索引,并按照分钟、小时、天火月将该数据同步分布式文件存储器中。作为本专利技术进一步的改进,步骤2还包括分脏数据处理:将采集到的数据中不符合数据类型的数据行直接删除,或,在数据的同步过程中添加筛选条件,将列为空的数据直接删除。作为本专利技术进一步的改进,步骤3中的数据计算处理包括:数据冗余处理:在分布式文件存储器中提取数据时,将数据中重要列提取出来保存到单独表中;将业务数据库中的日志数据同时保存到分布式文件存储器中进行数据备份;将单行日志数据转换成多列数据;数据多级处理:将不同粒度的数据分层次逐级处理;数据分类处理:将不同类型或者behavior_id的数据写入一张结果表中。作为本专利技术进一步的改进,数据冗余处理时,还包括将分布式文件存储器中的日志数据同步回业务数据库中。作为本专利技术进一步的改进,数据分类处理时,对于不同数据类型的数据,当数据类型较少时,将类型穷举,分列统计后存放在结果表中;当数据类型较多时,直接将这些类型进行分组,统计后存放在结果表中。作为本专利技术进一步的改进,步骤4中数据结果化处理包括:将结果数据同步到业务数据库中时,对数据的维度值均加上索引;根据最后需求分层级保存结果数据,将每一级的表都同步到业务数据库中;删除业务数据库中使用率较低的历史数据。本专利技术的有益效果为:减少了同步查询数据的压力,提高了表查询的效率;BI系统可以快速高效提取需要的数据,并进行报表展示,提高BI系统的效率。附图说明图1为本专利技术实施例所述的一种数据提取方法的流程示意图;图2为本专利技术数据提取时的系统示意图。具体实施方式下面通过具体的实施例并结合附图对本专利技术做进一步的详细描述。如图1和2所示,本专利技术实施例所述的一种数据提取方法,该方法包括:步骤1,客户端采集数据,将数据根据需要保存在日志服务器、业务数据库、缓存服务器中。步骤2,对采集到的数据预处理,将数据按照数据量以及数据及时性的要求,定时从日志服务器、业务数据库中同步到分布式文件存储器中。将数据从日志服务器、业务数据库同步到分布式文件存储器中时,需要根据业务场景需要按分钟、按小时、按天、按月同步。当数据是从日志服务器中同步到分布式文件存储器中时:将日志文件细分到分钟,根据细分后的日志文件预计的大小,按照分布式文件存储器的文件格式分别投递到分布式文件存储器中,同时在分布式文件存储器中设置好字段类型,并将不符合的数据清洗掉。例如,某个日志文件保存了从2017-12-0100:00:00到2017-12-0100:30:00的日志数据,则将文件名命名为XXXX201712010030,在投递时将该文件按照分布式文件存储器要求的文件格式投递到分布式文件存储器中。当数据是从业务数据库中同步到分布式文件存储器中时:将业务数据库中该数据对应的表加上创建时间索引及ID索引,并按照分钟、小时、天火月将该数据同步分布式文件存储器中。在表加上创建时间索引,是为了保证数据在同步时能够用到该索引,减少单次同步查询数据库时的压力,另外增加ID索引,是为了分布式同步时提高同步效率。一般情况下,单日千万级的表格可以考虑5分钟同步一次,减少单次同步时的慢查询,百万级的表格可以考虑分小时同步,十万级的表格可以考虑按天同步。进一步的,还包括分脏数据处理:将采集到的数据中不符合数据类型的数据行直接删除,或,在数据的同步过程中添加筛选条件,将列为空的数据直接删除。步骤3,计算机集群按照需求分配CPU核心数以及内存数,从分布式文件存储器中提取数据并进行数据计算处理,将计算处理后的结果数据写回分布式文件存储器中。其中,数据计算处理包括:数据冗余处理:1、在分布式文件存储器中提取数据时,将数据中重要列提取出来保存到单独表中,这种方式是为了方便处理。例如,用户登录记录表,将用户部分信息提取出来,保存到单日活跃用户表,去除了多次登录用户的记录,虽然这部分记录在用户登录记录表中依旧有保存,但是单独保存表以后方便后续查询,提高效率。2、将业务数据库中的日志数据同时保存到分布式文件存储器中进行数据备份。这是因为,业务数据库对分布式的支持并不理想,因此在业务数据库中一般对于日志数据仅能保存近几天的数据,因此,需要在分布式文件存储器中对业务数据库中的日志数据进行永久保存,如果需要,可以将分布式文件存储器的数据同步回业务数据库。3、将单行日志数据转换成多列数据。这种处理原因在于,有时候单行日志数据可能会存在某一列保存了多条记录的情况,比如用户登录设备表,一个用户会有多条登录设备,业务数据库要求数据尽量不要冗余,因此会将多个设备保存到一个字段中,此时如果是要数据分析,数据量太大,因此,单行日志数据通过SPLIT()以后将进行LATERALVIEWEXPLODE,这样即方便计算,也提高计算效率。数据多级处理:将不同粒度的数据分层次逐级处理。例如,当我们想知道当天的活跃用户有多少时,可以先统计一个分省分运营商的活跃用户数,再统计一个分省的活跃用户,再统计一个分运营商的活跃用户,最后再统计总的活跃用户数。这种分粒度多级统计出来的结果需要跟业务逻辑配合,例如,一个用户安装了多款游戏,如果说按照分游戏先统计出一个活跃用户本文档来自技高网...

【技术保护点】
1.一种数据提取方法,其特征在于,该方法包括:步骤1,客户端采集数据,将数据根据需要保存在日志服务器、业务数据库、缓存服务器中;步骤2,对采集到的数据预处理,将数据按照数据量以及数据及时性的要求,定时从日志服务器、业务数据库中同步到分布式文件存储器中;步骤3,计算机集群按照需求分配CPU核心数以及内存数,从分布式文件存储器中提取数据并进行数据计算处理,将计算处理后的结果数据写回分布式文件存储器中;步骤4,将计算处理后的结果数据进行数据结果化处理,并同步到业务数据库中;步骤5,业务服务器根据需求选择从缓存服务器或业务数据库中提取数据。

【技术特征摘要】
1.一种数据提取方法,其特征在于,该方法包括:步骤1,客户端采集数据,将数据根据需要保存在日志服务器、业务数据库、缓存服务器中;步骤2,对采集到的数据预处理,将数据按照数据量以及数据及时性的要求,定时从日志服务器、业务数据库中同步到分布式文件存储器中;步骤3,计算机集群按照需求分配CPU核心数以及内存数,从分布式文件存储器中提取数据并进行数据计算处理,将计算处理后的结果数据写回分布式文件存储器中;步骤4,将计算处理后的结果数据进行数据结果化处理,并同步到业务数据库中;步骤5,业务服务器根据需求选择从缓存服务器或业务数据库中提取数据。2.根据权利要求1所述的数据提取方法,其特征在于,步骤2中,将数据从日志服务器、业务数据库同步到分布式文件存储器中时,需要根据业务场景需要按分钟、按小时、按天、按月同步;当数据是从日志服务器中同步到分布式文件存储器中时:将日志文件细分到分钟,根据细分后的日志文件预计的大小,按照分布式文件存储器的文件格式分别投递到分布式文件存储器中,同时在分布式文件存储器中设置好字段类型,并将不符合的数据清洗掉;当数据是从业务数据库中同步到分布式文件存储器中时:将业务数据库中该数据对应的表加上创建时间索引及ID索引,并按照分钟、小时、天火月将该数据同步分布式文件存储器中。3.根据权利要求2...

【专利技术属性】
技术研发人员:冯叶男
申请(专利权)人:杭州哲信信息技术有限公司
类型:发明
国别省市:浙江,33

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

1