我有一個Postgresql轉儲(使用pg_dump,自定義壓縮格式創建)。我想pg_restore它到標準輸出,但用管道替換標籤分隔。我已經嘗試過使用tr通過管道,但是我確實有大量實際包含標籤的文本字段,並且tr顯然不尊重引號。有數以百億計的輸出行(壓縮文件大於500 GB),所以我確實需要一個相對有效的解決方案。pg_restore delimiter
1
A
回答
0
你最好的選擇是使用
COPY tablename TO STDOUT WITH CSV DELIMITER '|';
從數據庫裏面做這個,而不是使用您的轉儲文件。
第二個選項是使用--inserts開關執行新轉儲,然後解析以INSERT開頭的行。這也會很慢。
1
如果它要快,使用C.保存
#include <stdio.h>
int main()
{
int c, quoted = 0;
while (c = getchar(), c != EOF)
{
if (c == '"') quoted = !quoted;
if (c == '\t' && !quoted) c = '|';
putchar(c);
}
return quoted;
}
即G。作爲bartab.c,用gcc bartab.c -o bartab
進行編譯,並通過生成的程序進行編譯。
相關問題
- 1. Howto pg_restore
- 2. pg_restore在
- 3. SOH(\ 001)Fastload Delimiter
- 4. Laravel遷移DELIMITER
- 5. awk delimiter regex
- 6. mySQL DELIMITER投擲1064
- 7. python 3.4 import csv delimiter
- 8. number_to_currency separator/delimiter issue 100 {:separator =>「,」,:delimiter =>「。」,:raise => true} 000
- 9. pg_dump 9.0 to pg_restore 8.3
- 10. MySQL/phpMyAdmin從DELIMITER中凍結
- 11. Flyway DB2 change delimiter NOT WORKING
- 12. MySQL DELIMITER語法錯誤
- 13. pg_restore使用zip文件?
- 14. pg_restore無法加載轉儲
- 15. PgAdminIII中pg_restore的問題
- 16. PostgreSQL:改進pg_dump,pg_restore性能
- 17. ruby:optimize => phrase.split(delimiter).collect {| p | p.lstrip.rstrip}
- 18. Delphi SAP SAPFunctions DELIMITER忽然忽略?
- 19. Outlook Message Delimiter是否有這種東西?
- 20. 'DELIMITER'附近的SQL語法錯誤
- 21. HIVE REGEX記錄DELIMITER表中的NULL值
- 22. MySQL DELIMITER無法正常工作
- 23. MySQL的「DELIMITER」關鍵字不起作用
- 24. Delimiter「,Linux中的空格和bash腳本
- 25. 更新觸發器上的MySql。 DELIMITER
- 26. mysql中的DELIMITER不起作用
- 27. laravel blade模板衝突jquery delimiter
- 28. herkou pg_restore到已更改的數據庫
- 29. 的PostgreSQL pg_restore的錯誤:GRANT,REVOKE
- 30. pg_restore在不關閉觸發器
聽起來像這個轉儲只包含一個表。正確?無論如何,簡單(但不一定是快速)的方法當然是恢復到PostgreSQL數據庫,然後使用'\ copy(SELECT格式('%s |%s |%s',col1,col2,co3)在'psql'中。 –
感謝您的評論克雷格。實際上我有多個表格,不管我認爲你提出的解決方案會花費太長時間。 – alex
現在我正在玩python csv,但我認爲它實際上太慢了。 – alex