はじめに

改行データをロードする場合は、COPYコマンドのパラメータでレコード終端文字を指定する必要があります。指定したレコード終端文字がテーブルのデータ内に含まれている場合はロードエラーになるため、データに含まれない文字を指定する必要があります。
しかし、実運用で利用しているテーブルのデータ件数は多く、様々なデータ(「”」、「,」、「;」、「TAB」…)が含まれている可能性があり、レコード終端文字にどの文字を指定すべきか判断が難しい場合があります。


本記事では、上記データを例に挙げて、改行データのロード方法をご紹介します。


改行データのロード方法

区切り文字、レコード終端文字に制御コードを使用し、囲み文字は使わずにデータ抽出、データロードを行います。

手順/コマンド

○使用する制御コード
\001:SOH(ヘッダ開始)
\002:STX(テキスト開始)

○データ抽出コマンド


○データロードコマンド


実行例


注意点

区切り文字、レコード終端文字(改行コード)の代わりに制御コードを使用するため、抽出したファイルは全データが1行で表示されます。そのため、ロードエラーが起きた際などは、抽出ファイルから該当箇所の確認がしにくいといった点が注意事項として挙げられます。該当箇所を確認する際は、出力ファイルの制御コードを置換するなどの対処が必要となります。(Linuxの場合は、OSコマンドのsedやtrを利用)

参考情報

・改行をデータとしてロードする方法
http://vertica-tech.ashisuto.co.jp/record-teminator/

・各データ移行方法のメリットとデメリットについて
http://vertica-tech.ashisuto.co.jp/data-migration-method/

検証バージョンについて

この記事の内容はVertica 10.1で確認しています。

更新履歴

2021/06/25 本記事を公開