PostgreSQLは、大量データの読み込みや書き出しに便利なCOPYコマンドを提供しています。この記事では、ファイルとテーブル間で高速にデータをやり取りする方法を具体例とともに解説します。
COPYコマンドとは
PostgreSQLのCOPYコマンドは、テーブルと外部ファイル間でデータを直接読み書きする機能です。通常のINSERT文よりも高速にデータを扱えるのが特徴です。
基本的な構文は以下の通りです。
COPY table_name FROM ‘file_path’ WITH (FORMAT csv);
ファイルからテーブルへのデータ読み込み
CSVファイルをテーブルにインポートする場合、以下のように記述します。
COPY employees FROM ‘/path/to/employees.csv’ WITH (FORMAT csv, HEADER true);
このコマンドでは、ヘッダー行を無視してデータだけを取り込む設定も可能です。大規模データでも高速に読み込むことができます。
テーブルからファイルへのデータ書き出し
逆に、テーブルのデータを外部ファイルに書き出すこともできます。
COPY employees TO ‘/path/to/output.csv’ WITH (FORMAT csv, HEADER true);
これにより、バックアップや他システムとのデータ連携が容易になります。
注意点と便利なオプション
COPYコマンドを使用する際は、ファイルパスや権限に注意が必要です。PostgreSQLサーバーがファイルにアクセスできる必要があります。
また、区切り文字やNULL表現を指定することで、より柔軟にデータを取り扱えます。
COPY employees FROM ‘/path/to/employees.csv’ WITH (FORMAT csv, DELIMITER ‘;’, NULL ‘NULL’, HEADER true);
まとめ: COPYコマンドで効率的なデータ操作を実現
PostgreSQLのCOPYコマンドを活用すれば、ファイルとテーブル間のデータやり取りが高速かつ効率的に行えます。大規模データの取り扱いやデータ移行、バックアップにも最適です。
まずは基本的な構文を理解し、読み込み・書き出しの両方で試してみることをおすすめします。


コメント