MySQL到ADB PG版表结构转换工具

简介: 工具提供将MySQL中的表结构转换为ADB PG版规范的表结构

AnalyticDB PostgreSQL(以下简称ADB PG版)作为阿里云上热门的实时数仓产品,已经赢得大量对大规模数据实时分析需求客户的肯定,目前在阿里云上已经提供了多种方式(包括但不限于DataWorksDTSrds_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表结构中无主键,请手动修改选择分布列。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
关系型数据库 MySQL Apache
**ADB MySQL湖仓版能够平滑迁移到湖仓**,阿里云提供了相应的迁移工具和服务来简化这一过程。
**ADB MySQL湖仓版能够平滑迁移到湖仓**,阿里云提供了相应的迁移工具和服务来简化这一过程。
19 2
|
2月前
|
关系型数据库 MySQL
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
26 0
|
14天前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之如何使用ADB MySQL湖仓版声纹特征提取服务
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
14天前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之ADB MySQL湖仓版和 StarRocks 的使用场景区别,或者 ADB 对比 StarRocks 的优劣势
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
6天前
|
存储 安全 关系型数据库
MySQL中使用percona-xtrabackup工具 三种备份及恢复 (超详细教程)
MySQL中使用percona-xtrabackup工具 三种备份及恢复 (超详细教程)
|
11天前
|
SQL 存储 关系型数据库
【MySQL-6】DDL的表结构的数据类型盘点&案例演示
【MySQL-6】DDL的表结构的数据类型盘点&案例演示
|
11天前
|
SQL 关系型数据库 MySQL
【MySQL-3】图形化界面工具DataGrip安装&配置&使用
【MySQL-3】图形化界面工具DataGrip安装&配置&使用
|
14天前
|
SQL 分布式计算 关系型数据库
云原生数据仓库产品使用合集之可以把ADB MySQL湖仓版数据库做成页面查询的数据库吗
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
2天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
10 0
|
2天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections

相关产品

  • 云原生数据仓库 AnalyticDB PostgreSQL版