[Amazon QuickSight] SPICE データセットのデータ更新がエラーとなった時にエラー情報を取得する方法

2023.05.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

アノテーション、テクニカルサポートチームの村上です。
ここ最近は、主に Amazon QuickSight を中心にデータアナリティクスに関するお問い合わせに対応しています。
以前の記事では、マニフェストファイルを使用して SPICE にデータをインポートする方法について紹介しました。

本記事では SPICE データセットのデータ更新がエラーとなった時に、AWS CLI コマンドを利用してエラー情報を取得する方法をご紹介します。 エラーメッセージによっては、お問い合わせいただく前にご自身で修正可能なエラーもあると思うので、ご活用いただければ幸いです。

SPICE データセットでデータ更新エラーが発生した時の調査手順

手順 1
データ更新に失敗した SPICE データセットのデータセット ID を、データセット ID 一覧から取得する。
具体的には、AWS CLI コマンド list-data-sets の出力結果から調査したいデータセット名に紐づくデータセット ID を取得する。

手順 2
調査対象の SPICE データセットに対して実行された過去の複数回のデータの取り込みのうち、いつ実施されたデータ更新かを表す取り込み ID を取り込み ID 一覧から習得する。
具体的には、AWS CLI コマンド list-ingestions の出力結果から、調査したい日時に実行されたデータ更新に対しての取り込み ID を取り込み ID 一覧から探す。

手順 3
3. 手順 1 と手順 2 により得られたデータセット ID と取り込み ID を引数に指定して AWS CLI コマンド describe-ingestion を実行し、取り込みエラー発生時の詳細を把握する。

やってみた

1.調査したい SPICE データセットに紐づくデータセット ID を取得する

以下の AWS CLI コマンドを実行すると AWS アカウント ************ において利用可能なデータセットの一覧が取得できます。

aws quicksight list-data-sets --aws-account-id <AWS アカウント>
コマンド実行結果の出力例

aws quicksight list-data-sets --aws-account-id ************
{
    "DataSetSummaries": [
        {
            "Arn": "arn:aws:quicksight:ap-northeast-1:************:dataset/4723a8f8-5622-4a55-9715-2f9659e65bc2",
            "DataSetId": "4723a8f8-5622-4a55-9715-2f9659e65bc2",
            "Name": "Business Review",
            "CreatedTime": "2022-12-05T03:42:51.019000+00:00",
            "LastUpdatedTime": "2022-12-05T03:43:06.938000+00:00",
            "ImportMode": "SPICE",
            "RowLevelPermissionTagConfigurationApplied": false,
            "ColumnLevelPermissionRulesApplied": false
        },
        {
            "Arn": "arn:aws:quicksight:ap-northeast-1:************:dataset/70deda59-269d-45fd-b96b-beb621e31ddf",
            "DataSetId": "70deda59-269d-45fd-b96b-beb621e31ddf",
            "Name": "Content-Info",
            "CreatedTime": "2022-12-05T06:57:44.184000+00:00",
            "LastUpdatedTime": "2022-12-05T06:57:59.207000+00:00",
            "ImportMode": "SPICE",
            "RowLevelPermissionTagConfigurationApplied": false,
            "ColumnLevelPermissionRulesApplied": false
        },

コマンドの出力結果から、データセットに紐づくデータセット ID を知ることができます。

 データセット名 データセット ID 
 Business Review    4723a8f8-5622-4a55-9715-2f9659e65bc2  
 Content-Info    70deda59-269d-45fd-b96b-beb621e31ddf  

今回は、データセット Business Review に対してのデータ更新について調べてみます。
データセット Business Review のデータセット ID 4723a8f8-5622-4a55-9715-2f9659e65bc2 を控えます。

2.データ更新が実行された日時と紐づく取り込み ID を取得する

以下の AWS CLI コマンドを実行すると引数に指定したデータセットの取り込み ID 一覧を取得できます。
aws quicksight list-ingestions --aws-account-id <AWS アカウント> --data-set-id <データセット ID>  

SPICE データセットは、データソースからデータを取り込むことによって何度でも更新が可能です。そのため、データセットとデータの更新日時を関連付けるためには、一意の値が必要となります。この一意の値が取り込み ID(IngestionId)です。
以下の出力結果は、データセット Business Review に対して、取り込み ID を取得する AWS CLI コマンド list-ingestions を実行したものです。短時間のうちに手動で 2 回のデータセットの更新を行ってからコマンドを実行したので、2 つの取り込み ID(IngestionId)を取得することができました。

コマンド実行結果の出力例

aws quicksight list-ingestions --aws-account-id ************ --data-set-id 4723a8f8-5622-4a55-9715-2f9659e65bc2
{
    "Ingestions": [
        {
            "Arn": "arn:aws:quicksight:ap-northeast-1:************:dataset/4723a8f8-5622-4a55-9715-2f9659e65bc2/ingestion/0271375c-f45b-4a83-a4a3-f6b752e2c389",
            "IngestionId": "0271375c-f45b-4a83-a4a3-f6b752e2c389",
            "IngestionStatus": "COMPLETED",
            "ErrorInfo": {},
            "RowInfo": {
                "RowsIngested": 33049,
                "RowsDropped": 0,
                "TotalRowsInDataset": 33049
            },
            "CreatedTime": "2023-05-17T13:58:35.307000+00:00",
            "IngestionTimeInSeconds": 16,
            "IngestionSizeInBytes": 8212257,
            "RequestSource": "MANUAL",
            "RequestType": "FULL_REFRESH"
        },
        {
            "Arn": "arn:aws:quicksight:ap-northeast-1:************:dataset/4723a8f8-5622-4a55-9715-2f9659e65bc2/ingestion/efb06b3c-0924-4e63-b082-80fc98abc353",
            "IngestionId": "efb06b3c-0924-4e63-b082-80fc98abc353",
            "IngestionStatus": "COMPLETED",
            "ErrorInfo": {},
            "RowInfo": {
                "RowsIngested": 33049,
                "RowsDropped": 0,
                "TotalRowsInDataset": 33049
            },
            "CreatedTime": "2023-05-17T13:56:03.586000+00:00",
            "IngestionTimeInSeconds": 16,
            "IngestionSizeInBytes": 8212257,
            "RequestSource": "MANUAL",
            "RequestType": "FULL_REFRESH"
        }
    ],
 更新時間  取り込み ID 
 2023-05-17T13:58:35    0271375c-f45b-4a83-a4a3-f6b752e2c389  
 2023-05-17T13:56:03    efb06b3c-0924-4e63-b082-80fc98abc353  

今回は、2023-05-17T13:58:35 にデータセット Business Review へ行われたデータ更新を調べてみます。
取り込み ID 0271375c-f45b-4a83-a4a3-f6b752e2c389 を控えます。

3.調査対象の SPICE データセットに対して行われた特定日時のデータ更新について詳細を取得する

特定の日時におけるデータ更新の詳細を取得するために、以下の AWS CLI コマンドを実行します。
手順 1 と手順 2 で取得したデータセット ID と取り込み ID を引数に指定します。

aws quicksight describe-ingestion --aws-account-id <AWS アカウント> --data-set-id <データセット ID> --ingestion-id <取り込み ID>  

コマンド実行結果の出力例

aws quicksight describe-ingestion --aws-account-id ************ --data-set-id 4723a8f8-5622-4a55-9715-2f9659e65bc2 --ingestion-id 0271375c-f45b-4a83-a4a3-f6b752e2c389
{
    "Status": 200,
    "Ingestion": {
        "Arn": "arn:aws:quicksight:ap-northeast-1:************:dataset/4723a8f8-5622-4a55-9715-2f9659e65bc2/ingestion/0271375c-f45b-4a83-a4a3-f6b752e2c389",
        "IngestionId": "0271375c-f45b-4a83-a4a3-f6b752e2c389",
        "IngestionStatus": "COMPLETED",
        "ErrorInfo": {},
        "RowInfo": {
            "RowsIngested": 33049,
            "RowsDropped": 0,
            "TotalRowsInDataset": 33049
        },
        "CreatedTime": "2023-05-17T13:58:35.307000+00:00",
        "IngestionTimeInSeconds": 16,
        "IngestionSizeInBytes": 8212257,
        "RequestSource": "MANUAL",
        "RequestType": "FULL_REFRESH"
    },

今回は、SPICE データセットのデータ更新時にエラーが発生したわけではないので、"Status": 200、"ErrorInfo": {} と表示されました。
JSON の各フィールドを確認していただくと、取り込み時の状況について多くの情報を取得できることが分かると思います。

まとめ

SPICE データセットのデータ更新がエラーとなった時は、まず describe-ingestion の実行結果を取得して、ご自身で対応が可能なエラーかご確認いただければと思います。

この記事がどなたかのお役に立てば幸いです。

参考資料