はじめに
Verticaでは外部テーブルを列指向形式としてデータを保持するParquetやORCファイルを利用することができます。
本記事ではVerticaのテーブルデータをORCファイルで出力する方法をご案内します。
Parquetファイルの出力方法は、以下の記事をご参照ください。
テーブルデータをParquetファイルとして出力する方法
「頻繁にアクセスはされないが、過去データを保存しておく必要がある」という要件に対しORCファイルを外部テーブルとして保持しておくことで、以下のメリットがあります。
1.Verticaへの透過的なアクセスを維持できる
2.ライセンスの節約ができる(※)
3.csvフォーマットの外部テーブルと比較した際に高いパフォーマンスが見込める
※ParquetまたはORCを外部表で参照する場合、通常のライセンスとは異なる安価なライセンスで課金されます。詳細を確認したい方は、本ぺージの一番下にあるお問い合わせ先へご連絡ください。
ORCファイルとして出力する方法
ORCファイルへの出力はEXPORT TO ORC文にて実施します。
構文
EXPORT TO ORC ( directory = 'path' [, param=value [,...] ] )[ OVER (over‑clause ) ]
AS SELECT query‑expression;パラメータ名 | 内容 |
|---|---|
directory | ORCファイルの出力先ディレクトリ。 |
compression | ZlibまたはUncompressedのいずれかの列圧縮タイプ。 |
stripeSizeMB | エクスポートされたストライプの非圧縮サイズ(MB(整数))。 |
rowIndexStride | 出力にインデックス統計を作成する頻度。 |
fileSizeMB | 単一の出力ファイルの最大ファイルサイズ。 |
fileMode | HDFSへの書き込みの場合のみ、エクスポートされたすべてのファイルに適用する権限。 |
dirMode | HDFSへの書き込みの場合のみ、エクスポートされたすべてのディレクトリに適用する権限。 |
実行例
#出力先のディレクトリが存在しないことを確認する
[dbadmin@indy01 ~]$ ls -l /home/dbadmin/orc/customer
ls: /home/dbadmin/orc/customer にアクセスできません: そのようなファイルやディレクトリはありません
#customerテーブルのデータをORCファイルとして出力する
dbadmin=> EXPORT TO ORC(directory = '/home/dbadmin/orc/customer')
dbadmin-> AS
dbadmin-> SELECT
dbadmin-> *
dbadmin-> FROM
dbadmin-> customer;
Rows Exported
---------------
3750000
(1 row)
#出力されたファイルを確認する
[dbadmin@indy01 ~]$ ls -ltr /home/dbadmin/orc/customer/
合計 111560
-rw------- 1 dbadmin verticadba 7143377 10月 10 22:14 e590ef4a-v_vertica_node0001-140418872633088-0.orc
-rw------- 1 dbadmin verticadba 7139966 10月 10 22:14 4485c643-v_vertica_node0001-140419274782464-0.orc
-rw------- 1 dbadmin verticadba 7142666 10月 10 22:14 61864823-v_vertica_node0001-140415156086528-0.orc
-rw------- 1 dbadmin verticadba 7141264 10月 10 22:14 4c704dd5-v_vertica_node0001-140418083698432-0.orc
-rw------- 1 dbadmin verticadba 7121958 10月 10 22:14 313f2f60-v_vertica_node0001-140417802675968-0.orc
-rw------- 1 dbadmin verticadba 7127769 10月 10 22:14 d00a9eca-v_vertica_node0001-140417785890560-0.orc
-rw------- 1 dbadmin verticadba 7144273 10月 10 22:14 7d7501ab-v_vertica_node0001-140418906203904-0.orc
-rw------- 1 dbadmin verticadba 7128517 10月 10 22:14 13bd4642-v_vertica_node0001-140417794283264-0.orc
-rw------- 1 dbadmin verticadba 7141938 10月 10 22:14 071094b0-v_vertica_node0001-140419329328896-0.orc
-rw------- 1 dbadmin verticadba 7141199 10月 10 22:14 db5124fd-v_vertica_node0001-140417857222400-0.orc
-rw------- 1 dbadmin verticadba 7143089 10月 10 22:14 f7c1dd62-v_vertica_node0001-140418599597824-0.orc
-rw------- 1 dbadmin verticadba 7142834 10月 10 22:14 d71ddaa9-v_vertica_node0001-140420105357056-0.orc
-rw------- 1 dbadmin verticadba 7138588 10月 10 22:14 844118c6-v_vertica_node0001-140419392337664-0.orc
-rw------- 1 dbadmin verticadba 7141492 10月 10 22:14 79048d77-v_vertica_node0001-140418117269248-0.orc
-rw------- 1 dbadmin verticadba 7142466 10月 10 22:14 1b7ce942-v_vertica_node0001-140418897811200-0.orc
-rw------- 1 dbadmin verticadba 7127244 10月 10 22:14 a2f000d6-v_vertica_node0001-140417848829696-0.orc参考情報
EXPORT TO ORC
https://www.vertica.com/docs/11.0.x/HTML/Content/Authoring/SQLReferenceManual/Statements/ExportToORC.htm/
CSVファイルを外部テーブルとして利用する方法
https://www.ashisuto.co.jp/cm/analytics-database/external-table-on-vertica.html
検証バージョンについて
この記事の内容はVertica 11.0で確認しています。
更新履歴
2021/10/12 本記事を公開