Amazon QuickSight アセットバンドルエクスポートに対応していないデータソースについて

Amazon QuickSight アセットバンドルエクスポートに対応していないデータソースについて

Clock Icon2025.05.24

はじめに

Amazon QuickSight でアセットのインポート・エクスポートジョブを利用して、QuickSight ダッシュボードを別のアカウントへ移行を検証しています。

アセットバンドルエクスポートは、QuickSight のダッシュボード、分析、データセット、データソースなどのアセットを一括でエクスポートできる機能です。この機能により別の QuickSight 環境にダッシュボード関連のアセットを移行することが可能になります。しかし、すべてのデータソースがこの機能に対応しているわけではありません。

本記事では、特に CSV ファイルを使用したデータソースに焦点を当て、エクスポートできないデータソースについて検証結果をまとめました。

https://dev.classmethod.jp/articles/quicksight-inport-export-job/

仕様確認

公式ドキュメントでは以下の説明があります。

The following data sources and dataset types aren't supported by the asset bundle APIs.
・Adobe Analytics
・File
・GitHub
・JIRA
・Salesforce
・ServiceNow
・Twitter
https://docs.aws.amazon.com/quicksight/latest/developerguide/asset-bundle-ops.html

主に SaaS 製品の様な外部サービスは非対応であることがわかりました。

New_Data_Set-11.png

確認したいこと

前提としてお試しで「CSV からダッシュボードを作っている」状態を想定します。ダッシュボードを別の AWS アカウントへ移行するにあたり以下の疑問がでてきたので検証してみます。

  • Fileは QuickSight へアップロードしたファイルを指しているのか
  • S3 バケットに保存した CSV ファイルは対応しているのか

検証結果早見

検証の結果、以下のことが判明しました。

データソースタイプ マニフェスト指定方法 エクスポート可否 エラーメッセージ
QuickSight 直接アップロード CSV - The data set type is not supported through API yet
S3 CSV ローカルアップロード S3 data source created via uploading a local manifest file is not supported
S3 CSV URL 指定 -

同じ S3 の CSV ファイルを使用していても、マニフェストファイルの指定方法によってアセットバンドルエクスポートの対応可否は決まります。

検証

本検証では、以下の環境と手順でアセットバンドルエクスポートの対応状況を確認しました。

検証環境

  • AWS リージョン:ap-northeast-1
  • 使用した AWS CLI コマンド
    • aws quicksight start-asset-bundle-export-job
    • aws quicksight describe-asset-bundle-export-job

検証手順

  1. 各データソースタイプでダッシュボードを作成
  2. ダッシュボードに対してアセットバンドルエクスポートジョブを実行
  3. エクスポート結果(成功/失敗)とエラーメッセージを確認

以下のコマンドでエクスポートジョブの詳細を確認します。

$ aws quicksight describe-asset-bundle-export-job --aws-account-id $SOURCE_ACCOUNT_ID --asset-bundle-export-job-id $EXPORT_JOB_ID

詳細な手順については、以下の記事も参考にしてください。

https://dev.classmethod.jp/articles/cross-account-migration-of-amazon-quicksight-dashboard/

QuickSight へアップロードした CSV ファイルのケース

QuickSight では「新しいデータセット」から「ファイルのアップロード」を選択できます。CSV ファイルを QuickSight へ直接アップロードできます。しかし、この方法で作成されたデータセットはアセットバンドルエクスポートに対応していません。

以下のエラーメッセージが表示されました。

エラーメッセージ: "The data set type is not supported through API yet"

今回のデータセットは、データソースが直接アップロードした CSV ファイルとわかっているため原因を特定できました。しかし、複数のデータセットが紐づいたダッシュボードの場合、どのデータソースが原因なのかわからない場合があります。現状このメッセージが出力されるときは、直接アップロードした CSV ファイルのときのみ確認しています。
そして、約 2 年前にリリースされたアセットバンドル機能なのですが、残念ながら未だに対応していません。

実行結果
{
    "Status": 200,
    "JobStatus": "FAILED",
    "Errors": [
        {
            "Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:dataset/49685b40-9474-482e-87f4-3481e2b9de15",
            "Type": "com.amazonaws.services.quicksight.model.InvalidParameterValueException",
            "Message": "The data set type is not supported through API yet"
        }
    ],
    "Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:asset-bundle-export-job/test-export-1",
    "CreatedTime": "2025-05-24T10:55:48+09:00",
    "AssetBundleExportJobId": "test-export-1",
    "AwsAccountId": "123456789012",
    "ResourceArns": [
        "arn:aws:quicksight:ap-northeast-1:123456789012:dashboard/1a98513b-d667-4702-921f-6532c20a7d37"
    ],
    "IncludeAllDependencies": true,
    "ExportFormat": "QUICKSIGHT_JSON",
    "RequestId": "3edcdaa1-37ec-45b1-80a6-fdd90141ee8d",
    "IncludePermissions": true,
    "IncludeTags": false,
    "IncludeFolderMemberships": false,
    "IncludeFolderMembers": "NONE"
}

S3 バケットに保存した CSV ファイルのケース

S3 バケットに保存された CSV ファイルを QuickSight のデータソースとして使用する場合、マニフェストファイルの指定方法によってアセットバンドルエクスポートの対応可否が決まります。

マニフェストファイルとは

マニフェストファイルは、S3 上の CSV ファイルの場所などを定義する JSON ファイルです。

manifest.json
{
    "fileLocations": [
        {
            "URIs": [
                "s3://test-quicksight-data-migration/abashiri.csv"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "CSV",
        "delimiter": ",",
        "containsHeader": "true"
    }
}

マニフェストファイルの指定方法は以下の 2 タイプあります。この違いがポイントでした。

New_Data_Set-12.png

アップロード指定

ローカルに保存されているマニフェストファイルをデータソース作成時にアップロードして作成したデータソースです。

マニフェストファイルをローカルからアップロードして作成したデータソースの場合、エクスポートは失敗します。以下のエラーメッセージが出力されました。

エラーメッセージ: "S3 data source created via uploading a local manifest file is not supported"

ローカルマニフェストファイルをアップロードして作成された S3 データソースがサポートされていないことがわかる明確なエラーメッセージを QuickSight が出力できるのだと感動を覚えました。

実行結果
{
    "Status": 200,
    "JobStatus": "FAILED",
    "Errors": [
        {
            "Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:datasource/58fb6067-6581-40b2-8dfb-0bb5691a7e82",
            "Type": "com.amazonaws.services.quicksight.model.InvalidParameterException",
            "Message": "S3 data source created via uploading a local manifest file is not supported"
        }
    ],
    "Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:asset-bundle-export-job/test-export-1",
    "CreatedTime": "2025-05-24T11:17:45+09:00",
    "AssetBundleExportJobId": "test-export-1",
    "AwsAccountId": "123456789012",
    "ResourceArns": [
        "arn:aws:quicksight:ap-northeast-1:123456789012:dashboard/1a98513b-d667-4702-921f-6532c20a7d37"
    ],
    "IncludeAllDependencies": true,
    "ExportFormat": "QUICKSIGHT_JSON",
    "RequestId": "52968234-acb1-434f-98a2-a272b61c9f8a",
    "IncludePermissions": true,
    "IncludeTags": false,
    "IncludeFolderMemberships": false,
    "IncludeFolderMembers": "NONE"
}

URL指定

パブリックアクセスを許可した S3 バケット上に配置されているマニフェストファイルの URL を指定して作成したデータソースです。

マニフェストファイルを S3 バケットの URL で指定して作成したデータソースの場合、エクスポートは成功します。

マニフェストファイルは S3 バケットで公開したまま

この状態でエクスポートを試します。

devio-public-test_-_S3_バケット___S3___ap-northeast-1.png

成功しました。

実行結果
{
    "Status": 200,
    "JobStatus": "SUCCESSFUL",
    "DownloadUrl": "https://example.s3.amazonaws.com/dummy-export-download-url",
    "Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:asset-bundle-export-job/test-export-1",
    "CreatedTime": "2025-05-24T17:30:39+09:00",
    "AssetBundleExportJobId": "test-export-1",
    "AwsAccountId": "123456789012",
    "ResourceArns": [
        "arn:aws:quicksight:ap-northeast-1:123456789012:dashboard/1a98513b-d667-4702-921f-6532c20a7d37"
    ],
    "IncludeAllDependencies": true,
    "ExportFormat": "QUICKSIGHT_JSON",
    "RequestId": "ac76f979-73ba-4ed1-89d3-f054d5f6be38",
    "IncludePermissions": true,
    "IncludeTags": false,
    "IncludeFolderMemberships": false,
    "IncludeFolderMembers": "NONE"
}

マニフェストを削除

マニフェストファイルを S3 バケットから削除した状態でエクスポートを確認しました。

devio-public-test_-_S3_バケット___S3___ap-northeast-1-2.png

マニフェストファイルを S3 バケットから削除した後でもエクスポートは成功します。データソース作成時に URL 指定で作成されていれば、その後マニフェストファイルが削除されてもエクスポート可能であることが確認できました。

実行結果
{
    "Status": 200,
    "JobStatus": "SUCCESSFUL",
    "DownloadUrl": "https://example.s3.amazonaws.com/dummy-export-download-url",
    "Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:asset-bundle-export-job/test-export-1",
    "CreatedTime": "2025-05-24T17:34:18+09:00",
    "AssetBundleExportJobId": "test-export-1",
    "AwsAccountId": "123456789012",
    "ResourceArns": [
        "arn:aws:quicksight:ap-northeast-1:123456789012:dashboard/1a98513b-d667-4702-921f-6532c20a7d37"
    ],
    "IncludeAllDependencies": true,
    "ExportFormat": "QUICKSIGHT_JSON",
    "RequestId": "a4ea0318-2986-4a45-9408-471f986bcbf8",
    "IncludePermissions": true,
    "IncludeTags": false,
    "IncludeFolderMemberships": false,
    "IncludeFolderMembers": "NONE"
}

以上のことから、URL 指定で作成されたデータソースにおいては、QuickSight がデータソース作成時にマニフェストファイルの情報を内部的に保存していると思われます。ですが、ローカルからアップロードしたマニフェストファイルの情報は内部に保存していないため、エクスポートができないようです。

まとめ

Amazon QuickSight のアセットバンドルエクスポートにおけるデータソースの対応状況について検証した結果、以下のことが明らかになりました。

データソースタイプ マニフェスト指定方法 エクスポート可否 エラーメッセージ
QuickSight 直接アップロード CSV - The data set type is not supported through API yet
S3 CSV ローカルアップロード S3 data source created via uploading a local manifest file is not supported
S3 CSV URL 指定 -

同じ S3 の CSV ファイルを使用していても、マニフェストファイルの指定方法によってアセットバンドルエクスポートの対応可否は決まります。

おわりに

本記事では、Amazon QuickSight のアセットバンドルエクスポートに対応していないデータソースについて検証しました。特に CSV ファイルを使用したデータソースにおいて、同じ S3 上のファイルでもマニフェストファイルの指定方法によって移行可否が変わることは良い発見でした。

約 2 年前にリリースされたアセットバンドル機能ですが、直接アップロードした CSV ファイルは未だに対応していません。今後のアップデートに期待したいところです。

推奨事項:
CSV ファイルを使用したダッシュボードを作成している場合の推奨方法をご紹介します。

後々のことを考えると CSV 直接アップロードはやめ、最初から S3 バケットに CSV ファイルを保存して、マニュフェストは URL 指定で作成してください。または、Athena 経由で S3 バケットに置いた CSV ファイルへアクセスする形式が好ましいです。

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.