目次
はじめに
Vertica7.2.3までは、データをバルクロードでロードしたい場合等、COPY文やINSERT文に、ロード方式のオプションを指定する必要がありました。
Vertica8.0.0より、CREATE TABLE/ALTER TABLE文で、テーブルごとにデフォルトの
ロード方式を設定することができるようになりました。
デフォルトのロード方式が選択できるようになったことで、SQLをわざわざ改修することなく、
期待した方式でデータをロードすることができます。
デフォルトのロード方式を指定する方法
以下にデフォルトのロード方式を指定する方法を記載します。新規で作成するテーブルにデフォルトのロード方式を指定する
テーブルを作成する際に、デフォルトのロード方式を指定したい場合は、CREATE TABLE文で指定します。
従来のCREATE TABLE文
1 2 |
dbadmin=> CREATE TABLE t1(col1 int,col2 varchar); CREATE TABLE |
デフォルトのロード方式を指定したCREATE TABLE文
1 2 |
dbadmin=> CREATE TABLE t2(col1 int,col2 varchar) DIRECT; CREATE TABLE |
またテーブルのデフォルトのロード方式がどのようになっているかは、
システムテーブル「TABLES」の「STORAGE_MODE」列で確認することができます。
1 2 3 4 5 6 |
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列の値については以下の表をご参照ください。
値 | 説明 |
---|---|
0 | 9.1以前よりアップグレードしたテーブルのデフォルト値 |
1(DIRECT) | バルクロード |
5(TRICKLE) | トリクルロード ※WOSに所定の値以上のデータ量がロードされたら、エラーとなりロールバックされる |
6(AUTO) | オート(デフォルト値) ※WOSに所定の値以上のデータ量がロードされたら、ROSに直接データを書き込む |
既存テーブルのデフォルトのロード方式を変更する
テーブル作成後はALTER TABLE文のオプションにて、デフォルトのロード形式を変更することができます。
1 2 3 4 5 6 7 8 9 10 |
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) |
参考情報
データロードの基本http://vertica-tech.ashisuto.co.jp/dataload_overview/
検証バージョンについて
この記事の内容はVertica 9.2で確認しています。更新履歴
2019/04/15 検証バージョンを9.2に変更2016/10/07 本記事を公開