场景:

需要一个从SQL Server源表拉数据到MySQL目标表的SSIS ETL Package,本来一个简单的Data Flow组件就可以解决的问题,然而SSIS 2014不支持在Data flow中使用ADO.NET connection作为MySQL desitination,运行时会报错(做source connection使用没有问题),换成ODBC connection可以成功,但load速度太慢。

在以下测试表中插入260908条测试数据,然后用ODBC做Data Flow的destination,load所有数据耗时43分27秒!!

1 CREATE TABLEtblTest(2 ID BIGINT NOT NULL IDENTITY(1,1),3 Col1 NVARCHAR(30),4 Col2 NVARCHAR(30),5 Col3 NVARCHAR(30),6 Col4 NVARCHAR(30),7 Col5 NVARCHAR(30),8 Col6 DECIMAL(10,4),9 Col7 DECIMAL(10,4),10 Col8 DECIMAL(10,4),11 Col9 INT,12 Col10 DATETIME2 DEFAULTGETUTCDATE()13 )

解决方案:

将源表通过SQL Server的bcp命令导出为文件,然后在利用MySQL的LOAD DATA LOCAL INFILE命令导入目标表中。

1 --在SQL Server中创建SP如下,用以被SSIS Package调用,将源表导出至文件

2 CREATE PROCEDUREusp_ExtracttblTest3 AS

4 BEGIN

5

6 EXECsp_configure7 ‘show advanced options‘,8 1;9

10 RECONFIGURE;11

12 EXECsp_configure13 ‘xp_cmdshell‘,14 1;15

16 RECONFIGURE;17

18 DECLARE @cmd NVARCHAR(4000);19

20 SET @cmd = ‘bcp "SELECT ID,Col1,Col2,Col3,Col4,Col5,Col6,Col7,Col8,Col9,Col10 FROM Test..tblTest" queryout C:/TEST/tblTest.csv -S"SQL Server IP" -U"DBUser" -P"DBUserPassword" -c -C"65001" -t","‘;21

22 EXEC master..xp_cmdshell @cmd;23

24 END

25

26 GO

SSIS Package需要两个Execute SQL Task来实现整个ETL:

Execute SQL Task 1: 调用以上存储过程,将源表导出为文件,导出260908条测试数据耗时1秒

Execute SQL Task 2: 用ADO.NET connection的方式连接到MySQL目标数据库,SQL Statement内容如下。导入所有测试数据耗时8秒

1 LOAD DATA LOCAL INFILE ‘C:/Test/tblTest.csv‘

2 INTO TABLEtblTest3 CHARACTER SETutf84 FIELDS TERMINATED BY ‘,‘

5 ESCAPED BY ‘\\‘

6 LINES TERMINATED BY ‘\r\n‘

7 (ID,Col1,Col2,Col3,Col4,Col5,Col6,Col7,Col8,Col9,Col10);

改进后的ETL Package跑下来耗时总和仅需10秒!

原文:http://www.cnblogs.com/quietseason/p/6382416.html

etl mysql 到sqkserver_从SQL Server到MySQL的ETL实现相关推荐

  1. 从 SQL Server 到 MySQL (三):愚公移山 - 开源力量

    我们用了两章文章 从 SQL Server 到 MySQL(一):异构数据库迁移 / 从 SQL Server 到 MySQL(二):在线迁移,空中换发动机 介绍我们遇到问题和解决方案. 不管是离线全 ...

  2. mysql在建站起什么作用_数据库操作对比:Sql Server与MYSQL相比有哪些建站优势?...

    最近一直在做博客网站,从定位主题到程序和数据库的选择,确实废了不少心思,经过细致的思考,最终将主题定位为读书方面,还有文学和学习笔记,但是对于程序和数据库问题,我一直就比较费心,因为个人是个技术小白, ...

  3. sql server转mysql工具下载_SQL Server转换为MySQL工具推荐(Mss2sql)

    SQL Server转换为MySQL工具,用了一下 感觉蛮不错的. 分享上来,同时也以便记录下来以后自用. 工具名称:Mss2sql 来个操作流程: 1.首先下载工具 用户名与密码都是www.linu ...

  4. SQL 100+个最佳入门案例实践(覆盖Oralce、SQL Server、Mysql)之基础操作_1_检索数据

    SQL基础操作_1_检索数据 目录 7.1.1 数据集 7.1.2 学生选课关系表 7.1.3 供应商关系表 7.2.1 从表中查询所有行和列 7.2.2 从表中查询部分行 7.2.3 查询满足某个条 ...

  5. linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...

    本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: ...

  6. db2 mysql sql server_下文给大家介绍mysql数据库介绍,具体详情如下所示:MySQL数据库:Oracle、DB2、SQL Server、MySQL、access、mang...

    下文给大家介绍mysql数据库介绍,具体详情如下所示: MySQL 数据库: Oracle.DB2.SQL Server.MySQL.access.mangodb.bigtable 关系型数据库 大型 ...

  7. 通过SQL Server操作MySQL的步骤和方法

    在多种数据库环境下,经常会遇见在不同数据库之间转换数据和互相进行操作的情况.以下简要介绍下用SQL Server操作MySQL的步骤和方法. 1 操作前的准备 1.1 安装MySQL驱动 想要在SQL ...

  8. sql server和mysql的区别是什么

    开源 MySQL是一个开源关系数据库管理系统(RDBMS):而SQL Server不是开源的,是商业的. 程序 MySQL主要用C和C ++编程语言编程.SQL Server主要用C ++编程,但在C ...

  9. oracle sql为null值,在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办

    在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1.MSSQL: ISNULL() 语法 ISNULL ( check_expression , replacem ...

  10. Oracle 数据库、Microsoft SQL Server、MySQL 数据库三种常见数据库的区别深度剖析

    文章目录 前言 一.ORACLE 数据库 二.Microsoft SQL Server 数据库 三.MySQL 数据库 总结 前言 Oracle 数据库.Microsoft SQL Server.My ...

最新文章

  1. 【转载】linux静态链接库与动态链接库的区别及动态库的创建
  2. 文巾解题 1837. K 进制表示下的各位数字总和
  3. 自定义Matlab功能函数——10进制整数矩阵转二进制字符矩阵
  4. Mysql备份工具xtrabackup 8 安装图解
  5. nginx 目录讲解
  6. webform Repeater重复器、地址栏传值、Response
  7. VxWorks嵌入式操作系统的TrueFFS文件系统驱动开发
  8. Linux (Ubuntu/CentOS) 添加用户并授予sudo的权限
  9. Word2010-页眉中字数未满但自动换行
  10. 直播评论发弹幕切图功能点集合
  11. 营业执照在线生成_潍坊发出全省首张覆盖四大市场主体类型的“微信秒批”营业执照...
  12. MQL5 中如何调用指标
  13. echarts树图tree制作家谱教程
  14. 宝马 OR 奥迪?NONONO,还得看我Li Auto,新款六座SUV强势来袭
  15. PL/SQL——员工涨工资问题
  16. vim 方向键和backspace乱码
  17. 解决:provider:Named Pipes Provider error:40无法打开SQL Server的连接
  18. oracle+sql+按中文拼音排序,Oracle 中文字段进行排序的sql语句
  19. sku这样设置不仅降低退款投诉还可以提升转化
  20. 多变量微积分笔记1——偏导数

热门文章

  1. F23. Makefile教程
  2. webStorm 永久破解
  3. 正确方式安装Acrobat DC(附安装包)
  4. 模拟电路中晶体管阵列的性能感知公共质心布局和布线 ALIGN
  5. 分析LOIC流,判断DDoS攻击源
  6. php libiconv close_undefined reference to `libiconv_open 无法编译PHP
  7. Kaggle注册无法进行人机验证You did not enter the correct captcha
  8. IT桌面运维常识系列 - MDT
  9. 小程序js车牌号手机号正则表达
  10. Qt安装要注意的事项(Qt安装教程)