この記事は約3分で読めます。
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。
CI2部 技術2課の山﨑です。
7月にAmazon Athena がパラメータクエリをサポートしましたので簡単にご紹介したいと思います。
おさらい
Amazon Athena とは?
標準的なSQLを使用してS3バケット内のデータソースに対してクエリを実行することができるサービスです。S3はRDS/Auroraのように事前に定義されたテーブルに対してデータを挿入するデータベースではなく、様々なデータを様々な形式で保存することができるオブジェクトストレージです。そのため非構造化データやスキーマレスデータが混在していることも少なくありません。このような特性を持ったストレージであるS3に対して標準的なSQLクエリを実行することができることがAmazon Athenaの大きな特徴です。
Amazon Athenaを使ったクエリ実行については、以下のブログも合わせてご覧ください
アップデート概要
パラメータクエリを実行できるようになりました
パラメータクエリとは、クエリ内に変数を埋め込み、クエリ実行時にその変数に代入する抽出条件の指定をユーザーに求めることができるクエリ実行方法です。
このパラメータクエリを実行すると「パラメーターの入力」ダイアログボックスが表示されるので、そのテキストボックスに抽出条件を入力した上でクエリを実行します。
パラメータクエリの嬉しい点は、抽出条件が変わる度にクエリ本文を編集する必要がないのでメンテナンスの手間が省けることです
今回のAWSアップデートにより、Athenaがパラメータクエリをサポートしました。
Athenaで実行するクエリが定型的なクエリの場合、「パラメータクエリの利用」に加えて「保存したクエリ(Saved Queries)」を利用することでさらにクエリ本文の編集やメンテナンスの手間が省けます。
これまでのクエリとの比較
以下、AWSニュースブログに掲載されているパラメータクエリ利用した場合とそうでない場合のクエリの比較の抜粋です。
パラメータクエリを利用しない場合
aws athena start-query-execution \--query-string "SELECT * FROM table WHERE x = $ARG1 AND y = $ARG2 AND z = $ARG3" \--query-execution-context "Database"="default" \--work-group myWorkGroup
パラメータクエリを利用した場合
aws athena start-query-execution \--query-string "SELECT * FROM table WHERE x = ? AND y = ? AND z = ?" \--query-execution-context "Database"="default" \--work-group myWorkGroup \--execution-parameters $ARG1 $ARG2 $ARG3
おまけ
その他、Athenaのパフォーマンスチューニングについては以下のAWSニュースブログをご覧ください
まとめ
以上、Amazon Athena がサポートを開始したパラメータクエリのご紹介でした
山﨑 翔平 (Shohei Yamasaki) 記事一覧はコチラ
カスタマーサクセス部所属。2019年12月にインフラ未経験で入社し、AWSエンジニアとしてのキャリアを始める。2023 Japan AWS Ambassadors/2023-2024 Japan AWS Top Engineers