title: MongoDB转换MySQL导入PowerDesigner生成模型
date: 2019-11-06 23:11:06
categories:

  • 工具
    tags:
  • MongoDB
  • MySQL
  • PowerDesigner

准备工作:

  1. 选择使用脚本:MongoDB2MySQL,对作者表示感谢!

  2. 准备环境:我去阿里云上开了一台4H 4G抢占式实例,用完就可以删除掉。转换过程中大致资源占用情况如下:

MongoDB转换MySQL导入PowerDesigner生成模型 - 图1

根据自己实际情况斟酌,配置低一些可能数据量大的时候转换比较慢。

安装MySQL

安装MySQL

安装MongoDB

安装脚本使用的Python依赖包:

代码里使用的python版本是python2numpypandas支持2.7,不能安装最新版,要安装低版本:

pip install numpy==1.16.0 pandas==0.23.0


pip install MySQL-Python

遇到错误:

  1. EnvironmentError: mysql_config not found
  2. ----------------------------------------
  3. ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

解决方法:安装mysql-develyum install mysql-devel -y,如果还是不行,参考https://www.cnblogs.com/dupengcheng/p/8626512.html尝试一下。

pip install pymongo ConfigParser tqdm threadpool

根据自己情况修改配置

貌似一次只能转换一张表。

转换过程中出现错误:

MongoDB转换MySQL导入PowerDesigner生成模型 - 图2

可能是这个Collectionresponse这一列数据字符串太长了,先转换其他Collection

我的Python只是入门,就不去改代码了。但是因为我想要的是表结构,没有数据也是没有关系的,就暂时放过,有空再说。

PowerDesigner使用ODBC连接MySQL生成数据库模型,教程

按照文中的一步一步来就行,其中需要注意的是ODBC选择安装32位的,可能是因为powerdesigner是32位的。

最终成功达到目的,但是因为是MongoDB导出的MySQL的原因,模型是没有任何依赖关系的,只能自己添加了。

另一种解决方案

后来才想到,如果有MongoDBODBC驱动,是不是可以直接连接导入PowerDesigner?找了一下,果真有。

MongoDB ODBC Driver 下载地址

或者:蓝奏云 MongoDB ODBC Driver 下载 密码 : 3nvn

安装之后,一样进入管理工具,选择已安装的MongoDB ODBC Driver,新建数据源,保存。

打开PowerDesigner,建立PhysicalDataModel文件,DBMS项选择ODBC 3.0,数据库连接的时候,选择刚刚新建的数据源即可。