- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大批量数据出入数据库的方法的研究
大批量数据出入数据库的方法的研究
摘要:结合实践中所采集的大量数据,以及经过加工处理的大批量数据,在建库管理时,如何实现快速出入库的方法进行研究,以寻求对海量数据快速处理的方法。
关键词:采集;数据;出入库;快速
中图分类号:TP391.7文献标识码:A文章编号:1007-9599 (2012) 04-0000-02
一、引言
在项目生产过程中,按照设计要求,经过采集会产生大批量的原始数据;同时,在对这些数据资料的处理和分析过程中,也会产生很多的中间资料,这些中间资料对最终成果都具有参考意义,因此也需要进行保存和管理;每个项目生产中,都需要管理的大批的数据资料。
随着这些数据资料规模的不断扩大,由人工进行管理,将会越来越困难,且极其容易造成人为错误和丢失,给项目生产造成损失。为了解决这一问题,采取了将数据建库管理的思路和方法,利用数据库提供的海量数据管理机制,对各类业务数据进行管理,在提高安全性的同时,便于快速筛选和查找。
对于大批量的数据来说,按照数据库常规的逐条增加记录方法,将需要很长的时间,这严重影响了工作效率,不能满足项目实际生产要求;因此,研究如何实现大批量数据快速出入库的方法,对于提高生产效率有着重要意义。
二、数据库的选择
简单的讲,数据库(Database)就是按照一定的数据结构来组织、存储和管理数据的仓库。随着信息技术的发展,数据库技术得到不断完善和发展,已经相当成熟,特别是近几年,数据库管理已经不仅仅局限于数据的存储,而是向数据挖掘和分析方向发展。
三、方法探讨与实现
经过查阅相关资料,并结合实际生产应用,总结了以下三种方法,每种方法都有各自的优点和弊端,在使用时,可根据实际情况,选择更加有利和快捷的方法。
下面对三种方法进行逐一介绍:
(一)按记录循环读取、写入法
该方法也是最常用的方法,简而言之,就是通过程序读取数据文件,然后循环将数据记录读出,然后写入数据库,直至数据结束。如下图所示:
这种方法的实现相对简单,需要借助编写程序来实现。具体实现时,选择任意一个熟悉的程序开发和编译环境,利用ADO或数据库提供的连接组件,连接到数据库,然后打开数据文件,逐行读入,再逐条写入数据库;循环这一过程,完成数据由文件向数据库的写入过程。在导出时,首先从数据表中提取记录集,并逐条循环写至数据文件。
由此可见,此种方法的优点是灵活,利用程序读写,所以对数据格式的兼容性比较强,可以灵活的按照数据格式进行调整和优化;其缺点是对于大批量数据的支持能力不够,不能满足大批量数据的生产要求。
(二)BULK INSERT法
为了解决上述方法的不足,进一步探寻能解决速度瓶颈的方法。经过查阅相关资料发现,SQL Server数据库引擎提供了一个批量数据导入命令,能够实现从数据文件的直接导入操作。
命令名称为BULK INSERT,其具体语法格式及参数如下所示:
BULK INSERT [表名] FROM [文件名] WITH (FIELDTERMINATOR=’,’,ROWTERMINATOR=’/n’)
参数中:
[表名]:表示导入数据库后的数据表名称;
[文件名]:表示原始数据文件的名称,要求为文本格式,数据项之间用逗号进行分隔。
[FIELDTERMINATOR]:指定数据列的分隔符号;
[ROWTERMINATOR]:指定数据行的分隔符号;
和上述方法一样,可以通过程序将该命令发送给数据库引擎,由其按照命令格式,将指定的数据文件中所包括的数据,导入到指定的数据库表当中。
但是该命令本身只支持数据的导入,不支持数据的导出;为充分利用其快速导入功能,可利用SQL命令来弥补你不具备导出功能的不足,命令格式如下:
Insert into OPENROWSET(‘Microsft.Jet.OLEDB.4.0’,’Excel 5.0;HDR=YES;DATABASE=’C:/[文件名].xls’,sheet1$)
Select * from [表名]
其中:[表名]表示数据来源的数据表;
[文件名]表示导出后数据的文件名称;
对于海量数据,利用这种方法将数据导入、导出数据库,其效率比上述方法有了明显的提升;原来需要20分钟的数据量,可以提升至十几秒以内完成,在时间性能上已经基本可以满足实际生产需要。
(三)BCP法
为了进一步寻找效能更好的海量数据导入、导出方法,经过进一步尝试,总结了SQL Server提供的较为底层的bcp命令方法。
Bcp.exe是SQL Server自身附带的一个实用命令,它作为一个独立的可执行文件
文档评论(0)