阅读351 返回首页    go 微信


导入MySQL数据__快速入门_云数据库 HybridDB-阿里云

云数据库HybridDB(ApsaraDB HybridDB)是一种在线MPP大规模并行处理数据仓库服务。云数据库HybridDB基于Greenplum Database开源数据库项目,并由阿里云深度扩展支持OSS存储、JSON数据类型、HyperLogLog预估分析等功能特性。

mysql2pgsql

工具 mysql2pgsql 支持不落地的把 MYSQL 中的表迁移到 HybridDB/PostgreSQL/PPAS。此工具的原理是,同时连接源端mysql数据库,和目的端HybridDB/PostgreSQL/PPAS数据库,从mysql库中通过查询得到要导出的数据,然后通过COPY命令导入到目的端。此工具支持多线程导入(每个工作线程负责导入一部分数据库表)。

参数配置

修改配置文件 my.cfg,配置源和目的库连接信息

  1. 1. 源库 mysql 连接信息
  2. [src.mysql]
  3. host = "192.168.1.1"
  4. port = "3306"
  5. user = "test"
  6. password = "test"
  7. db = "test"
  8. encodingdir = "share"
  9. encoding = "utf8"
  10. 2. 目的库 pgsql (包括 Postgresql、PPAS 和 HybridDB )连接信息
  11. [desc.pgsql]
  12. connect_string = "host=192.168.1.1 dbname=test port=5888 user=test password=pgsql"

注意

  1. 1. 源库 mysql 的连接信息中,用户需要有对所有用户表的读权限
  2. 2. 目的库 pgsql 的连接信息,用户需要对目标表有写的权限

mysql2pgsql用法

  1. ./mysql2pgsql -l <tables_list_file> -d -j <number of threads>

其中参数的意义如下:

-l 为可选参数,指定一个文本文件,文件中含有需要同步的表;如果不指定此参数,则同步配置文件中指定的数据库下的所有表。<tables_list_file>为一个文件名,里面含有需要同步的表集合以及表上查询的条件,其内容格式示例如下:

  1. table1 : select * from table_big where column1 < '2016-08-05'
  2. table2 :
  3. table3
  4. table4: select column1, column2 from tableX where column1 != 10
  5. table5: select * from table_big where column1 >= '2016-08-05'

-d 为可选参数,表示只生成目的表的建表DDL语句,不实际进行数据同步。

-j 为可选参数,指定使用多少线程进行数据同步;如果不指定此参数则会使用5个线程并发。

典型用法

  1. 1 全库迁移
  2. 1)通过下面的命令,获取目的端对应的表的DDL
  3. ./mysql2pgsql -d
  4. 然后根据这些DDL,再加入distribution key等信息,在目的端创建表。
  5. 2)执行下面的命令,同步所有表:
  6. ./mysql2pgsql
  7. 此命令会把配置文件中所指定的数据库中的所有mysql表数据迁移到目的端。过程中使用5个线程(即缺省线程数为5),读取和导入所有涉及的表数据。
  8. 2. 部分表迁移
  9. 1)编辑一个新文件tab_list.txt,放入如下内容:
  10. ```
  11. t1
  12. t2 : select * from t2 where c1 > 138888
  13. ```
  14. 2) 执行下面的命令,同步指定的t1和t2表(注意t2表只迁移符合c1 > 138888条件的数据):
  15. ./mysql2pgsql -l tab_list.txt

mysql2pgsql工具下载链接

请详细阅读阿里云的开源项目rds_dbsync并进行编译安装 https://github.com/aliyun/rds_dbsync/blob/master/doc/design.md

最后更新:2016-12-01 11:09:16

  上一篇:go 高速 OSS 并行导入导出__快速入门_云数据库 HybridDB-阿里云
  下一篇:go 导入PostgreSQL数据__快速入门_云数据库 HybridDB-阿里云