› 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
zealinux
V2EX  ›  MySQL

从一个数据库 Mysql 中导入另一个数据库 Mysql 中,字段名不同,有什么思路?

  •  
  •   zealinux · Jan 9, 2019 · 6759 views
    This topic created in 2855 days ago, the information mentioned may be changed or developed.

    看样子不能直接用 mysqldump,

    有没有什么简单的方式?

    ( Python 有相关的工具吗)

    Supplement 1  ·  Jan 10, 2019
    不在一个实例上,
    A 是 RDS,B 是自建的 MySQL,数据量百万级别。
    (不是阿里云,不能用阿里的工具)

    不能直接用 mysqldump (因为只需要部分少量字段)
    不能使用 SELECT ... INTO OUTFILE (因为 RDS 机器不能保存你的文件)
    34 replies  •  2019-01-10 15:48:52 +08:00
    lieh222
    lieh222
    Jan 9, 2019
    1
    导出为 csv 格式?
    annielong
    annielong
    Jan 9, 2019
    2
    导出 sql 直接手工改字段名
    luosuosile
    luosuosile
    Jan 9, 2019
    3
    有意思 mark
    yghack
    yghack
    Jan 9, 2019
    4
    ETL
    zuoakang
    zuoakang
    Jan 9, 2019 via Android
    5
    自己写脚本
    MilkShake
    MilkShake
    Jan 9, 2019
    6
    写脚本,修改字段名字吧
    janxin
    janxin
    Jan 9, 2019
    7
    导 SQL 文件搜索替换一下?
    scalaer
    scalaer
    Jan 9, 2019 via Android
    8
    sqoop
    icaca
    icaca
    Jan 9, 2019
    9
    看你的数据量,几十万几百万这种级别,用文本替换也可以 concat 自己拼接 sql 也可以
    或者 create table as select 查出来再改列名,再导出也可以
    id4alex
    id4alex
    Jan 9, 2019
    10
    创建一个 view, 把字段 mapping 上,再导出 view 就好
    pudgedoor
    pudgedoor
    Jan 9, 2019 via Android
    11
    ETL +1
    BaiMax
    BaiMax
    Jan 9, 2019 via Android
    12
    ETL 正解
    promise2mm
    promise2mm
    Jan 9, 2019
    13
    阿里 DataX 了解一下?
    zqyisasd
    zqyisasd
    Jan 9, 2019
    14
    相同 mysql 实例用 insert select;不同实例可以用阿里云的数据传输服务 DTS。
    lovelybear
    lovelybear
    Jan 9, 2019
    15
    可以自己写一个工具,做一个字段名的匹配,然后导入
    xnode
    xnode
    Jan 9, 2019
    16
    自己写个工具 输出 sql 然后 用文本文档 全局替换字段名称
    ccxml
    ccxml
    Jan 9, 2019
    17
    select into
    zealinux
    zealinux
    OP
    Jan 9, 2019
    18
    补充:
    不在一个实例上,A 是 RDS,B 是自建的 Mysql,数据量

    A 还不能用命令行导出 csv 出来( INTO OUTFILE 后面目录只能在那台机器上,权限拒绝)

    所以暂时用了个笨方法:
    ---
    用 Navicat 执行 sql 语句,
    出来结果全部 copy 出来(制表符分割)的 csv 文件,
    然后再用 sed 将文件改成逗号分割的 csv 文件。

    最后再通过 python + pandas 读 csv,导入 B 中
    wwww961h
    wwww961h
    Jan 9, 2019
    19
    直接复制表,改名字,如果数据量大,会很慢,
    masker
    masker
    Jan 9, 2019 via Android
    20
    SELECT CONCAT( "INSERT INTO `your_tabls` (id,type,realname,password,nickname,headimg,mobile,email,status,login,last_login_ip,reg_platform,reg_ip) VALUES(", id, ',', TYPE, ',', IFNULL(truename, nickname), ',', `password`, ',', nickname, ',', head, ',', mobile, ',', IFNULL(email, '"email"'), ',', `status`, ',', login, ',', last_login_ip, ',', platform, ',', reg_ip, ')' ) AS res FROM lt_member WHERE `password` != '' AND TYPE = 1;
    masker
    masker
    Jan 9, 2019 via Android
    21
    用 concat 函数
    akira
    akira
    Jan 9, 2019
    22
    先原样导过来,再来处理字段名 ,就简单很多了啊
    niknik
    niknik
    Jan 9, 2019
    23
    如果数据不多,可以先导成 csv,然后手动改 csv 字段,再导入到另一个数据库
    zeraba
    zeraba
    Jan 9, 2019 via Android
    24
    不改字段同步会么? 多一步改字段名应该很容易实现吧
    fxxwor99LVHTing
    fxxwor99LVHTing
    Jan 9, 2019
    25
    python 写个脚本:从一个库查出来,然后插入到另一个库,这种事我干过。
    很简单啊。
    1 如果数据量大,就每次查询比如 1000 条,然后处理完了(这里要小心释放内存资源),再处理其它的。(但是要特别注意插入的表结构中的 非空字段 的处理,可能会有数据为空,导致插入失败的情况要记录 /处理,其它就没有什么了)
    (记录查询出的数据的总条数,和成功插入的数据总条数,比较数量是否一致)
    saulshao
    saulshao
    Jan 9, 2019
    26
    用 Python 或者 Java 写个程序来处理就行。这种事情如果是一次性的工作,其实用 2 个数据库写 SQL 脚本也可以。
    soleils
    soleils
    Jan 9, 2019
    27
    DataX
    YzSama
    YzSama
    Jan 9, 2019 via iPhone
    28
    insert into a.table (a,b,c) select aa,bb,cc from b.table
    iOct
    iOct
    Jan 10, 2019 via Android
    29
    最简单快速的办法可以试试免费的 ETL 工具,Kettle 算性不错的
    JasperYanky
    JasperYanky
    Jan 10, 2019
    30
    datax 蛮好用的
    wxl1380610
    wxl1380610
    Jan 10, 2019
    31
    mark 一下
    LoveBanana
    LoveBanana
    Jan 10, 2019
    32
    用代码,mapstruct 了解一下
    lepig
    lepig
    Jan 10, 2019
    33
    关注下 还真不知道怎么弄
    pwh19920920
    pwh19920920
    Jan 10, 2019
    34
    ETL,DataX 了解一下。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5297 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 105ms · UTC 01:27 · PVG 09:27 · LAX 17:27 · JFK 20:27
    ♥ Do have faith in what you're doing.