はじめに
Vertica7.2.3までは、データをバルクロードでロードしたい場合等、
COPY文やINSERT文に、ロード方式のオプションを指定する必要がありました。
Vertica8.0.0より、CREATE TABLE/ALTER TABLE文で、テーブルごとにデフォルトの
ロード方式を設定することができるようになりました。
デフォルトのロード方式が選択できるようになったことで、SQLをわざわざ改修することなく、
期待した方式でデータをロードすることができます。
デフォルトのロード方式を指定する方法
以下にデフォルトのロード方式を指定する方法を記載します。
新規で作成するテーブルにデフォルトのロード方式を指定する
テーブルを作成する際に、デフォルトのロード方式を指定したい場合は、
CREATE TABLE文で指定します。
従来のCREATE TABLE文
dbadmin=> CREATE TABLE t1(col1 int,col2 varchar);
CREATE TABLEデフォルトのロード方式を指定したCREATE TABLE文
dbadmin=> CREATE TABLE t2(col1 int,col2 varchar) DIRECT;
CREATE TABLEまたテーブルのデフォルトのロード方式がどのようになっているかは、
システムテーブル「TABLES」の「STORAGE_MODE」列で確認することができます。
dbadmin=> SELECT table_schema,table_name,owner_name,storage_mode FROM tables ;
table_schema | table_name | owner_name | storage_mode
--------------+------------+------------+--------------
public | t1 | dbadmin | AUTO
public | t2 | dbadmin | DIRECT
(2 rows)STORAGE_MODE列の値については以下の表をご参照ください。
※なお、Vertica 9.2までデフォルトで利用可能だったWOSですが、Vertica 9.3からはデフォルトで無効化されています。また、10.0では完全に使用されなくなりました。そのため、9.3以降はWOSを経由せず、ROSに直接データがロードされます。
値 | 説明 |
|---|---|
0 | 9.1以前よりアップグレードしたテーブルのデフォルト値 |
1(DIRECT) | バルクロード |
5(TRICKLE) | トリクルロード |
6(AUTO) | オート(デフォルト値) |
既存テーブルのデフォルトのロード方式を変更する
テーブル作成後はALTER TABLE文のオプションにて、デフォルトのロード形式を
変更することができます。
dbadmin=> CREATE TABLE t3(col1 int,col2 varchar);
CREATE TABLE
dbadmin=>
dbadmin=> ALTER TABLE t3 SET STORAGE DIRECT;
ALTER TABLE
dbadmin=> SELECT table_schema,table_name,owner_name,storage_mode FROM tables WHERE table_name='t3';
table_schema | table_name | owner_name | storage_mode
--------------+------------+------------+--------------
public | t3 | dbadmin | DIRECT
(1 row)参考情報
データロードの基本
https://www.ashisuto.co.jp/cm/analytics-database/dataload_overview.html
WOSの使用について(Vertia 9.3以降)
https://www.ashisuto.co.jp/cm/analytics-database/wos-93-later.html
検証バージョンについて
この記事の内容はVertica 9.2で確認しています。
更新履歴
2019/04/15 検証バージョンを9.2に変更
2016/10/07 本記事を公開