SSIS向MySQL目标(Destination)写数据--Step By Step
前言(废话)
最近的工作中涉及到SQLSERVER向MySQL的数据迁移同步,团队中理所当然准备用开发C#微服务接口的方式实现,我觉得这个路子曲折了,推荐SSIS的方式并自告奋勇接下了这个活.不过以前都是sqlserver间互相传数据,还没往MySQL写过数据,没想到处理的过程遇到很多问题,网络上搜索SSIS往MySQL导数据要么说不确定是否可行,要么就说不可行,搞得我都一度怀疑是不是往MySQL写数据本就不可行.为了交付工作,只好放弃了SSIS方案,用SqlServer的"生成脚本"连带整个表的数据批量导出脚本,然后放到MySQL中修改为MySQL的语法再批量执行,算是曲线完成了工作.过了几天因为要做成自动同步,于是又搬出来研究了一番.所幸一堆的踩坑和填坑后,总算解决了.
主要分以下几步实现:
1. 创建ODBC 连接
从MySQL官方网站下载安装ODBC连接驱动Connector/ODBC 8.0
注意是选择32位版本

创建DSN ODBC数据源
访问到控制面板,查看方式选择小图标

依次选择 管理工具/ODBC Data Source(32-bit)/系统DSN/添加




创建ODBC连接
①在连接管理器中右键点击"新建连接";
②选择ODBC;
③在新建界面选择"使用用户名或系统数据源名称",下拉项中选择前面维护的DSN,输入用户名,密码;
④设置属性RetainSameConnection=True.




2. 创建ODBC Destination
数据源组件选择普通的"OLE DB源"组件即可.目标组件选择比较多,"OLE DB Destination","ADO NET Destination","ODBC Destination",搜了些资料貌似"ADO NET Destination"是可以的,但我一番踩坑没试出来,我的验证只有"ODBC Destination"是可行的.

3. 创建执行SQL任务
执行时会提示语法错误,需要设置一下Mysql的sql_model,创建"执行SQL任务"组件,执行以下语句即可:
SET sql_mode ='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ANSI_QUOTES'
注意连接和"ODBC目标"的连接保持一致.

参考:
使用SSIS更新MYSQL中的记录
Writing to a MySQL database from SSIS
Connecting to MySQL from SSIS
Creating a Destination with the Script Component
SSIS向MySQL目标(Destination)写数据--Step By Step的更多相关文章
- mysql 写数据操作几次硬盘?
mysql 写数据步骤: 1:写入操作事物日志,持久化操作日志到磁盘,并且只是写在磁盘上一小块区域内的顺序io,不需要像随机io一样 在磁盘多个地方移动磁头 2:内存中事物日志持久化以后 ,写入的数 ...
- canal从mysql拉取数据,并以protobuf的格式往kafka中写数据
大致思路: canal去mysql拉取数据,放在canal所在的节点上,并且自身对外提供一个tcp服务,我们只要写一个连接该服务的客户端,去拉取数据并且指定往kafka写数据的格式就能达到以proto ...
- 基于Canal实现MySQL 8.0 数据库数据同步
前言 服务器说明 主机名称 操作系统 说明 192.168.11.82 Ubuntu 22.04 主库所在服务器 192.168.11.28 Oracle Linux Server 8.7 从库所在服 ...
- enode框架step by step之框架要实现的目标的分析思路剖析1
enode框架step by step之框架要实现的目标的分析思路剖析1 enode框架系列step by step文章系列索引: 分享一个基于DDD以及事件驱动架构(EDA)的应用开发框架enode ...
- MySQL 基础知识梳理学习(五)----详解MySQL两次写的设计及实现
一 . 两次写提出的背景或要解决的问题 两次写(InnoDB Double Write)是Innodb中很独特的一个功能点.因为Innodb中的日志是逻辑的,所谓逻辑就是比如插入一条记录时,它可能会在 ...
- [py]python写一个通讯录step by step V3.0
python写一个通讯录step by step V3.0 参考: http://blog.51cto.com/lovelace/1631831 更新功能: 数据库进行数据存入和读取操作 字典配合函数 ...
- android6.0 adbd深入分析(二)adb驱动数据的处理、写数据到adb驱动节点
上篇博客最后讲到在output_thread中.读取了adb驱动的数据后.就调用write_packet(t->fd, t->serial, &p)函数,把数据网socket ...
- 基于内存,redis,mysql的高速游戏数据服务器设计架构
转载请注明出处,欢迎大家批评指正 1.数据服务器详细设计 数据服务器在设计上采用三个层次的数据同步,实现玩家数据的高速获取和修改. 数据层次上分为:内存数据,redis数据,mysql数据 设计目的: ...
- MySQL 快速导入大量数据 资料收集
一.LOAD DATA INFILE http://dev.mysql.com/doc/refman/5.5/en/load-data.html 二. 当数据量较大时,如上百万甚至上千万记录时,向My ...
- 烂泥:通过binlog恢复mysql备份之前的数据
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上一篇文章,我们讲解了如何通过mysql的binlog日志恢复mysql数据库,文章连接为<烂泥:通过binlog恢复mysql数据库>.其 ...
随机推荐
- .NET中使用Redis总结 —— 1.Redis搭建
注:关于如何在windows,linux下配置redis,详见这篇文章:) 下载地址:http://redis.io/download Redis官方是不支持windows的,只是 Microsoft ...
- LeeCode 433 最小基因变化
LeeCode 433 最小基因变化 题目描述: 基因序列可以表示为一条由 8 个字符组成的字符串,其中每个字符都是 'A'.'C'.'G' 和 'T' 之一. 假设我们需要调查从基因序列 start ...
- SpringBoot2 简明教程
1.环境配置: ●Java 8 & 兼容java14 .●Maven 3.3+●idea 2019.1.2 maven的settings.xml配置 <mirrors> <m ...
- day33:进程锁&事件&进程队列&进程间共享数据
目录 1.锁:Lock 2.信号量:Semaphone 3.事件:Event 4.进程队列:Queue 5.生产者和消费者模型 6.JoinableQueue 7.Manager:进程之间共享数据 锁 ...
- 涨姿势了,有意思的气泡 Loading 效果
今日,群友提问,如何实现这么一个 Loading 效果: 这个确实有点意思,但是这是 CSS 能够完成的? 没错,这个效果中的核心气泡效果,其实借助 CSS 中的滤镜,能够比较轻松的实现,就是所需的元 ...
- 介绍箭头函数的 this
由于箭头函数不绑定this, 它会捕获其所在(即定义的位置)上下文的this值, 作为自己的this值 1. 所以 call() / apply() / bind() 方法对于箭头函数来说只是传入参数 ...
- Go语言实现文件服务器
主调函数,设置路由表 package main import ( "fmt" "net/http" "store/handler" ) fu ...
- RTSP Server(LIVE555)源码分析(三)-DESCRIBE信令
主要分析RTSPServer::RTSPClientSession针对客户端DECCRIBE信令处理. 一.回调函数incomingRequestHandler分析 回顾一下rtsp客户端sessio ...
- [Pytorch框架] 1.3、张量
文章目录 PyTorch是什么? Tensors(张量) NumPy 转换 CUDA 张量 PyTorch是什么? 基于Python的科学计算包,服务于以下两种场景: 作为NumPy的替代品,可以使用 ...
- 【Ubuntu】3.配置下载源与更新
在 Ubuntu 中,更改下载源可以加快下载速度.以下是更改 Ubuntu 下载源的步骤: 方法一: 备份之前的 sources.list 文件: sudo cp /etc/apt/sources.l ...