将数据从mysql数据库传输到postgresql数据库



我有一个mysql DB,它有30-40个表。现在我想把它的数据传输到postgresql数据库中,它的结构与mysql数据库不同。所以我只想把一些列的值转移到potsgresql
我想在windows服务器上做
如何做到这一点?有工具吗

对于选择性迁移,当您想将数据从MySQL复制到Postgres时,最简单的方法是利用所谓的数据包装器。https://wiki.postgresql.org/wiki/Foreign_data_wrappers

您需要在Postgres数据库中创建mysql_fwd扩展,定义mysql服务器和用户映射。然后,您就可以创建"外部表",它可以被视为外部数据库的窗口。你可以把它们用于阅读和写作。

CREATE EXTENSION mysql_fdw;

CREATE SERVER mysql_cms
FOREIGN DATA WRAPPER mysql_fdw
OPTIONS (host '192.168.125.206', port '3306');

ALTER SERVER mysql_cms OWNER TO cmsuser;
CREATE USER MAPPING FOR cmsuser SERVER mysql_cms OPTIONS (username 'cmsuser', password '123456');

CREATE SCHEMA mysql_cms AUTHORIZATION cmsuser;

这是一个创建外部表的示例SQL命令

CREATE FOREIGN TABLE mysql_cms.video(
     id INT,
     artist text,
     title text)
SERVER mysql_cms
     OPTIONS (dbname 'cms', TABLE_NAME 'video');

对于这样的选择性迁移,我强烈建议使用ETL工具,如:

  • Pentaho水壶
  • Talend工作室
  • CloverETL

加上模式的手动转换。

你可以尝试一个DB迁移工具,比如Tim建议的EasyFrom工具,但到目前为止,我从未使用过任何一个工具给我留下深刻印象。

另一种选择是简单地使用SELECT ... INTO OUTFILE从MySQL进行CSV转储,然后使用PostgreSQL的COPY命令加载CSV。

相关内容

  • 没有找到相关文章

最新更新