[发明专利]将文件拆分后并行加载数据入库的方法无效
申请号: | 201310009996.8 | 申请日: | 2013-01-10 |
公开(公告)号: | CN103077241A | 公开(公告)日: | 2013-05-01 |
发明(设计)人: | 王党团;徐胜平 | 申请(专利权)人: | 中国银行股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京金信立方知识产权代理有限公司 11225 | 代理人: | 黄威;胡上海 |
地址: | 100818 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 文件 拆分 并行 加载 数据 入库 方法 | ||
技术领域
本发明涉及金融行业领域中面对大数据量的数据加载入库的性能解决方案,尤其涉及一种将文件拆分后并行加载数据入库的方法。
背景技术
随着信息技术的迅猛发展,银行业务领域越来越需要解决大数据量的数据加载入库所带来的性能优化问题。这些业务实时产生的数据量非常大,如果在应用程序中采用SQL语句插入方式装载数据,将会耗费大量的时间,且不能保证数据的实时性和系统的稳定性。因此,在开发具有海量数据的业务系统时,常常采用数据装载工具来进行海量数据的装载。SQL Loader是Oracle提供的将文件中的数据装载到数据库中的有效工具。对于SQL Loader数据装载方案的改进是业界广泛关注的问题,其直接影响到海量数据加载入库的性能最优化。现有技术中,虽然SQL Loader的技术应用方兴未艾,但是限于海量数据本身的数据量大、信息量大、实时产生等特性,单纯的SQL Loader加载数据不可避免的效率偏低。因此,无论是从数据加载过程,还是从数据源的处理,都需要加以改进,才能突破瓶颈。
发明内容
本发明所要解决的技术问题是,在SQL Loader工具基础上,更进一步优化海量数据加载入库的性能。
为了解决上述技术问题,本发明提供了一种将文件拆分后并行加载数据入库的方法,使用Oracle提供的数据装载工具SQL Loader将大数据量的文件中的数据加载入库,包括以下步骤:
S1:读取控制文件和数据文件,生成日志文件、坏文件和废弃文件;
S2:配置数据装载工具SQL Loader的参数;
S3:根据配置参数,判断需要加载的文件的记录数是否大于参数配置的记录限额值,如果是,则执行步骤S4;如果否,则执行步骤S6;
S4:根据参数配置的子文件记录数值将需要加载的文件顺序拆分为n个子文件;
S5:启动数据装载工具SQL Loader的m个子进程对子文件进行并行加载,每个子进程对多个子文件进行串行加载;
S6:对文件进行普通加载。
作为优选,步骤S4具体为:判断所述参数配置的子文件记录数值是否大于300000,如果是,则将文件顺序拆分为n个子文件,其中第一个到第n-1个子文件中的记录数为所述参数配置的子文件记录数值;如果否,则将文件顺序拆分为n个子文件,其中第一个到第n-1个子文件中的记录数为300000。
作为优选,步骤S3中,所述参数配置的记录限额值为500万。
作为优选,步骤S4中的拆分是用操作系统命令实现的。
作为优选,步骤S4中的所述n值为999。
作为优选,步骤S5中的所述m值不大于10。
作为优选,步骤S5中的所述m值为10,每个子进程最多对100个子文件进行串行加载。
与现有技术相比,本发明的将文件拆分后并行加载数据入库的方法的有益效果在于:先将文件拆分,启动数据装载工具SQL Loader中多进程对子文件并行加载,尤其利用了操作系统处理文件的高效率,弱化了SQL Loader加载文件的低效率,大大提高了数据加载入库的性能。
附图说明
图1为本发明的实施例的将文件拆分后并行加载数据入库的方法的流程图;
图2为采用图1所示的方法加载数据的过程示意图;
图3为图1所示的方法的步骤S5中各个子进程与所处理的子文件的对应关系示意图。
具体实施方式
下面结合附图和具体实施例对本发明的实施例的将文件拆分后并行加载数据入库的方法作进一步详细描述,但不作为对本发明的限定。
在对本发明说明之前,先对SQL Loader及相关技术应用做一下说明。SQL Loader是Oracle(例如Orancle8)提供的一个在操作系统命令下使用的数据装载工具,能够将数据从外部数据文件装载到Oracle数据库表中。SQL Loader至少需要涉及到2个核心文件:控制文件和数据文件。控制文件是能够被SQL Loader识别、用特定语言编写的文本文件,由控制文件通知SQL Loader将数据放在何处,并描述需要装载入Oracle数据库中的各类数据。数据文件是转换过程中的数据源,存放有要进行转换的数据。SQL Loader的工作机制为:从控制文件中读取指令,然后根据指令读取数据,最后将数据存入Oracle数据库表中。整个装载过程为:sqlldr命令→读取控制文件→读取数据文件→根据规则装载数据到数据库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国银行股份有限公司,未经中国银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310009996.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种实现数据库服务器双机热备的方法
- 下一篇:船分段边缘用脚手架