OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

COPYコマンドでCSVの特定の列をロード対象外とする方法

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

はじめに

COPYコマンドでロードするCSVに不要な列が存在する場合、COPYコマンドのオプションでロード対象外の列に”FILLER”を設定しロードさせないことができます。
以下でその方法についてご紹介します。

構文

COPYコマンドで”FILLER”を設定する構文は以下になります。

COPY <TABLE名> (<列名> [FILLER] [データ型],…) FROM LOCAL ‘<CSVファイル名>’…

※ロードに不要な列には任意の列名と”FILLER”、データ型を設定します。
※ロードに必要な列は列名のみ設定します。

実行例

CSVの1と999をロード対象外として「あいうえお」のみロードする例

VGS2
■ 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で確認しています。