1. 程式人生 > 資料庫 >postgresql 實現資料的匯入匯出

postgresql 實現資料的匯入匯出

最近想把伺服器上的測試資料庫資料導到我本地的電腦上,本地電腦資料庫是安裝在windows系統下

之前沒使用過pgsql,網上找了點資料,記入如下:

一,首先把伺服器上的資料進行備份

postgresql 實現資料的匯入匯出

pg_dump -U 使用者名稱 資料庫名 (-t 表名)> 資料存放路徑

二,把.sql 檔案下載到本地之後,首先切換到pgsql路徑下的bin目錄

postgresql 實現資料的匯入匯出

然後執行這條命令:

postgresql 實現資料的匯入匯出

-d:資料庫名

-h:地址

-p:埠

-u:使用者名稱

-f:sql檔案路徑

之後輸入口令:

postgresql 實現資料的匯入匯出

這樣就可以了!

補充:Sqoop從PostgreSQL匯入Hive遇到的兩個問題

昨天嘗試使用Sqoop從PostgreSQL向Hive中遷移資料,過程中遇到兩個問題,在此記錄一下,以備以後遇到類似問題可以快速找到解決方案。

問題1:當PostgreSQL表中有json型別時Sqoop命令報以下錯誤

No Java type for SQL type 1111 for

column voting_info

解決方案:sqoop命令中新增以下型別對映

--map-column-hive voting_info=String --map-column-java voting_info=String

問題2:如何指定PostgreSQL中指定schema名稱

PostgreSQL中的物件屬於三層模型,即database->schema->table。PostgreSQL中一般包含多個database,每個database包含多個schema,schema下包含多個表。因此使用sqoop抽取資料時有時需要指定表是屬於哪個schema。

解決方案:sqoop命令中新增以下型別對映

-- --schema szyd

下面給出一個常用的從PostgreSQL往Hive導資料的sqoop-import指令碼,僅供參考:

sqoop-import --connect jdbc:postgresql://$PG_HOST:$PG_PORT/$PG_SID \
--username $PG_UNAME --password $PG_PWD --table $TABLE_NAME \
--hive-import --hive-table $TABLE_NAME --hive-overwrite \
--null-string '\\N' --null-non-string '\\N' --hive-drop-import-delims \
-m 1 --map-column-hive voting_info=String --map-column-java voting_info=String -- --schema $SCHEMA_NAME

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。