› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
enginex
V2EX  ›  MySQL

MySQL 如何定时发送数据到 SQL Server?

  •  
  •   enginex · Oct 23, 2017 · 5959 views
    This topic created in 3270 days ago, the information mentioned may be changed or developed.

    小弟主要负责前端,对 sql 只会一些基础操作,目前公司有一台测试 db(MySQL,暂由我代管),一台中

    间 db(异地、SQL Server,由别人管理),需要定期将 MySQL 一个 table 的数据发送到 SQL Server 的特

    定 table 上(两个 table 字段有所不同)

    请教下一般如何操作?

    感谢!

    Supplement 1  ·  Oct 24, 2017
    感谢各位的热心帮助,最后还是用 kettle 解决了( ETL tool 真的很强大),sql 脚本方面,小弟抽空还会再努力学习,毕竟这才是正道
    19 replies  •  2017-10-24 12:30:19 +08:00
    chenychen
        1
    chenychen  
       Oct 23, 2017
    dblink
    shiny
        2
    shiny  
    PRO
       Oct 23, 2017
    既然是定期,时效性要求就不会高吧,可以写个脚本导数据,定时执行即可。
    enginex
        3
    enginex  
    OP
       Oct 23, 2017
    @shiny 是用 linux crontab 脚本吗?另外,两个 table 字段不同,也可以吗
    shiny
        4
    shiny  
    PRO
       Oct 23, 2017
    @enginex 都可以,windows 下的计划任务,Linux 下的 crontab。只要脚本写对了,字段不同也没问题。需要注意的是出错能被监控到。
    enginex
        5
    enginex  
    OP
       Oct 23, 2017
    @shiny 好的,我试试
    dexterzzz
        6
    dexterzzz  
       Oct 23, 2017
    有 sql server 用 SSIS
    enginex
        7
    enginex  
    OP
       Oct 23, 2017
    @dexterzzz 是用 SSIS 可以抓取 MySQL 数据?字段不同也可以吗?
    DearMark
        8
    DearMark  
       Oct 23, 2017
    Topshelf 搭配 Quartz.Net 可以解决所有问题 On Windows
    https://dotblogs.com.tw/wasichris/2017/01/14/165637
    XiaoFaye
        9
    XiaoFaye  
       Oct 24, 2017
    变动不频繁的话,自己写 SQL Script,然后定时执行就好了。
    enginex
        10
    enginex  
    OP
       Oct 24, 2017
    @DearMark 似乎有些复杂,而且主机是 linux,不过依然感谢
    likuku
        11
    likuku  
       Oct 24, 2017
    会在程序语言里访问 DB 使用 SQL 么?会的话,那么写个程序同时操作两台 DB,使用 SQL 从 MYSQL 提取数据,按 SQLServer 的表结构重组数据,最后把拼好的数据插入 SQLServer 即可了吧。

    定时,用 win 的计划任务 / lin 的 crontab 都可以吧。
    nandaye
        12
    nandaye  
       Oct 24, 2017
    kettle/informatica etc,你现在需要一个 ETL 软件。
    sunkuku
        13
    sunkuku  
       Oct 24, 2017
    可以试试阿里开源的 canal
    enginex
        14
    enginex  
    OP
       Oct 24, 2017
    @likuku 只用过 php 操作 mysql,基础的增删改查,数据重组拼接这块儿不太熟悉
    enginex
        15
    enginex  
    OP
       Oct 24, 2017
    @nandaye @sunkuku 感谢,目前在尝试 SSMA,不行的话再换其他
    ghonfir
        16
    ghonfir  
       Oct 24, 2017
    伪装成从节点 从 mysql 解析 binlog 数据 然后组装成 sql 语句在 mssql 执行
    likuku
        17
    likuku  
       Oct 24, 2017
    @enginex 会增删改查就行了。

    所谓数据重组拼接:mysql 获取 a 库 b 表 100 行数据,b1 列 t1 数据类型,将其以 sqlserver 的 mt1 数据类型 插入 ma 库 mb 表 即可。

    这是最基本的思路了。若涉及到自增字段,那得查 sqlserver 相关如何处理。
    noNOno
        18
    noNOno  
       Oct 24, 2017
    kettle 写个脚本就好了
    你需要一个 ETL 工具
    enginex
        19
    enginex  
    OP
       Oct 24, 2017
    @likuku 好的,我试试,感谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2792 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 07:49 · PVG 15:49 · LAX 00:49 · JFK 03:49
    ♥ Do have faith in what you're doing.