OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

固定長データのロード方法

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

固定長データのロード方法

固定長データのロードは、データベースにログインし、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で確認しています。