はじめに
COPYコマンドでロードするCSVに不要な列が存在する場合、COPYコマンドのオプションでロード対象外の列に”FILLER”を設定しロードさせないことができます。
以下でその方法についてご紹介します。
構文
COPYコマンドで”FILLER”を設定する構文は以下になります。
COPY <TABLE名> (<列名> [FILLER] [データ型],…) FROM LOCAL ‘<CSVファイル名>’…
※ロードに不要な列には任意の列名と”FILLER”、データ型を設定します。
※ロードに必要な列は列名のみ設定します。
実行例
CSVの1と999をロード対象外として「あいうえお」のみロードする例
■ CSVを確認します
$ cat test.csv
1,あいうえお,999
■ testテーブルを確認します
dbadmin=> \d test
List of Fields by Tables
Schema | Table | Column | Type | Size | Default | Not Null | Primary Key | Foreign Key
--------+-------+--------+-------------+------+---------+----------+-------------+-------------
public | test | col1 | varchar(15) | 15 | | f | f |
■ ロード対象外の列に任意の列名とFILLER、データ型を設定しtestテーブルにロードします
dbadmin=> copy test(col_f1 filler int,col1,col_f2 filler int) from local './test.csv' delimiter ',' direct;
Rows Loaded
-------------
1
■ testテーブルを検索します
dbadmin=> select * from test;
col1
------------
あいうえお検証バージョンについて
この記事の内容はVertica 9.1で確認しています。
