AthenaとQuickshigtを接続して利用しています。
Athenaの費用が高くなっている月があるので、詳細を調べているのですが、Athenaの最近のクエリをみるとQuicksightから出されたクエリが多数並んでおり、QuicksightのsheetIDでどの分析かが判断できそうだと思っています。
sheetIDからどの分析かを調べる方法はありますでしょうか?
もしくは上記のような場合、どのように調べると簡単に調べれるなど情報があれば教えて欲しいです。
AthenaとQuickshigtを接続して利用しています。
Athenaの費用が高くなっている月があるので、詳細を調べているのですが、Athenaの最近のクエリをみるとQuicksightから出されたクエリが多数並んでおり、QuicksightのsheetIDでどの分析かが判断できそうだと思っています。
sheetIDからどの分析かを調べる方法はありますでしょうか?
もしくは上記のような場合、どのように調べると簡単に調べれるなど情報があれば教えて欲しいです。
ご質問ありがとうございます。
Athenaのクエリーログからは、以下のようにQuickSightからのクエリーにはコメントが冒頭に付与されており、entityId, sheetId,visualIdが記載されており、その分析やダッシュボードのどのシート上のどのビジュアルからのクエリーかを判別できるようになっています。
/* QuickSight f7a635b7-e246-4d7e-bb8e-eef8ff1b236b
{"partner":"QuickSight","entityId":"f22d5144-2161-4fd0-9610-0ccab5a2c085","sheetId":"6028c4a4-3ab5-4cb3-8dad-0c4a5262adbc","visualId":"b1af2bcd-fe69-4e80-a68b-e3124de7f6eb"} */
SELECT ....
entityIDが分析のIDとわかっているのであれば、以下のように、API/CLIでその分析のビジュアル情報をJSONに書き出すことで、どのシートのビジュアルかを調べることは可能です。(以下の例だと、シート1というシート名の棒グラフになります)
aws quicksight describe-analysis-definition --aws-account-id 524652697981 --analysis-id f22d5144-2161-4fd0-9610-0ccab5a2c085
{
"Status": 200,
"AnalysisId": "f22d5144-2161-4fd0-9610-0ccab5a2c085",
"Name": "SQL analysis",
"ResourceStatus": "CREATION_SUCCESSFUL",
"Definition": {
"DataSetIdentifierDeclarations": [
{
"Identifier": "SQL",
"DataSetArn": "arn:aws:quicksight:us-east-1:xxxxxxxxx:dataset/cfae681d-08a0-4a18-b3b5-9a87fb8723cc"
}
],
"Sheets": [
{
"SheetId": "6028c4a4-3ab5-4cb3-8dad-0c4a5262adbc",
"Name": "シート 1",
"Visuals": [
{
"BarChartVisual": {
"VisualId": "b1af2bcd-fe69-4e80-a68b-e3124de7f6eb",
"Title": {
"Visibility": "VISIBLE"
},
"Subtitle": {
"Visibility": "VISIBLE"
},
"ChartConfiguration": {
"FieldWells": {
ありがとうございます!
entityIdがanalysis-idなのですね。
実際にやってみたところ、出力することができました。
こちら、entityIdを利用してCLIで確認しても、Errrorになることがあります。
entityIDが分析のIDとわかっているのであれば
というのは必ずしもイコールではないということでしょうか?
シート定義をもつEntityとしては、分析だけでなく、ダッシュボードもあります。その場合は、describe-dashboard-definitionでシート上の定義は確認することができます。