Amazon Athena¶
データ一括読み込みを実行するように Amazon Athena データソースを構成するには、以下の手順に従って実施してください。Administration Tool で JDBC データソースを編集して、[Read & Write] タブをクリックします。[Use bulk data load APIs] をチェックして、以下の情報を指定します。
Authentication type: AWS 資格情報を構成するには、アクセスキー ID を指定する方法と Denodo AWS インスタンス資格情報を使用する方法の 2 つがあります。
AWS access key id と AWS 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>]Server time zone: Athena サーバーのタイムゾーン。
S3 にデータをアップロードする場合、Denodo サーバーは、すべてのデータが含まれる 1 つのファイルを生成してディスクに完全に書き込んでから Athena に転送するのではなく、データを複数のチャンクに分けて並列してアップロードします。
ビューのキャッシュをロードするクエリを実行するにあたって、キャッシュデータベースが Athena であるとします。キャッシュロードプロセスは次のように実行されます。
VDP サーバーが Athena にテーブルを作成します。
VDP サーバーは、結果の最初の数行を取得するとすぐに、それらをデータファイルに書き込み始めます。このファイルは、Parquet 形式でディスクに書き込まれます。
サーバーは、ファイルに 500,000 行を書き込むと、ファイルを閉じて、Athena (Athena データソースで定義されている S3 の場所) に送信し始めます。同時に、後続の行を別のファイルに書き込みます。
500,000 は、データソースの [Read & Write] タブの [Batch insert size (rows)] フィールドのデフォルト値であり、変更可能です。この値を増やすと、アップロードプロセスの並列性が低下することに注意してください。
サーバーは、別のデータファイルへの書き込みを終了すると (つまり、ファイルがバッチ挿入サイズに到達すると)、先に生成されていたファイルの転送が完了していなくても、Athena にファイルを転送し始めます。デフォルトでは、クエリあたり最大 4 つのファイルを同時に転送します。ファイルの数がこの制限に到達すると、サーバーはデータファイルに行を書き込み続けますが、それ以上ファイルを転送しません。
この制限は、VQL シェルで次のコマンドを実行することによって変更できます。
SET 'com.denodo.vdb.util.tablemanagement.sql.insertion.DFInsertWorker. athena.maxS3ParallelUploads' = '<new limit per query>';
すべてのファイルがアップロードされると、キャッシュテーブルにキャッシュデータが格納された状態になります。なぜなら、テーブル作成文で指定した S3 の場所にアップロードデータファイルが存在するからです。