看样子不能直接用 mysqldump,
有没有什么简单的方式?
( Python 有相关的工具吗)
1
lieh222 2019-01-09 11:23:24 +08:00
导出为 csv 格式?
|
2
annielong 2019-01-09 11:31:47 +08:00
导出 sql 直接手工改字段名
|
3
luosuosile 2019-01-09 11:32:26 +08:00
有意思 mark
|
4
yghack 2019-01-09 11:37:05 +08:00
ETL
|
5
zuoakang 2019-01-09 11:37:51 +08:00 via Android
自己写脚本
|
6
aaa5838769 2019-01-09 11:43:24 +08:00
写脚本,修改字段名字吧
|
7
janxin 2019-01-09 11:47:05 +08:00
导 SQL 文件搜索替换一下?
|
8
scalaer 2019-01-09 12:19:56 +08:00 via Android
sqoop
|
9
icaca 2019-01-09 12:31:50 +08:00
看你的数据量,几十万几百万这种级别,用文本替换也可以 concat 自己拼接 sql 也可以
或者 create table as select 查出来再改列名,再导出也可以 |
10
id4alex 2019-01-09 12:52:20 +08:00
创建一个 view, 把字段 mapping 上,再导出 view 就好
|
11
pudgedoor 2019-01-09 12:56:05 +08:00 via Android
ETL +1
|
12
BaiMax 2019-01-09 13:17:02 +08:00 via Android
ETL 正解
|
13
promise2mm 2019-01-09 13:19:27 +08:00
阿里 DataX 了解一下?
|
14
zqyisasd 2019-01-09 13:52:47 +08:00
相同 mysql 实例用 insert select;不同实例可以用阿里云的数据传输服务 DTS。
|
15
lovelybear 2019-01-09 13:54:25 +08:00
可以自己写一个工具,做一个字段名的匹配,然后导入
|
16
xnode 2019-01-09 14:07:15 +08:00
自己写个工具 输出 sql 然后 用文本文档 全局替换字段名称
|
17
ccxml 2019-01-09 14:54:20 +08:00
select into
|
18
zealinux OP 补充:
不在一个实例上,A 是 RDS,B 是自建的 Mysql,数据量 A 还不能用命令行导出 csv 出来( INTO OUTFILE 后面目录只能在那台机器上,权限拒绝) 所以暂时用了个笨方法: --- 用 Navicat 执行 sql 语句, 出来结果全部 copy 出来(制表符分割)的 csv 文件, 然后再用 sed 将文件改成逗号分割的 csv 文件。 最后再通过 python + pandas 读 csv,导入 B 中 |
19
wwww961h 2019-01-09 16:48:51 +08:00
直接复制表,改名字,如果数据量大,会很慢,
|
20
masker 2019-01-09 16:50:00 +08:00 via Android
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;
|
21
masker 2019-01-09 16:51:55 +08:00 via Android
用 concat 函数
|
22
akira 2019-01-09 16:57:20 +08:00
先原样导过来,再来处理字段名 ,就简单很多了啊
|
23
niknik 2019-01-09 17:28:46 +08:00
如果数据不多,可以先导成 csv,然后手动改 csv 字段,再导入到另一个数据库
|
24
zeraba 2019-01-09 18:38:43 +08:00 via Android
不改字段同步会么? 多一步改字段名应该很容易实现吧
|
25
fxxwor99LVHTing 2019-01-09 20:11:42 +08:00
python 写个脚本:从一个库查出来,然后插入到另一个库,这种事我干过。
很简单啊。 1 如果数据量大,就每次查询比如 1000 条,然后处理完了(这里要小心释放内存资源),再处理其它的。(但是要特别注意插入的表结构中的 非空字段 的处理,可能会有数据为空,导致插入失败的情况要记录 /处理,其它就没有什么了) (记录查询出的数据的总条数,和成功插入的数据总条数,比较数量是否一致) |
26
saulshao 2019-01-09 20:42:41 +08:00
用 Python 或者 Java 写个程序来处理就行。这种事情如果是一次性的工作,其实用 2 个数据库写 SQL 脚本也可以。
|
27
nananqujava 2019-01-09 21:05:29 +08:00
DataX
|
28
YzSama 2019-01-09 21:23:12 +08:00 via iPhone
insert into a.table (a,b,c) select aa,bb,cc from b.table
|
29
iOct 2019-01-10 00:51:10 +08:00 via Android
最简单快速的办法可以试试免费的 ETL 工具,Kettle 算性不错的
|
30
JasperYanky 2019-01-10 09:46:26 +08:00
datax 蛮好用的
|
31
wxl1380610 2019-01-10 10:16:34 +08:00
mark 一下
|
32
LoveBanana 2019-01-10 14:18:11 +08:00
用代码,mapstruct 了解一下
|
33
lepig 2019-01-10 14:54:40 +08:00
关注下 还真不知道怎么弄
|
34
pwh19920920 2019-01-10 15:48:52 +08:00
ETL,DataX 了解一下。
|