はじめに
テーブルにロードをする際に複数のファイルを一括でロードする方法をご紹介します。
ここでは、以下のような5つのファイルをロードする例をご紹介します。
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つのファイルを一括ロードする例
やり方は至ってシンプルで、各ファイルをカンマ区切りで指定するだけです。
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を正しく指定すれば問題ありません。
あいまい指定の例
前述の例のようにファイル名に規則性のある場合には、以下のようにあいまい指定をすることも可能です。
copy ssbm.lineorder from
'/home/SSBM/load_data/tmp/lineorder_0*.tbl'
direct;文字列が異なる部分を「*(アスタリスク)」で指定をすることで、指定したファイル名にマッチするファイルを一括でロードできます。
検証バージョンについて
この記事の内容はVertica 9.1で確認しています。