OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

複数のCSVファイルを纏めてロードする方法

公開日:
更新日:
データロード
#COPY

はじめに

テーブルにロードをする際に複数のファイルを一括でロードする方法をご紹介します。
ここでは、以下のような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で確認しています。