传输数据到PostgreSQL数据库

问题描述:

我有一个mysql DB tables.Now我想它的数据传输到postgresql DB具有比mysql DB.So我只想传递一些不同的结构,具有30-40列值为potsgresql
我想在Windows服务器上做到这一点。
怎么办?有没有工具可以使用它?传输数据到PostgreSQL数据库

+0

有一吨的工具,在那里帮助你,比如[EasyFrom(HTTP为例SQL命令://www.easyfrom。净/),可以*评估。这里有一个博客([从MySQL迁移到Postgres的提示](http://blog.endpoint.com/2014/11/mysql-to-postgresql-migration-tips.html) – 2015-04-02 05:34:57

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

  • Pentaho的壶
  • 了Talend工作室
  • CloverETL

加上架构的手工转换。

你可以试试像Tim建议的EasyFrom工具那样的数据库迁移工具,但我从未对迄今为止使用过的任何工具印象深刻。

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

对于选择性迁移,当您想要将数据从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; 

这是它创建了一个外部表

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

感谢您的回复 – 2015-04-08 10:07:47