はじめに

Verticaでは外部テーブルを列指向形式としてデータを保持するParquetやORCファイルを利用することができます。

本記事ではVerticaのテーブルデータをORCファイルで出力する方法をご案内します。
Parquetファイルの出力方法は、以下の記事をご参照ください。
テーブルデータをParquetファイルとして出力する方法

「頻繁にアクセスはされないが、過去データを保存しておく必要がある」という要件に対しORCファイルを外部テーブルとして保持しておくことで、以下のメリットがあります。

1.Verticaへの透過的なアクセスを維持できる
2.ライセンスの節約ができる(※)
3.csvフォーマットの外部テーブルと比較した際に高いパフォーマンスが見込める

※ParquetまたはORCを外部表で参照する場合、通常のライセンスとは異なる安価なライセンスで課金されます。詳細を確認したい方は、本ぺージの一番下にあるお問い合わせ先へご連絡ください。

ORCファイルとして出力する方法

ORCファイルへの出力はEXPORT TO ORC文にて実施します。

構文


パラメータ名内容
directoryORCファイルの出力先ディレクトリ。
ディレクトリは存在していてはならず、現在のユーザーはそれを書き込む権限を持っている必要があります。出力先は、次のファイルシステムのいずれかになります。
・HDFS File System
・S3 Object Store
・Google Cloud Storage (GCS) Object Store
・Azure Blob Storage Object Store
・Linux file system, either an NFS mount or local storage on each node
compressionZlibまたはUncompressedのいずれかの列圧縮タイプ。

デフォルト:Zlib
stripeSizeMBエクスポートされたストライプの非圧縮サイズ(MB(整数))。
最小値は1で、最大値は1024です。

デフォルト:250
rowIndexStride出力にインデックス統計を作成する頻度。
各ストライプのすべてのrowIndexStride行の後に統計を作成します(または、このしきい値よりも小さいストライプの場合は1回)。
最大値は1,000,000です。値0は、インデックス作成を無効にします。

デフォルト:1000
fileSizeMB単一の出力ファイルの最大ファイルサイズ。
この値はヒントであり、ハードの制限ではありません。
値0は、制限がないことを意味します。

この値は、合計出力サイズではなく、個々の出力ファイルのサイズに影響します。
値が小さい場合、Verticaは出力をより多くのファイルに分割します。
すべてのデータは引き続きエクスポートされます。

デフォルト:10GB
fileModeHDFSへの書き込みの場合のみ、エクスポートされたすべてのファイルに適用する権限。
値は、Unixの8進形式(「665」など)または「user-group-other」形式(「rwxr-xr-x」など)で指定できます。 8進形式を使用する場合でも、値は文字列としてフォーマットする必要があります。
有効な8進値の範囲は「0」から「1777」です。
HDFS以外の出力先にファイルを書き込む場合、このパラメーターは効果がありません。

デフォルト:hdfs-site.xmlのfs.permissions.umask-modeの値に関係なく、「660」。
dirModeHDFSへの書き込みの場合のみ、エクスポートされたすべてのディレクトリに適用する権限。
値は、fileModeの場合と同じルールに従います 。
さらに、Vertica HDFSユーザーに完全なアクセス許可(少なくとも「rwx ------」または「700」)を付与する必要があります。

HDFS以外の出力先にファイルを書き込む場合、このパラメーターは効果がありません。

デフォルト:hdfs-site.xmlのfs.permissions.umask-modeの値に関係なく、「755」。

実行例


参考情報

EXPORT TO ORC
https://www.vertica.com/docs/11.0.x/HTML/Content/Authoring/SQLReferenceManual/Statements/ExportToORC.htm/

CSVファイルを外部テーブルとして利用する方法
http://vertica-tech.ashisuto.co.jp/external-table-on-vertica/


検証バージョンについて

この記事の内容はVertica 11.0で確認しています。

更新履歴

2021/10/12 本記事を公開