OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

テーブルデータをParquetファイルとして出力する方法

公開日:
更新日:
基本操作
#データ抽出

はじめに

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

エクスポートされた行グループの圧縮されていないサイズ(整数)。
最小値は1で、最大値はfileSizeMB(fileSizeMBが0の場合は無制限)。
デフォルトは512。

fileSizeMB

1つの出力Parquetファイルの最大ファイルサイズ。
デフォルトは10GB。

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 不具合の修正について追記