■ はじめに
https://dk521123.hatenablog.com/entry/2020/06/17/173717
https://dk521123.hatenablog.com/entry/2020/07/15/162459
の続き。 Lake Formation + Athena のデータアクセス調査の一環で AWA Athena (アテナ)に関連するAWS CLI を使ったので メモっておく
目次
【1】使用上の注意 1)Tips 2)AWS CLIのバージョン 【2】主なAWS CLI 1)start-query-execution 2)get-query-execution 3)get-query-results 【3】ワークグループ関連 1)create-work-group 2)list-work-groups 【4】カタログ関連 1)get-data-catalog 2)list-data-catalogs 3)create-data-catalog 4)delete-data-catalog 5)update-data-catalog
【1】使用上の注意
* (個人的な当初の期待値としては) SQL指定してその結果がもらえる使用感ではない => SQL投げて、返ってくるのはQueryExecutionIdのみ
1)Tips
AWS CLI のレスポンスが返ってこなかったりする場合、 「--debug」を付けると、どこで止まっているかが分かる
2)AWS CLIのバージョン
Athenaだけの話ではないが、AWS CLI のバージョンによって サポートしているAPIに違いがでる => 調査環境で、気軽に更新もできず、デフォルトEC2に入っている AWS CLIをそのままのバージョンで使わなければならないことは 多々あるので、、、 => ただ可能であればアップデートした方がいい。その場合、以下などを参照
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html
https://qiita.com/yokoo-an209/items/de99de037b7dcc913a2d
【2】主なAWS CLI
* 公式ドキュメントは以下。
https://docs.aws.amazon.com/cli/latest/reference/athena/
v2
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/index.html
1)start-query-execution
* クエリ実行の開始
https://docs.aws.amazon.com/cli/latest/reference/athena/start-query-execution.html
構文
aws athena start-query-execution \ --query-string <value> \ --result-configuration <value>
コマンド例
aws athena start-query-execution --query-string "SELECT * FROM cmathenadb.lineorder limit 10;" --result-configuration OutputLocation=s3://your-s3-bucket/results { "QueryExecutionId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx" }
2)get-query-execution
* クエリ実行状況の確認
https://docs.aws.amazon.com/cli/latest/reference/athena/get-query-execution.html
コマンド例
aws athena get-query-execution --query-execution-id xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx
3)get-query-results
* クエリ実行結果の取得
https://docs.aws.amazon.com/cli/latest/reference/athena/get-query-results.html
コマンド例
aws athena get-query-results --query-execution-id xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx
【3】ワークグループ関連
* クエリ実行やクエリ履歴を、 同じ AWS アカウントの下で実行されている ユーザー、チーム、またはアプリケーション間で分離できる => ワークグループ単位で処理できるデータ量や Amazon CloudWatch のメトリクスの設定などを行える
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/manage-queries-control-costs-with-workgroups.html
例
* Workgroupに対してクエリ上限を設定可能 * Workgroup単位でスキャン量などのメトリクスが取得可能 * Workgroupnに対してタグ付け可能でコストアロケーションタグとしても使用可能 (Workgroup単位でのコスト管理が可能)
1)create-work-group
* Workgroupの作成
https://docs.aws.amazon.com/cli/latest/reference/athena/create-work-group.html
aws athena create-work-group --name <value>
2)list-work-groups
* Workgroupの一覧表示
https://docs.aws.amazon.com/cli/latest/reference/athena/list-work-groups.html
aws athena list-work-groups
【4】カタログ関連
1)get-data-catalog
* データカタログの取得
https://docs.aws.amazon.com/cli/latest/reference/athena/get-data-catalog.html
aws athena get-data-catalog --name <value>
2)list-data-catalogs
* データカタログの一覧表示
https://docs.aws.amazon.com/cli/latest/reference/athena/list-data-catalogs.html
aws athena list-data-catalogs
3)create-data-catalog
* データカタログ作成
https://docs.aws.amazon.com/cli/latest/reference/athena/create-data-catalog.html
aws athena create-data-catalog --name <value> --type <value>
4)delete-data-catalog
* データカタログ削除
https://docs.aws.amazon.com/cli/latest/reference/athena/delete-data-catalog.html
aws athena delete-data-catalog --name <value>
5)update-data-catalog
* データカタログ更新
https://docs.aws.amazon.com/cli/latest/reference/athena/update-data-catalog.html
aws athena update-data-catalog --name <value> --type <value>
参考文献
https://dev.classmethod.jp/articles/amazon-athena-run-query-using-awscli/
https://nobelabo.hatenablog.com/entry/2023/01/14/082455
https://qiita.com/kazu23pole/items/e5dc0467c4c97a80ba50
https://zatoima.github.io/aws-athena-cli-query-execute/
参考文献
Athena ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/06/17/173717
Athena ~ 基本編 / AWS Glue との連携 ~
https://dk521123.hatenablog.com/entry/2020/07/15/162459