CN109635033B - 一种千万级存量数据的处理、日志收集及导入数据库的方法 - Google Patents
一种千万级存量数据的处理、日志收集及导入数据库的方法 Download PDFInfo
- 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
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的导入操作。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114007215A (zh) * | 2021-09-26 | 2022-02-01 | 银盛通信有限公司 | 一种移动转售系统批量开户的方法 |
Citations (7)
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)
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 |
-
2018
- 2018-12-27 CN CN201811614302.2A patent/CN109635033B/zh active Active
Patent Citations (7)
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)
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 |