本文介紹如何通過\COPY命令,將本地的文字檔資料匯入雲原生資料倉儲AnalyticDB PostgreSQL版資料庫。
注意事項
由於\COPY命令需要通過Master節點進行串列資料寫入處理,因此無法實現並行寫入大批量資料。如果要進行大量資料的並行寫入,請使用基於OSS的資料匯入方式。通過OSS匯入資料,請參見使用OSS外表高速匯入OSS資料。
\COPY與COPY命令的區別
相同點:
\COPY與COPY命令文法上沒有任何區別。更多關於兩種命令的使用方法,請參見COPY。
不同點:
\COPY為psql的操作指令;COPY為資料庫指令。
\COPY命令支援操作FILE、STDIN和STDOUT檔案;COPY命令僅支援操作STDIN和STDOUT檔案,不支援操作FILE檔案。
說明COPY命令需要SUPERUSER許可權才支援操作FILE檔案,目前AnalyticDB PostgreSQL不提供SUPERUSER許可權。
文法
\COPY匯入資料的文法如下:
\COPY table [(column [, ...])] FROM {'file' | STDIN}
[ [WITH]
[OIDS]
[HEADER]
[DELIMITER [ AS ] 'delimiter']
[NULL [ AS ] 'null string']
[ESCAPE [ AS ] 'escape' | 'OFF']
[NEWLINE [ AS ] 'LF' | 'CR' | 'CRLF']
[CSV [QUOTE [ AS ] 'quote']
[FORCE NOT NULL column [, ...]]
[FILL MISSING FIELDS]
[[LOG ERRORS [INTO error_table] [KEEP]
SEGMENT REJECT LIMIT count [ROWS | PERCENT] ]
說明 AnalyticDB PostgreSQL支援使用JDBC執行COPY語句,JDBC中封裝了CopyIn方法,具體資訊,請參見Interface CopyIn。
樣本
\COPY test1 FROM '/path/to/localfile';