固定長データのロード方法
固定長データのロードは、データベースにログインし、COPYコマンドを使用します。各項目のデータ長の指定には「FIXEDWIDTH COLSIZES」パラメータを使用します。
構文
1 |
dbadmin=> COPY スキーマ名.テーブル名 FROM '固定データファイル名' FIXEDWIDTH COLSIZES (バイト数 [, ....]) DIRECT; |
※FIXEDWIDTH COLSIZESパラメータで指定する数値は、バイト数です。
VerticaはUTF-8の文字コードのみサポートしているため、マルチバイト文字は3バイトとして計算します。
実行例
数値型データ、文字型データ、日付型データの順に並んだ固定長データをロードした場合の実行例をご紹介します。【固定長データファイルの内容】
1 2 3 |
12345ABCDEFGHIJ2018-01-01 00:00:00 00001 A2018-01-02T00:00:01 10000あ 2018/01/03 00:00:02 |
【実行例】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
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でサポートされる文字コードhttp://vertica-tech.ashisuto.co.jp/support-character-set-utf8