一种基于MySqlBulkLoader实现将大量数据导入mysql数据库的方法技术

技术编号:23558118 阅读:14 留言:0更新日期:2020-03-25 03:45
本发明专利技术涉及mysql技术领域,特别涉及一种基于MySqlBulkLoader实现将大量数据导入mysql数据库的方法。本发明专利技术方法如下:一、创建导出数据的数据库对象并设置数据来源;二、遍历循环导出数据源,生成csv文件;三、创建导入的mysql数据库对象并设置数据接收源;四、获取生成的csv文件路径;五、创建mysql的MySqlBulkLoader并读取csv文件;六、导入成功。本发明专利技术解决了当Mysql数据库要添加的数据量过于庞大时数据导入缓慢低效的问题。

A method of importing large amount of data into MySQL database based on MySQL bulk loader

【技术实现步骤摘要】
一种基于MySqlBulkLoader实现将大量数据导入mysql数据库的方法
本专利技术涉及mysql
,特别涉及一种基于MySqlBulkLoader实现将大量数据导入mysql数据库的方法。
技术介绍
在软件的生命周期中,经常遇到由于业务发展,系统迭代更新带来的数据迁移工作;或者软件系统本身的重构抑或其他因素,几乎都需要对数据进行迁移。而由于数据量太过庞大,数据表都过百万,常用的dapper已经无法满足。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。。本专利技术主要是使用mysql里的MySqlBulkLoader对象,通过中间数据的CSV文件,提供了一种更加高效快捷的数据导入到mysql数据库的方法。
技术实现思路
本专利技术解决的技术问题在于提供一种基于MySqlBulkLoader实现将大量数据导入mysql数据库的方法;本专利技术解决了当Mysql数据库要添加的数据量过于庞大时数据导入缓慢低效的问题本专利技术解决上述技术问题的技术方案是:一、创建导出数据的数据库对象并设置数据来源;二、遍历循环导出数据源,生成csv文件;三、创建导入的mysql数据库对象并设置数据接收源;四、获取生成的csv文件路径;五、创建mysql的MySqlBulkLoader并读取csv文件;六、导入成功。所述的方法具体包括如下步骤:步骤一、创建导出数据的数据库对象并设置数据来源,如数据库类型,数据库表名;步骤二、遍历循环导出数据源,生成csv文件;步骤三、创建导入的mysql数据库对象并设置数据接收源,用来接收导出的数据;步骤四、获取生成的csv文件路径;步骤五、创建mysql的MySqlBulkLoader并读取csv文件;步骤六、导入成功,得到的返回值大于0;本专利技术的有益效果:将要导出的数据源转化为csv文件,再通过MySqlBulkLoader对象把生成的csv文件导入到mysql数据库中。有效本专利技术解决了当Mysql数据库要添加的数据量过于庞大时数据导入缓慢低效的问题附图说明下面结合附图对本专利技术进一步说明:图1为本专利技术的流程图。具体实施方式如图1所示,本专利技术采用如下步骤:步骤一、创建导出数据的数据库对象并设置数据来源,如数据库类型,数据库表名;如:consql=string.Format(@"server={0},{1};database={2};uid={3};pwd={4};",ip.Text,port.Text,database.Text,username.Text,password.Text);iDBOperator=DataMigration.getDataType("sqlServer",consql);步骤二、遍历循环导出数据源,生成csv文件;如:publicvoidToCsvFile(DataTabletable){StringBuilderstringBuilder=newStringBuilder();DataColumnDcolum;foreach(DataRowrowintable.Rows){for(inti=0;i<table.Columns.Count;i++){Dcolum=table.Columns[i];if(i!=0)stringBuilder.Append(",");if(Dcolum.DataType==typeof(string)&&row[Dcolum].ToString().Contains(",")){stringBuilder.Append("\""+row[Dcolum].ToString().Replace("\"","\"\"")+"\"");}elsestringBuilder.Append(row[Dcolum].ToString());}stringBuilder.AppendLine();}File.WriteAllText(table.TableName+".csv",stringBuilder.ToString());}步骤三、创建导入的mysql数据库对象并设置数据接收源,用来接收导出的数据;如:stringconSqlService=EncryptionUtils.BCutEncrypt(ConfigHelper.getSysValue("dataMigration","serviceConnection"));stringconDataTypeService=ConfigHelper.getSysValue("dataMigration","serviceDatabase");//服务器数据库IDBOperatoriDBOperatorservice=DataMigration.getDataType(conDataTypeService,conSqlService);步骤四、获取生成的csv文件路径:步骤五、创建mysql的MySqlBulkLoader并读取csv文件;如:publicintBulkLoadCSV(MySqlConnectionmySqlConnection,DataTabledataTable){try{vardataTableColumns=dataTable.dataTableColumns.Cast<DataColumn>().Select(colum=>colum.ColumnName).ToArray();MySqlBulkLoadermySqlBulkLoaderBulk=newMySqlBulkLoader(_mySqlConnection){FieldTerminator=",",FieldQuotationCharacter='"',EscapeCharacter='"',LineTerminator="\r\n",FileName=dataTable.TableName+".csv",NumberOfLinesToSkip=0,TableName=dataTable.TableName,};mySqlBulkLoaderBulk.dataTableColumns.AddRange(dataTableColumns);intresult=mySqlBulkLoaderBulk.Load();returnresult;}catch(Exceptionex){throwex;}}步骤六、导入成功本文档来自技高网...

【技术保护点】
1.一种基于MySqlBulkLoader实现将大量数据导入mysql数据库的方法,其特征在于:一、创建导出数据的数据库对象并设置数据来源;二、遍历循环导出数据源,生成csv文件;三、创建导入的mysql数据库对象并设置数据接收源;四、获取生成的csv文件路径;五、创建mysql的MySqlBulkLoader并读取csv文件;六、导入成功;从而本专利技术解决了Mysql数据库要添加的数据量过于庞大时数据导入缓慢低效的问题。/n

【技术特征摘要】
1.一种基于MySqlBulkLoader实现将大量数据导入mysql数据库的方法,其特征在于:一、创建导出数据的数据库对象并设置数据来源;二、遍历循环导出数据源,生成csv文件;三、创建导入的mysql数据库对象并设置数据接收源;四、获取生成的csv文件路径;五、创建mysql的MySqlBulkLoader并读取csv文件;六、导入成功;从而本发明解决了Mysql数据库要添加的数据量过于庞大时数据导入缓慢低效的问题。


2.根据权利要求1所述的基于MySqlBulkLoader实现将大量数据导入mysql数...

【专利技术属性】
技术研发人员:吴晓春张来卿庞严冬
申请(专利权)人:珠海横琴盛达兆业科技投资有限公司
类型:发明
国别省市:广东;44

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

1