はじめに
Verticaでは外部テーブルを列指向形式としてデータを保持するParquetやORCファイルを利用することができます。本記事ではVerticaのテーブルデータをParquetファイルで出力する方法をご案内します。
ORCファイルの出力方法は、以下の記事をご参照ください。
テーブルデータをORCファイルとして出力する方法
「頻繁にアクセスはされないが、過去データを保存しておく必要がある」という要件に対しParquetファイルを外部テーブルとして保持しておくことで、以下のメリットがあります。
1.Verticaへの透過的なアクセスを維持できる
2.ライセンスの節約ができる(※)
3.csvフォーマットの外部テーブルと比較した際に高いパフォーマンスが見込める
2.ライセンスの節約ができる(※)
3.csvフォーマットの外部テーブルと比較した際に高いパフォーマンスが見込める
※ParquetまたはORCを外部表で参照する場合、通常のライセンスとは異なる安価なライセンスで課金されます。詳細を確認したい方は、本ぺージの一番下にあるお問い合わせ先へご連絡ください。
Parquetファイルとして出力する方法
Parquetファイルへの出力はEXPORT TO PARQUET文にて実施します。構文
1 2 |
EXPORT TO PARQUET ( directory = 'path' [, param=value [,...] ] )[ OVER (over‑clause ) ] AS SELECT query‑expression; |
パラメータ名 | 内容 |
---|---|
directory | Parquetファイルを出力するディレクトリ。 |
compression | データ圧縮アルゴリズムをSnappyまたは非圧縮で指定。デフォルトはSnappy。 |
rowGroupSizeMB | エクスポートされた行グループの圧縮されていないサイズ(整数)。 最小値は1で、最大値はfileSizeMB(fileSizeMBが0の場合は無制限)。 デフォルトは512。 |
fileSizeMB | 1つの出力Parquetファイルの最大ファイルサイズ。 デフォルトは10GB。 |
fileMode | HDFSへの書き込みの場合のみ指定。 書き出されたすべてのファイルに適用する権限。 |
dirMode | HDFSへの書き込みの場合のみ指定。 エクスポートされたすべてのディレクトリに適用する権限。 |
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#customerテーブルのデータをParquetファイルとして出力する dbadmin=> EXPORT TO PARQUET(directory = '/home/dbadmin/parquet/customer') dbadmin-> AS dbadmin-> SELECT dbadmin-> * dbadmin-> FROM dbadmin-> customer; Rows Exported --------------- 3750000 (1 row) #出力されたファイルを確認する $ ls -ltr /home/dbadmin/parquet/customer/ total 155260 -rw------- 1 dbadmin verticadba 26473050 Aug 8 21:11 eb5717a5-v_vdb_node0001-140140848588544-0.parquet -rw------- 1 dbadmin verticadba 26486059 Aug 8 21:11 a4267802-v_vdb_node0001-140140510963456-0.parquet -rw------- 1 dbadmin verticadba 26458023 Aug 8 21:11 91f0ce94-v_vdb_node0001-140140043298560-0.parquet -rw------- 1 dbadmin verticadba 26544495 Aug 8 21:11 da5bcb33-v_vdb_node0001-140140873766656-0.parquet -rw------- 1 dbadmin verticadba 26461611 Aug 8 21:11 aca8ae7d-v_vdb_node0001-140140051691264-0.parquet -rw------- 1 dbadmin verticadba 26547357 Aug 8 21:11 6ed30612-v_vdb_node0001-140140521453312-0.parquet |
※2019/8/8現在、EXPORT TO PARQUET関数の不具合により、LANG設定をen_US.utf8でVerticaを起動しておく必要があります。
※2019/9/6にリリースされた、Vertica9.2.1-6で上記の不具合は修正されました。
参考情報
EXPORT TO PARQUEThttps://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/SQLReferenceManual/Statements/EXPORTTOPARQUET.htm
CSVファイルを外部テーブルとして利用する方法
http://vertica-tech.ashisuto.co.jp/external-table-on-vertica/
検証バージョンについて
この記事の内容はVertica 9.2で確認しています。更新履歴
2021/10/12 ORCファイルの出力方法についてリンク先を追加2019/08/09 本記事を公開
2019/09/10 不具合の修正について追記