一款专业的异构数据库结构转换工具

背景

一部分开发者会面临这样一个场景:原先公司用的是像 MySQL 这种流行的数据库,后来经过大量的生产环境实践,发现 MySQL 并不太适合,有其他的数据库更贴合自己的业务场景,所以决定更换。
在通常情况下,虽然数据库类型要更换,但是我们的实体关系还是不变的,也就是说我们的表结构信息是基本相同的。我们只需要处理数据库之间的差异,比如类型差异,函数差异,索引差异等。
这就带来了另一些问题,处理这些冲突需要我们对新数据库有非常熟悉的掌握;另外就是大型软件系统的表数量可能有成百上千张,每个表的字段数量亦是如此。这两点会大量耗费开发者的时间与精力。

常见的解决办法

  • 常见的解决办法是通过编写脚本的方式,来进行自动化处理,如下面的 mysql_to_doris.py 脚本(伪代码仅做展示用),就是帮助自动转化 MySQL 到 Doris 表结构的
import pymysql

class TableColumnEntity:
    def __init__(self, column_name, ordinal_position, data_type, character_maximum_length, column_type, column_key,
                 column_comment): # 定义 Table, column 实体

def info_config():  # 读取表配置信息

def table_column_info(): # 连接数据库获取元信息

def mysql_type_convert(data_type, character_maximum_length, column_type):
    # 类型转换
 
def batch_mysql_to_doris(info_map, table_map):
    # 此处略去一万行代码,处理各种差异

if __name__ == '__main__':
    # 读取表信息配置文件
    info_map = info_config()
 
    # 读取mysql获取表的column
    table_map = table_column_info()
 
    # 生成doris建表语句
    batch_mysql_to_doris(info_map, table_map)
  • 执行完脚本后,最终会在本地生成 Doris 建表语句
    在这里插入图片描述
  • 脚本编写起来比较繁琐,如有其他对端数据库的转换需求又要重新编写,不懂得 Python 语法甚至还要学习一门新语言。所以有没有其他准确又快捷的方式?

CloudDM 一键生成

  • 打开 CloudDM,右键选择要转换的表,选择 获取 DDL 语句 功能
    在这里插入图片描述
  • 切换到 生成DDL 选项,选择要转换的对端数据库,比如 Doris
    在这里插入图片描述
  • 转换完成,复制语句就可以使用
    在这里插入图片描述

我们是怎么做的

  • 流程与上述的脚本的处理方式类似,不过我们细节把控更准确,转换出的结果更专业。具体流程如下图所示:
    在这里插入图片描述

软件下载与反馈

  • 产品官网:https://www.clougence.com/clouddm-personal
  • 问题反馈:https://gitee.com/clougence/clouddm-issue/issues
  • 微信交流群:访问产品官网,扫描右侧二维码即可加入
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值