はじめに
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バケットのリージョン >’;
セッションレベルで設定したパラメータは、「SHOW SESSION パラメータ名 | all ;」コマンドで設定値の確認が可能です。
<copyコマンド>
COPY テーブル名 FROM ’s3://ロード対象ファイル’ オプション;
S3バケットに対して利用できる copy コマンドのオプションはマニュアルをご参照ください。
Specifying COPY FROM Options
利用例
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以降
https://www.ashisuto.co.jp/cm/analytics-database/vsql_s3_load.html
・Vertica 9.0以降
https://www.ashisuto.co.jp/cm/analytics-database/copy_directly_s3.html
○Management Consoleを使用してS3のデータをVerticaにロードする方法
https://www.ashisuto.co.jp/cm/analytics-database/aws_s3_vertica_mc_load.html
○Verticaのパラメータ設定方法
https://www.ashisuto.co.jp/cm/analytics-database/parameters_on_vertica.html
検証バージョンについて
この記事の内容はVertica 9.1で確認しています。