mysql修改语句_MySQL到ADB PG版表结构转换工具

0355ef7d7fd350214545cd56e0473751.png

AnalyticDB PostgreSQL(以下简称ADB PG版)作为阿里云上热门的实时数仓产品,已经赢得大量对大规模数据实时分析需求客户的肯定,目前在阿里云上已经提供了多种方式(包括但不限于DataWorks、DTS、rds_dbsync等)将数据从MySQL中同步到ADB PG版中进行数据分析。但是有点缺陷的是,由于ADB PG版是一个分布式的分析型数据库,表结构的定义和传统的关系型数据库差异较大,前面的工具中都没有提供表结构的同步,这也成为困扰客户的问题,因此我们基于开源工具贴身做了个表结构转换的工具。

功能介绍

该工具主要提供将MySQL中的表结构转换为ADB PG版规范的表结构,只需要有简单的python环境和mysqldump就可以使用。MySQL中的无主键表需要单独处理一下,因为ADB PG版在建表时是需要指定分布列的,工具默认会将MySQL中的主键列设置为分布列,对于无主键表,用户需要修改生成的建表语句,为无主键表指定分布列。

获取工具

db_converter的github地址:https://github.com/wuchase/mysql-postgresql-converter

使用步骤

1.使用mysqldump dump出PG兼容的MySQL建表语句(修改下面语句中的databasename和dumpfile.sql),此处dump语句很重要,一定要转为PG兼容的建表语句:

mysqldump --opt --compatible=postgresql --default-character-set=utf8 -d databasename -r dumpfile.sql -u username -p

2.执行转换脚本,dumpfile.sql和adbforpg.sql填写真实的值

python db_converter.py dumpfile.sql adbforpg.sql

adbforpg.sql是转换后的ADB for PG的建表语句,如果需要有需改需求,可以直接在文件中进行修改。重点要关注一下分布列的选择,默认选择MySQL表中的主键作为分布列,如果MySQL表结构中无主键,请手动修改选择分布列。

本文为云栖社区原创内容,未经允许不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值