怎么在postgresql數(shù)據(jù)庫中對數(shù)據(jù)進行導入導出?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站設計、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務黃平,10余年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792一,首先把服務器上的數(shù)據(jù)進行備份
pg_dump -U 用戶名 數(shù)據(jù)庫名 (-t 表名)> 數(shù)據(jù)存放路徑
然后執(zhí)行這條命令:
-d:數(shù)據(jù)庫名
-h:地址
-p:端口
-u:用戶名
-f:sql文件路徑
之后輸入口令:
這樣就可以了!
補充:Sqoop從PostgreSQL導入Hive遇到的兩個問題
昨天嘗試使用Sqoop從PostgreSQL向Hive中遷移數(shù)據(jù),過程中遇到兩個問題,在此記錄一下,以備以后遇到類似問題可以快速找到解決方案。
問題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抽取數(shù)據(jù)時有時需要指定表是屬于哪個schema。
解決方案:sqoop命令中添加以下類型映射
-- --schema szyd
下面給出一個常用的從PostgreSQL往Hive導數(shù)據(jù)的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
看完上述內(nèi)容,你們掌握怎么在postgresql數(shù)據(jù)庫中對數(shù)據(jù)進行導入導出的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!