固定長データのロード方法
固定長データのロードは、データベースにログインし、COPYコマンドを使用します。
各項目のデータ長の指定には「FIXEDWIDTH COLSIZES」パラメータを使用します。
構文
dbadmin=> COPY スキーマ名.テーブル名 FROM '固定データファイル名' FIXEDWIDTH COLSIZES (バイト数 [, ....]) DIRECT;※FIXEDWIDTH COLSIZESパラメータで指定する数値は、バイト数です。
VerticaはUTF-8の文字コードのみサポートしているため、マルチバイト文字は3バイトとして計算します。
実行例
数値型データ、文字型データ、日付型データの順に並んだ固定長データをロードした場合の実行例をご紹介します。
【固定長データファイルの内容】
12345ABCDEFGHIJ2018-01-01 00:00:00
00001 A2018-01-02T00:00:01
10000あ 2018/01/03 00:00:02【実行例】
dbadmin=> \d public.test_table;
List of Fields by Tables
Schema | Table | Column | Type | Size | Default | Not Null | Primary Key | Foreign Key
--------+------------+--------+-------------+------+---------+----------+-------------+-------------
public | test_table | col1 | int | 8 | | f | f |
public | test_table | col2 | varchar(10) | 10 | | f | f |
public | test_table | col3 | timestamp | 8 | | f | f |
(3 rows)
dbadmin=> COPY public.test_table FROM '/tmp/test.dat' FIXEDWIDTH COLSIZES (5, 10, 19) DIRECT;
Rows Loaded
-------------
3
(1 row)
dbadmin=> SELECT * FROM public.test_table ORDER BY col3;
col1 | col2 | col3
-------+------------+---------------------
12345 | ABCDEFGHIJ | 2018-01-01 00:00:00
1 | A | 2018-01-02 00:00:01
10000 | あ | 2018-01-03 00:00:02
(3 rows)参考情報
・Verticaでサポートされる文字コード
https://www.ashisuto.co.jp/cm/analytics-database/support-character-set-utf8.html
検証バージョンについて
この記事の内容はVertica 9.1で確認しています。