はじめに
Vertica 9.0では、S3からデータロードをする際にデータベースレベルでリージョンなどのAWSパラメータの設定を行う必要がありました。9.1からは、セッションレベルでのパラメータ設定が可能となり、データベースレベルの設定を変更することなく、異なるリージョンにあるS3や通常とは異なるエンドポイントを使用したロードができます。
この記事では、その設定方法をご紹介します。
※データベースレベルでの設定方法については、以下の記事をご参照ください。
(S3を参照するために必要な事前準備についても掲載されています)
S3のデータをVerticaにロードする/外部テーブルを使用してS3内のデータファイルを検索する
Verticaで設定可能なAWSパラメータ
以下のパラメータが設定可能です。なお、パラメータごとにセッションレベル、データベースレベルでの変更可否が異なりますので、ご注意ください。
パラメータ | 説明 | セッションレベル | データベースレベル |
---|---|---|---|
AWSAuth | AWS認証に使用するアクセスキー ID とシークレットアクセスキー | 変更可能 | |
AWSEndpoint | VPCエンドポイントのアドレス | 変更可能 | 変更可能 |
AWSRegion | S3バケットが存在するリージョン | 変更可能 | 変更可能 |
AWSCAPath | SSLサーバー証明書を検索するために使用するパス | 変更可能 | |
AWSCAFile | SSLサーバー証明書バンドルのファイル名 | 変更可能 | |
AWSEnableHttps | S3に接続するときのHTTPSプロトコル使用可否 | 変更可能 | |
AWSLogLevel | AWSコンポーネントのログレベル | 変更可能 |
セッション単位でのS3データロード方法
コマンド構文
<AWSパラメータ設定>
ALTER SESSION SET AWSAuth=’< アクセスキーID >:< シークレットアクセスキー >’;
ALTER SESSION SET AWSRegion=’< S3バケットのリージョン >’;
ALTER SESSION SET AWSRegion=’< S3バケットのリージョン >’;
セッションレベルで設定したパラメータは、「SHOW SESSION パラメータ名 | all ;」コマンドで設定値の確認が可能です。
<copyコマンド>
COPY テーブル名 FROM ’s3://ロード対象ファイル’ オプション;
S3バケットに対して利用できる copy コマンドのオプションはマニュアルをご参照ください。
Specifying COPY FROM Options
利用例
1 2 3 4 5 6 7 8 9 |
dbadmin=> ALTER SESSION SET AWSAuth='xxxxx:zzzzzzzzzz'; dbadmin=> ALTER SESSION SET AWSRegion='ap-northeast-1'; dbadmin=> COPY table1 FROM 's3://kka/load-data/table1.csv' delimiter ',' enclosed by '"'; Rows Loaded ------------- 10 (1 row) |
参考情報
○vsqlを使用してS3のデータをVerticaにロードする方法・Vertica 7.2.2以降
http://vertica-tech.ashisuto.co.jp/vsql_s3_load/
・Vertica 9.0以降
http://vertica-tech.ashisuto.co.jp/copy_directly_s3/
○Management Consoleを使用してS3のデータをVerticaにロードする方法
http://vertica-tech.ashisuto.co.jp/aws_s3_vertica_mc_load/
○Verticaのパラメータ設定方法
http://vertica-tech.ashisuto.co.jp/parameters_on_vertica/