sheetIDからどの分析で利用しているか調べる方法

AthenaとQuickshigtを接続して利用しています。
Athenaの費用が高くなっている月があるので、詳細を調べているのですが、Athenaの最近のクエリをみるとQuicksightから出されたクエリが多数並んでおり、QuicksightのsheetIDでどの分析かが判断できそうだと思っています。
sheetIDからどの分析かを調べる方法はありますでしょうか?

もしくは上記のような場合、どのように調べると簡単に調べれるなど情報があれば教えて欲しいです。

@optarc.yamaji

ご質問ありがとうございます。

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": {

2 Likes

ありがとうございます!
entityIdがanalysis-idなのですね。

実際にやってみたところ、出力することができました。

1 Like

こちら、entityIdを利用してCLIで確認しても、Errrorになることがあります。

entityIDが分析のIDとわかっているのであれば

というのは必ずしもイコールではないということでしょうか?

@optarc.yamaji

シート定義をもつEntityとしては、分析だけでなく、ダッシュボードもあります。その場合は、describe-dashboard-definitionでシート上の定義は確認することができます。

1 Like