はじめに

VerticaをAWS上で利用している場合、以下のS3ダイレクト連携機能を利用することが可能です。

①S3内のデータファイルをVerticaにロードする




②外部テーブルを使用してS3内のデータファイルを検索する


事前準備

事前に以下の準備を実施します。

IAMロールの割り当て

対象のS3のバケットに対するアクセス権限を持ったIAMロールをAWS上で作成し、VerticaがインストールされているEC2インスタンスに割り当てます。

対象ファイルの配置

Verticaで利用したいファイルをS3上に配置します。
なお、VerticaのS3ダイレクト連携機能で利用可能なファイルフォーマットは以下の通りです。

・テキストデータ(.csv、.txt等)
・Parquet
・ORC


※ParquetまたはORCを外部テーブル(②の方法)で参照する場合、外部ファイルのサイズが
 課金対象となります。
 外部テーブル用のライセンスもあるため、利用を検討したい方は、本ぺージの一番下にある
 お問い合わせ先へご連絡ください。
※上記以外のファイルフォーマットを利用したい場合は、UDSourceを利用してください。

①S3内のデータファイルをVerticaにロードする

S3内に保管されているデータをCOPYコマンドを利用して、ダイレクトにVerticaにロードすることが可能です。

コマンド構文


利用例

table1にap-northeast-1リーションのS3の「/kka/parquet/table1.parq」というparquetファイルをロードする場合


②Verticaの外部テーブルを使用してS3内のデータファイルを検索する

S3内に保管されているデータをデータソースとする外部テーブルをVertica上に作成しておくことで、S3のデータをVerticaのSELECT文でダイレクトに検索することが可能です。

コマンド構文


利用例

table1にap-northeast-1リーションのS3の「/kka/parquet/table1.parq」というparquetファイルをデータソースとする外部テーブルを作成する場合


なお、以下のように「*」を利用することで指定ディレクトリ配下のすべてのファイルを検索の対象にすることが可能です。


参考情報

Loading Data from an S3 Bucket
https://my.vertica.com/docs/9.0.x/HTML/index.htm#Authoring/Eon/LoadingDataFromS3.htm

Verticaのデータロードの基本
http://vertica-tech.ashisuto.co.jp/dataload_overview/

検証バージョンについて

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

更新履歴

2019/04/05 ParquetまたはORCを外部テーブルで参照する場合の課金について補足説明を追加
2018/05/02 本記事を公開