このトピックでは、psql CLIクライアントで \copyコマンドを実行して、コンピューターからAnalyticDB for PostgreSQLインスタンスにテキストファイルをインポートする方法について説明します。
使用上の注意
\copyコマンドはコーディネーターノードを使用してデータを直列に書き込むため、大量のデータを並列にインポートすることはできません。 大量のデータを並行してインポートする必要がある場合は、Object Storage Service (OSS) に基づくデータインポート方法を使用できます。 OSSを使用してデータをインポートする方法の詳細については、「外部テーブルを使用してOSSからデータをインポートする」をご参照ください。
\copyとCOPYの比較
類似点:
両方の構文は同じです。 構文の詳細については、「COPY」をご参照ください。
違い:
\copyはpsqlで使用されますが、COPYはデータベースで使用されます。
\copyはFILE、STDIN、およびSTDOUTファイルの管理に使用できますが、COPYはSTDINおよびSTDOUTファイルの管理にのみ使用できます。
説明FILEファイルを変更するにはSUPERUSER権限が必要ですが、AnalyticDB for PostgreSQLはこの権限をサポートしていません。
構文
次の例は、\copyコマンドを実行してAnalyticDB for PostgreSQLインスタンスにデータをインポートする方法を示しています。
\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] ]
CopyInメソッドがカプセル化されているJava Database Connectivity (JDBC) を使用して、AnalyticDB for PostgreSQLでCOPYステートメントを実行することもできます。 CopyInの詳細については、「インターフェイスCopyIn」をご参照ください。
例
\COPY test1 FROM '/path/to/localfile';