Amazon AthenaでQuery Result Reuse(クエリ結果の再利用)が使えるようになりました
こんにちは、CX事業本部 IoT事業部の若槻です。
このたびのアップデートにより、Amazon AthenaでQuery Result Reuse(クエリ結果の再利用)が使えるようになりました。
Query Result Reuseを使うと、前回に実行したクエリの結果がキャッシュされ、次回に同じクエリを実行(繰り返しクエリ)した際にキャッシュからクエリ結果が再利用されるようになります。これにより繰り返しクエリの実行が最大5倍速くなり、クエリパフォーマンスが大幅に上がるため、インタラクティブな分析を行う場面などでユーザーの生産性の向上が期待できるとのことです。
使ってみた
準備
事前の環境作成を行います。
まず、Query Result Reuseはversion 3以上のAthena engineでのみサポートされているので、使用するWorkgroupがversion 3以上であることを確認します。
CREATE EXTERNAL TABLE
クエリを実行し、検証に使う外部テーブルを作成します。
CREATE EXTERNAL TABLE IF NOT EXISTS `default`.`device_table` (`amount` int, `deviceid` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat' LOCATION 's3://20221109-cm-wakatsuki/data/' TBLPROPERTIES ('classification' = 'parquet');
作成したテーブルに対してINSERT INTO
クエリを実行し、データを1000件作成します。
INSERT INTO device_table (amount, deviceid) VALUES (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'),(100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001'), (100, 'd001')
これで準備は完了です。
Query Result Reuseが無効の場合
まず、比較のためにQuery Result Reuseが無効のままでSELECTクエリをしてみます。
SELECT * FROM "default"."device_table";
実行時間(Run time)は2.336 secでした。
Time in queue: 342 ms
Run time: 2.336 sec
Data scanned: 0.19 KB
Query statsでクエリが完了するまでの全体の内訳を見ることができます。Run timeは、Plannig(約0.868sec)とExecution(約1.484sec) の合計を表すようです。
Total runtime - 2.8 seconds
Query Result Reuseが有効の場合
それではQuery Result Reuseを有効にして、無効の場合との実行時間を比較してみます。
クエリエディターコンソールより、Query Result Reuseのトグルを有効にします。
先程と同じSELECTクエリを実行します。
SELECT * FROM "default"."device_table";
実行時間(Run time)は285 msでした。大幅に短縮されていますね!速度は約8倍となっています。またデータスキャン時間(Data scanned)は無しとなっており、キャッシュが使われたためデータの実体へのスキャンが行われていないことも分かります。
Time in queue: 133 ms
Run time: 285 ms
Data scanned: -
Query statsを見ると、キャッシュが使われるためPlannigが0
となり、またExecutionが約283 ms
に短縮されています。
Total runtime - 457 milliseconds
念の為同じクエリを再度実行してみると、引き続き取得時間が短縮されています。
Time in queue: 229 ms
Run time: 294 ms
Data scanned: -
クエリ内容が変わると結果は再利用されない
先程のクエリにWHERE句を付与して微妙にクエリ内容を変えてみます。取得されるデータとしては先程と同じです。
SELECT * FROM "default"."device_table" WHERE amount > 0;
すると実行時間はQuery Result Reuseが無効の場合に近い値となりました。クエリ内容が異なるとQuery Result Reuseのキャッシュは利用されないようです。
キャッシュ保持期間は変更可能
Query Result Reuseのキャッシュ保持期間は変更が可能です。(既定では60分)
Query Result Reuseの編集マークをクリックします。
モーダルでキャッシュ保持期間を指定できます。最短で1分、最長で7日間が指定できます。
Athena engine version 3以上でのみ利用可能
前述しましたが、Query Result Reuseはversion 3以上のAthena engineでのみサポートされています。
なのでversion 2以下のengineが選択されている場合は、機能を有効化できるるトグルがグレーアウトて有効化できなくなります。
詳細については下記も合わせて御覧ください。
Query Result Reuseの設定はどこで保持される?
Query Result Reuseは、Athenaコンソールだけでなく、API、AWS SDK、およびJDBCまたはODBCドライバーによる接続で利用できるとのことです。またアプリケーション側での変更は特に必要ないとのことです。
そのため、当初、Query Result Reuseの設定はWorkgroup単位保持されると思ったのですが、get-work-group
で取得してみてもそれらしきプロパティはありませんでした。
$ aws athena get-work-group --work-group primary { "WorkGroup": { "Name": "primary", "State": "ENABLED", "Configuration": { "ResultConfiguration": { "OutputLocation": "s3://athena-primary-work-group-XXXXXXXXXXXX-ap-northeast-1/query-result/" }, "EnforceWorkGroupConfiguration": false, "PublishCloudWatchMetricsEnabled": false, "RequesterPaysEnabled": false, "EngineVersion": { "SelectedEngineVersion": "Athena engine version 3", "EffectiveEngineVersion": "Athena engine version 3" } }, "Description": "", "CreationTime": "2020-11-25T11:02:00.084000+09:00" } }
そしてAthenaコンソールであるWorkgroupをアクティブにしてQuery Result Reuse設定を変更すると、他のWorkgroupでも同じように設定が変更される動作となりました。
ちなみにリージョンを変えると設定は共有されない動作となりました。
Query Result Reuseの設定は、アカウントおよびリージョン単位で保持されるように見受けられます。
以上