はじめに
Verticaでは外部テーブルを列指向形式としてデータを保持するParquetやORCファイルを利用することができます。
本記事ではVerticaのテーブルデータをParquetファイルで出力する方法をご案内します。
ORCファイルの出力方法は、以下の記事をご参照ください。
テーブルデータをORCファイルとして出力する方法
「頻繁にアクセスはされないが、過去データを保存しておく必要がある」という要件に対しParquetファイルを外部テーブルとして保持しておくことで、以下のメリットがあります。
1.Verticaへの透過的なアクセスを維持できる
2.ライセンスの節約ができる(※)
3.csvフォーマットの外部テーブルと比較した際に高いパフォーマンスが見込める
※ParquetまたはORCを外部表で参照する場合、通常のライセンスとは異なる安価なライセンスで課金されます。詳細を確認したい方は、本ぺージの一番下にあるお問い合わせ先へご連絡ください。
Parquetファイルとして出力する方法
Parquetファイルへの出力はEXPORT TO PARQUET文にて実施します。
構文
EXPORT TO PARQUET ( directory = 'path' [, param=value [,...] ] )[ OVER (over‑clause ) ]
AS SELECT query‑expression;パラメータ名 | 内容 |
|---|---|
directory | Parquetファイルを出力するディレクトリ。 |
compression | データ圧縮アルゴリズムをSnappyまたは非圧縮で指定。デフォルトはSnappy。 |
rowGroupSizeMB | エクスポートされた行グループの圧縮されていないサイズ(整数)。 |
fileSizeMB | 1つの出力Parquetファイルの最大ファイルサイズ。 |
fileMode | HDFSへの書き込みの場合のみ指定。 |
dirMode | HDFSへの書き込みの場合のみ指定。 |
実行例
#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 PARQUET
https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/SQLReferenceManual/Statements/EXPORTTOPARQUET.htm
CSVファイルを外部テーブルとして利用する方法
https://www.ashisuto.co.jp/cm/analytics-database/external-table-on-vertica.html
検証バージョンについて
この記事の内容はVertica 9.2で確認しています。
更新履歴
2021/10/12 ORCファイルの出力方法についてリンク先を追加
2019/08/09 本記事を公開
2019/09/10 不具合の修正について追記