2015-04-02 44 views
0

我有一個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

回答

0

對於選擇性遷移這樣的,我強烈建議您使用ETL工具,如:

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

加上架構的手工轉換。

你可以試試像Tim建議的EasyFrom工具那樣的數據庫遷移工具,但我從未對迄今爲止使用過的任何工具印象深刻。

另一種選擇是簡單地使用SELECT ... INTO OUTFILE從MySQL執行CSV轉儲,然後使用PostgreSQL的COPY命令加載CSV。

1

對於選擇性遷移,當您想要將數據從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