はじめに
テーブルにロードをする際に複数のファイルを一括でロードする方法をご紹介します。ここでは、以下のような5つのファイルをロードする例をご紹介します。
1 2 3 4 5 6 7 8 |
wc -l /home/SSBM/load_data/tmp/lineorder_0*.tbl 100 /home/SSBM/load_data/tmp/lineorder_01.tbl 100 /home/SSBM/load_data/tmp/lineorder_02.tbl 100 /home/SSBM/load_data/tmp/lineorder_03.tbl 100 /home/SSBM/load_data/tmp/lineorder_04.tbl 100 /home/SSBM/load_data/tmp/lineorder_05.tbl 500 合計 |
5つのファイルを一括ロードする例
やり方は至ってシンプルで、各ファイルをカンマ区切りで指定するだけです。
1 2 3 4 5 6 7 |
copy ssbm.lineorder from '/home/SSBM/load_data/tmp/lineorder_01.tbl', '/home/SSBM/load_data/tmp/lineorder_02.tbl', '/home/SSBM/load_data/tmp/lineorder_03.tbl', '/home/SSBM/load_data/tmp/lineorder_04.tbl', '/home/SSBM/load_data/tmp/lineorder_05.tbl' direct; |
上記例ではLineorderテーブルに5つのファイルをロードしています。
全て同一のディレクトリにあるファイルの例ですが、異なるディレクトリにファイルがある場合でもPATHを正しく指定すれば問題ありません。
あいまい指定の例
前述の例のようにファイル名に規則性のある場合には、以下のようにあいまい指定をすることも可能です。
1 2 3 |
copy ssbm.lineorder from '/home/SSBM/load_data/tmp/lineorder_0*.tbl' direct; |
文字列が異なる部分を「*(アスタリスク)」で指定をすることで、指定したファイル名にマッチするファイルを一括でロードできます。
検証バージョンについて
この記事の内容はVertica 9.1で確認しています。- 投稿タグ
- 一括ロード