CN109635033B - 一种千万级存量数据的处理、日志收集及导入数据库的方法 - Google Patents

一种千万级存量数据的处理、日志收集及导入数据库的方法 Download PDF

Info

Publication number
CN109635033B
CN109635033B CN201811614302.2A CN201811614302A CN109635033B CN 109635033 B CN109635033 B CN 109635033B CN 201811614302 A CN201811614302 A CN 201811614302A CN 109635033 B CN109635033 B CN 109635033B
Authority
CN
China
Prior art keywords
data
import
importing
logs
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811614302.2A
Other languages
English (en)
Other versions
CN109635033A (zh
Inventor
张永璐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guizhou Broadcasting & Tv Information Network Co ltd
Original Assignee
Guizhou Broadcasting & Tv Information Network Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guizhou Broadcasting & Tv Information Network Co ltd filed Critical Guizhou Broadcasting & Tv Information Network Co ltd
Priority to CN201811614302.2A priority Critical patent/CN109635033B/zh
Publication of CN109635033A publication Critical patent/CN109635033A/zh
Application granted granted Critical
Publication of CN109635033B publication Critical patent/CN109635033B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种千万级存量数据的处理、日志收集及导入数据库的方法,包括导出千万级存量原始数据,并将其分割为多个小文件,使其批量导入数据库内,导入时通过逻辑程序收集错误日志,使其还原成原始数据格式,重新进行导入操作;数据导入中断时,通过脚本程序自动分析导入中断原因,并使脚本启动继续导入数据;通过CMSManageService.php接口记录临时数据日志,并通过新屏蔽接口将其导入数据库,导入时通过逻辑程序收集错误日志,使其还原成原始数据格式,并重新进行导入操作。本发明有效提高了海量数据的导入效率,解决了导入重复性工作量大、遇到网络请求堵塞进程终断、临时数据日志占用内存大等问题。

Description

一种千万级存量数据的处理、日志收集及导入数据库的方法
技术领域
本发明涉及一种千万级存量数据的处理、日志收集及导入数据库的方法,属于海量数据处理技术领域。
背景技术
系统之间在对接数据的时候,数据之间的格式,数据字段,长度命名各不同。需要关联起来,就必须通过脚本导入的方式,将数据导入到对接系统当中;在这过程中,往往数据量很大,就需要从逻辑判断,性能分析、导入效率等方面,考虑方案的可行性。
目前在进行海量数据导入时,存在许多不足之处:(1)在进行千万级存量数据导入过程中,当出现导入错误时,进程会终断,需要分析错误原因并重新开始导入,重复性工作量大,导入效率低;(2)在导入过程中,会遇到网络请求堵塞问题,导致进程终断;(3)服务器的性能低,临时数据日志占用内存大,影响导入效率;(4)导入数据执行效率低等问题。
发明内容
本发明要解决的技术问题是提供本一种千万级存量数据的处理、日志收集及导入数据库的方法,可以克服现有技术的不足。
为解决上述技术问题,本发明是通过以下技术方案实现的:一种千万级存量数据的处理、日志收集及导入数据库的方法,包括:
s1、导出千万级存量原始数据,并将千万级存量原始数据分割为多个小文件,使其批量导入数据库内;在导入时通过逻辑程序收集错误日志,使其还原成原始数据格式,重新进行导入操作;
s2、导入数据中断时,通过脚本程序自动分析数据导入中断原因,待查到原因之后,脚本启动继续导入数据;
s3、通过CMSManageService.php接口记录临时数据日志,并通过新屏蔽接口将记录数据导入数据库内;导入时通过逻辑程序收集错误日志,使其还原成原始数据格式,并重新进行导入操作。
前述步骤s1中,从服务器上的BOSS系统导出千万级csv格式文件,并且在服务器上设置切割命:split -l 23000000 20180704_ppv_order.csv -d a 1 ccn_import_auth_,将BOSS系统导出来的千万级数据切割成多个小文件,批量导入。
将前述BOSS系统导出来的千万级数据切割成4个以上小文件。
前述步骤s1中,在服务器上设置ccn_import_auth.php脚本程序和逻辑程序,将切割成的多个小文件通过ccn_import_auth.php脚本程序分析后,再通过逻辑程序进行逻辑判断,如果运行正确,则将数据导入到MySQL数据库中;如若发生逻辑错误,将收集、分析错误日志,并还原错误的原始数据行,生成script_auth_0.csv, script_auth_1.csv…script_auth_n.csv文件,重新进入ccn_import_auth.php脚本程序分析,再次进入逻辑程序进行逻辑判断,直到不产生错误日志为止。
前述步骤s2中,通过ccn_import_auth.php脚本程序分析数据导入中断原因,待查到原因之后,脚本启动,继续将数据导入MySQL数据库。
前述步骤s3中,在服务器上设置CMSManageService.php接口,通过CMSManageService.php接口记录临时数据日志。
将前述记录的临时数据日志的原始数据通过PHP语言yield生成器读取大文件,再通过动态args传入参数,最后通过unset销毁变量命令在反复导入的过程中释放所占大量内存。
在前述服务器上设置interface_import_auth.php脚本程序,记录的临时数据日志通过新屏蔽接口导出,经interface_import_auth.php脚本程序分析后,进入步骤s1中的逻辑程序进行逻辑判断, 重复步骤s1的导入操作。
与现有技术比较,本发明公开了一种千万级存量数据的处理、日志收集及导入数据库的方法,其包括导出千万级存量原始数据,并将千万级存量原始数据分割为多个小文件,使其批量导入数据库内,导入时通过逻辑程序收集错误日志,使其还原成原始数据格式,重新进行导入操作;数据导入中断时,通过脚本程序自动分析导入中断原因,待查到原因之后,脚本启动继续导入数据;通过CMSManageService.php接口记录临时数据日志,并通过新屏蔽接口将其导入数据库,导入时通过逻辑程序收集错误日志,使其还原成原始数据格式,并重新进行导入操作。
本发明可以实现快速将千万级存量数据导入数据库,其具有以下优点:
(1)将千万级存量原始数据分割为多个小文件,使其批量导入数据库内,方便管理,并且避免数据库表锁,提高效率。
(2)在千万级存量数据导入时,增加了数据分析脚本程序和逻辑程序,对传入参数做校验、逻辑判断,是否符合导入条件,如果符合,直接导入数据库;不符合,将错误日志还原成为原始数据格式重新进行分析导入,其不用再次导入初始的存量数,只需分析完详细的错误日志,再将还原的错误数据继续用脚本导入即可,可避免重复性工作,提高导入效率。
(3)解决了网络请求堵塞时数据导入终断的问题,通过增加的数据分析脚本程序,可以分析中断原因,并实现自动启动继续将数据导入数据库。
(4)缓解了临时数据日志占用内存的压力,通过CMSManageService.php接口记录临时数据日志,并通过PHP语言yield生成器读取大文件特性,动态args传入参数,unset销毁变量命令,释放数据反复导入的过程中所占大量内存。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述:
如图1所示,一种千万级存量数据的处理、日志收集及导入数据库的方法,包括:
s1、导出千万级存量原始数据,并将千万级存量原始数据分割为多个小文件,使其批量导入数据库内;在导入时通过逻辑程序收集错误日志,使其还原成原始数据格式,重新进行导入操作;
s2、导入数据中断时,通过脚本程序自动分析数据导入中止原因,待查到原因之后,脚本启动继续导入数据;
s3、通过CMSManageService.php接口记录临时数据日志,通过新的屏蔽接口将记录数据导入数据库内,并且导入时通过逻辑程序收集错误日志,使其还原成原始数据格式,重新进行导入操作。
见图1,在服务器上设有BOSS系统,BOSS系统用于导出千万级csv格式文件。
时间A段,对服务器的原始数据进行鉴权、校验,使其成为授权原始数据。
从服务器上的BOSS系统导出千万级csv格式文件,并且在服务器上设置切割命:split -l 23000000 20180704_ppv_order.csv -d a 1 ccn_import_auth_,将BOSS系统导出来的千万级数据切割成多个小文件,优选为4个以上小文件,以方便分批量导入和管理。
时间A->时间B段,对传入参数做逻辑判断,是否符合导入条件,如果不符合,需要将错误日志记录成详细的日志,同时还原不符合逻辑的数据,只需分析完详细的错误日志,再将还原的错误数据,还原成为原始数据格式,继续用脚本导入即可,当所有的数据导完之后,就不用再次导入初始的存量数,避免重复性工作。具体地,在服务器上设置逻辑程序,上述切割成的多个小文件通过ccn_import_auth.php脚本程序分析后,再通过逻辑程序进行逻辑判断,如果运行正确,则将数据导入到MySQL数据库中;如若发生逻辑错误,将收集、分析错误日志,并还原错误的原始数据行,生成script_auth_0.csv, script_auth_1.csv…script_auth_n.csv文件,重新进入ccn_import_auth.php脚本程序分析,再次进入逻辑程序进行逻辑判断,直到不产生错误日志为止。
对于遇到网络请求堵塞的情况,为避免数据导入终断,通过ccn_import_auth.php脚本程序进行分析之后停下来,待查到原因之后,脚本启动,可继续将数据导入MySQL数据库。
时间C段,在服务器上设有CMSManageService.php接口,用于记录海量临时数据日志。
通过CMSManageService.php接口对临时数据日志的数据进行可行性分析并记录;将记录的原始数据通过PHP语言yield生成器读取大文件,再通过动态args传入参数,最后通过unset销毁变量命令在反复导入的过程中释放所占大量内存。
采用新屏蔽接口将记录的数据经interface_import_auth.php脚本程序分析后,导入时间A->时间B段的逻辑程序进行逻辑判断,同上所述,将符合逻辑的数据经过筛选,由以上ccn_import_auth.php程序插入到MySQL数据库中,不符合的则生成错误日志,并还原成原始数据格式,循环生成record_interface_error.csv文件,再次进入ccn_import_auth.php脚本程序、逻辑程序后,重复上述导入操作,直到不产生错误日志结束导入,其可以及时处理临时数据日志,可以防止因临时数据日志占用大量内存而影响导入效率。

Claims (7)

1.一种千万级存量数据的处理、日志收集及导入数据库的方法,其特征在于,包括:
s1、导出千万级存量原始数据,并将千万级存量原始数据分割为多个小文件,使其批量导入数据库内;在导入时通过逻辑程序收集错误日志,使其还原成原始数据格式,重新进行导入操作;
s2、导入数据中断时,通过脚本程序自动分析数据导入中断原因,待查到原因之后,脚本启动继续导入数据;
s3、通过CMSManageService.php接口记录临时数据日志,并通过新屏蔽接口将记录数据导入数据库内;导入时通过逻辑程序收集错误日志,使其还原成原始数据格式,并重新进行导入操作;
将记录的临时数据日志的原始数据通过PHP语言yield生成器读取大文件,再通过动态args传入参数,最后通过unset销毁变量命令在反复导入的过程中释放所占大量内存。
2.根据权利要求1所述的千万级存量数据的处理、日志收集及导入数据库的方法,其特征在于,步骤s1中,从服务器上的BOSS系统导出千万级csv格式文件,并且在服务器上设置切割命:split -l 23000000 20180704_ppv_order.csv -d a 1 ccn_import_auth_,将BOSS系统导出来的千万级数据切割成多个小文件,批量导入。
3.根据权利要求2所述的千万级存量数据的处理、日志收集及导入数据库的方法,其特征在于,将BOSS系统导出来的千万级数据切割成4个以上小文件。
4.根据权利要求1或2所述的千万级存量数据的处理、日志收集及导入数据库的方法,其特征在于,步骤s1中,在服务器上设置ccn_import_auth.php脚本程序和逻辑程序,将切割成的多个小文件通过ccn_import_auth.php脚本程序分析后,再通过逻辑程序进行逻辑判断,如果运行正确,则将数据导入到MySQL数据库中;如若发生逻辑错误,将收集、分析错误日志,并还原错误的原始数据行,生成script_auth_0.csv, script_auth_1.csv…script_auth_n.csv文件,重新进入ccn_import_auth.php脚本程序分析,再次进入逻辑程序进行逻辑判断,直到不产生错误日志为止。
5.根据权利要求1所述的千万级存量数据的处理、日志收集及导入数据库的方法,其特征在于,步骤s2中,通过ccn_import_auth.php脚本程序分析数据导入中断原因,待查到原因之后,脚本启动,继续将数据导入MySQL数据库。
6.根据权利要求1所述的千万级存量数据的处理、日志收集及导入数据库的方法,其特征在于,步骤s3中,在服务器上设置CMSManageService.php接口,通过CMSManageService.php接口记录临时数据日志。
7.根据权利要求1所述的千万级存量数据的处理、日志收集及导入数据库的方法,其特征在于,在服务器上设置interface_import_auth.php脚本程序,记录的临时数据日志通过新屏蔽接口导出,经interface_import_auth.php脚本程序分析后,进入步骤s1中的逻辑程序进行逻辑判断, 重复步骤s1的导入操作。
CN201811614302.2A 2018-12-27 2018-12-27 一种千万级存量数据的处理、日志收集及导入数据库的方法 Active CN109635033B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811614302.2A CN109635033B (zh) 2018-12-27 2018-12-27 一种千万级存量数据的处理、日志收集及导入数据库的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811614302.2A CN109635033B (zh) 2018-12-27 2018-12-27 一种千万级存量数据的处理、日志收集及导入数据库的方法

Publications (2)

Publication Number Publication Date
CN109635033A CN109635033A (zh) 2019-04-16
CN109635033B true CN109635033B (zh) 2023-03-21

Family

ID=66078361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811614302.2A Active CN109635033B (zh) 2018-12-27 2018-12-27 一种千万级存量数据的处理、日志收集及导入数据库的方法

Country Status (1)

Country Link
CN (1) CN109635033B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114007215A (zh) * 2021-09-26 2022-02-01 银盛通信有限公司 一种移动转售系统批量开户的方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004265165A (ja) * 2003-03-03 2004-09-24 Nagoya City データの高速記憶装置と高速記憶方法
CN1983206A (zh) * 2006-05-29 2007-06-20 华为技术有限公司 软件系统自动恢复的方法及装置
AU2002322153B2 (en) * 2001-08-02 2007-10-04 Sautec Pty Ltd Network image server
KR20080044102A (ko) * 2006-11-15 2008-05-20 삼성전자주식회사 단일 명령 다중 자료 프로세서 및 그것을 위한 메모리어레이 구조
CN103914458A (zh) * 2012-12-29 2014-07-09 中国移动通信集团河北有限公司 一种海量数据迁移的方法及装置
CN107423303A (zh) * 2016-05-24 2017-12-01 北京京东尚科信息技术有限公司 数据同步的方法和系统
CN108491475A (zh) * 2018-03-08 2018-09-04 平安科技(深圳)有限公司 数据快速批量导入方法、电子装置及计算机可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341120B2 (en) * 2003-09-05 2012-12-25 Oracle International Corporation Apparatus and methods for transferring database objects into and out of database systems
US20120008768A1 (en) * 2010-07-08 2012-01-12 Texas Instruments Incorporated Mode control engine (mce) for confidentiality and other modes, circuits and processes

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002322153B2 (en) * 2001-08-02 2007-10-04 Sautec Pty Ltd Network image server
JP2004265165A (ja) * 2003-03-03 2004-09-24 Nagoya City データの高速記憶装置と高速記憶方法
CN1983206A (zh) * 2006-05-29 2007-06-20 华为技术有限公司 软件系统自动恢复的方法及装置
KR20080044102A (ko) * 2006-11-15 2008-05-20 삼성전자주식회사 단일 명령 다중 자료 프로세서 및 그것을 위한 메모리어레이 구조
CN103914458A (zh) * 2012-12-29 2014-07-09 中国移动通信集团河北有限公司 一种海量数据迁移的方法及装置
CN107423303A (zh) * 2016-05-24 2017-12-01 北京京东尚科信息技术有限公司 数据同步的方法和系统
CN108491475A (zh) * 2018-03-08 2018-09-04 平安科技(深圳)有限公司 数据快速批量导入方法、电子装置及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Constraint Solver for PHP Arrays;Ivan Enderlin;《2013 IEEE Sixth International Conference on Software Testing》;20130801;全文 *
PHP中被忽略的性能优化利器;星空幻颖;《https://segmentfault.com/a/1190000012334856》;20171208;全文 *

Also Published As

Publication number Publication date
CN109635033A (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
CN110069572B (zh) 基于大数据平台的hive任务调度方法、装置、设备及存储介质
CN109271331B (zh) 日志的生成方法、装置、计算机设备及存储介质
CN106776515B (zh) 数据处理的方法及装置
CN111666217B (zh) 用于测试代码的方法和装置
CN110737594A (zh) 自动生成测试用例的数据库标准符合性测试方法及装置
US7185322B2 (en) Method and apparatus for parallel action processing
CN109635033B (zh) 一种千万级存量数据的处理、日志收集及导入数据库的方法
CN113590595A (zh) 一种数据库多写方法、装置及相关设备
CN109542341B (zh) 一种读写io监测方法、装置、终端及计算机可读存储介质
CN109063040B (zh) 客户端程序数据采集方法及系统
CN113553295A (zh) 一种支持多种文件格式的数据预处理系统
CN114116422A (zh) 一种硬盘日志分析方法、硬盘日志分析装置及存储介质
CN113419935A (zh) 移动端性能监控方法、装置、设备及存储介质
CN111782264A (zh) 代码分类信息提取方法、装置、计算机设备及存储介质
CN116302989A (zh) 压力测试方法及系统、存储介质、计算机设备
CN111309986A (zh) 大数据采集与共享系统
CN107632899B (zh) 一种应用服务器的快照服务方法及装置
CN113392079B (zh) 一种分布式存储集群日志存储优化方法、系统及终端
CN107451435B (zh) 一种硬件加密机的管控方法、管控机及管控系统
CN115438020A (zh) 一种数据库资源调度方法、装置、设备及介质
CN111866576B (zh) 线上问题处理系统及方法
CN114171107A (zh) 固态硬盘vpd信息的检测方法、装置、设备及存储介质
CN113407415A (zh) 智能终端的日志管理方法和装置
CN112631929A (zh) 测试用例生成方法、装置、存储介质及电子设备
CN111679899A (zh) 任务调度方法、装置、平台设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant