USER MANUALS

Amazon Athena

データ一括読み込みを実行するように Amazon Athena データソースを構成するには、以下の手順に従って実施してください。

  1. Virtual DataPort が Windows で稼働している場合、この機能を利用するには、 Microsoft Visual C++ 2013 再頒布可能パッケージ (またはより新しいバージョン) が必要です。インストール済みかどうか不明な場合、ダウンロードしてインストールします。このパッケージのインストーラーによって、インストールの有無が検出されます。

  2. Virtual DataPort にログインして JDBC データソースを編集し、[Read & Write] タブをクリックします。[Use bulk data load APIs] をチェックして、以下の情報を指定します。

    • Authentication type: AWS 資格情報を構成するには、アクセスキー ID を指定する方法と Denodo AWS インスタンス資格情報を使用する方法の 2 つがあります。

    • パスワードボールト(資格情報保管場所)から資格情報を取得(Obtain credentials from password vault): データソースが 資格情報ボールト から AWS キーを取得するようにする場合、チェックします。

    • Account name: [パスワードボールト(資格情報保管場所)から資格情報を取得(Obtain credentials from password vault)] を選択した場合、資格情報が保存されているボールトのアカウントを入力します。

    • AWS access key idAWS secret access key: AWS サービスにアクセスするためのキー。

    • AWS IAM role ARN: ユーザーが引き受ける IAM ロールの Amazon リソースネームであり、オプションのパラメータです。このロールは、AWS S3 バケットの管理に必要な権限を付与します。ロール ARN の形式は arn:aws:iam::<awsAccountId>:role/<roleName> です。

    • S3 Location: ファイルをアップロードする S3 の場所。この場所は、次の形式で指定します。

      S3://<S3 bucket name>/[<folder>]
      

S3 にデータをアップロードする場合、Denodo サーバーは、すべてのデータが含まれる 1 つのファイルを生成してディスクに完全に書き込んでから Athena に転送するのではなく、データを複数のチャンクに分けて並列してアップロードします。

ビューのキャッシュをロードするクエリを実行するにあたって、キャッシュデータベースが Athena であるとします。キャッシュロードプロセスは次のように実行されます。

  1. VDP サーバーが Athena にテーブルを作成します。

  2. VDP サーバーは、結果の最初の数行を取得するとすぐに、それらをデータファイルに書き込み始めます。このファイルは、Parquet 形式でディスクに書き込まれます。

  3. サーバーは、ファイルに 500,000 行を書き込むと、ファイルを閉じて、Athena (Athena データソースで定義されている S3 の場所) に送信し始めます。同時に、後続の行を別のファイルに書き込みます。

    500,000 は、データソースの [Read & Write] タブの [Batch insert size (rows)] フィールドのデフォルト値であり、変更可能です。この値を増やすと、アップロードプロセスの並列性が低下することに注意してください。

  4. サーバーは、別のデータファイルへの書き込みを終了すると (つまり、ファイルがバッチ挿入サイズに到達すると)、先に生成されていたファイルの転送が完了していなくても、Athena にファイルを転送し始めます。デフォルトでは、クエリあたり最大 4 つのファイルを同時に転送します。ファイルの数がこの制限に到達すると、サーバーはデータファイルに行を書き込み続けますが、それ以上ファイルを転送しません。

    この制限は、VQL シェルで次のコマンドを実行することによって変更できます。

    SET 'com.denodo.vdb.util.tablemanagement.sql.insertion.DFInsertWorker.
    athena.maxS3ParallelUploads' = '<new limit per query>';
    
  5. すべてのファイルがアップロードされると、キャッシュテーブルにキャッシュデータが格納された状態になります。なぜなら、テーブル作成文で指定した S3 の場所にアップロードデータファイルが存在するからです。

S3 バケットの AWS リージョンの構成

Virtual DataPort では、デフォルトで AWS リージョン「us-west-2」を使用します。

S3 バケットに他の AWS リージョンからアクセスする必要がある場合 (ファイアウォールルール、DNS の構成などのため)、以下のいずれかのオプションで構成できます。

  1. 構成パラメータ com.denodo.vdb.util.tablemanagement.aws.s3.region.<database_name>.<datasource_name> で、必要な AWS リージョンを設定します。<database_name><datasource_name> はオプションです。

    • 特定のデータソースの AWS リージョンを変更するには、以下を実行します。

      -- Changing the AWS region of the S3 bucket for the data source "ds_jdbc_aws" of the database "customer360"
      SET 'com.denodo.vdb.util.tablemanagement.aws.s3.region.customer360.ds_jdbc_aws' = 'us-east1';
      
    • データベースのすべてのデータソースで使用される Amazon AthenaAmazon Redshift の S3 バケットの AWS リージョンを変更するには、以下を実行します。

      -- Changing the AWS region of the S3 bucket for the data sources of the database "customer360"
      SET 'com.denodo.vdb.util.tablemanagement.aws.s3.region.customer360' = 'us-east1';
      
    • すべてのデータベースのデータソースで使用される Amazon AthenaAmazon Redshift の S3 バケットの AWS リージョンを変更するには、以下を実行します。

      SET 'com.denodo.vdb.util.tablemanagement.aws.s3.region' = 'us-east2';
      

    これらのプロパティを削除する (デフォルト値に戻す) には、該当のプロパティを NULL に設定します。以下に例を示します。

    SET 'com.denodo.vdb.util.tablemanagement.aws.s3.region' = NULL;
    
  2. これらの構成パラメータが定義されていない場合、Denodo では、AWS リージョンを以下から取得することを試みます。

    • 環境変数 AWS_REGION

    • JVM オプション aws.region

    • 共有の AWS 構成ファイル。

    • Virtual DataPort サーバーが EC2 上で動作する場合の EC2 Metadata サービス。

パラメータ com.denodo.vdb.util.tablemanagement.aws.s3.region (およびデータソースやデータベースに固有の同じパラメータ) の変更はすぐに適用されます。Virtual DataPort を再起動する必要はありません。

Add feedback