Amazon QuickSight 直接アップロードした CSV のデータセットから S3+Athena のデータセット置き換えを試してみた

Amazon QuickSight 直接アップロードした CSV のデータセットから S3+Athena のデータセット置き換えを試してみた

Clock Icon2025.05.27

はじめに

Amazon QuickSight でダッシュボードを作成する際、CSV ファイルを使用する方法として以下の 3 つがあります。

方法 メリット デメリット アセットバンドルエクスポート
直接アップロード ・手軽で簡単
・すぐに始められる
・データの更新は手動対応 ❌ 非対応
S3 ・手軽 ・マニフェストファイルの指定方法により制限あり △ 条件付き対応
S3+Athena 経由 ・大容量データでも安心 ・Athena の知識が必要 ✅ 対応

ファイルの直接アップロードは手軽で簡単ですが、アセットバンドルエクスポート機能に対応していないという制限があります。この制限によりダッシュボードのバックアップや、アカウント移行がやりづらいです。

本記事では、既に直接アップロードで作成した CSV のファイルデータセットを、S3+Athena 経由のデータセットに置き換え可能か検証しました。既存のビジュアルに影響を与えることなく、アセットバンドルエクスポートに対応したデータセットへ変換を目的としています。

検証結果早見

データセットの置き換えに成功し、以下を確認できました。

  • 既存ビジュアルへの影響なし:ビジュアルの表示や動作に変更なし
  • アセットバンドルエクスポート対応:新しいデータセットがエクスポートできることを確認
  • データの整合性:元のデータと同じ結果を取得

背景・目的

アセットバンドルエクスポートの制限

Amazon QuickSight のアセットバンドルエクスポートは、ダッシュボード、分析、データセット、データソースなどのアセットを一括でエクスポートできる便利な機能です。しかし、直接アップロードした CSV ファイル(File データソース)はこの機能に対応していません。

その他の対応していないデータソースの詳細については、以下の記事をご参照ください。

https://dev.classmethod.jp/articles/quicksight-asset-bundle-unsupported-datasources/

検証目的

本記事では以下の要件を満たせるか検証しました。

  • 既存ビジュアルへの影響なし:データセット置き換え後も既存のビジュアルが正常に動作すること
  • アセットバンドルエクスポート対応:ダッシュボードのバックアップやアカウント移行が可能になること

検証用データ

QuickSight へ直接アップロードした CSV ファイルは以下の形式です。

abashiri.csv
date,category,subcategory,location,value,temperature,precipitation,visitor_count,revenue,fish_type,catch_weight
2024-01-15,観光,博物館,網走監獄博物館,850,−8.2,12.5,850,127500,カニ,2500
2024-01-15,漁業,水揚げ,網走港,2500,−8.2,12.5,0,0,ホタテ,1800
2024-01-16,観光,体験,流氷ウォーク,320,−6.8,0.0,320,96000,サケ,950
以下省略

データセット置き換え手順

S3 バケットに CSV ファイルを配置

QuickSight へ直接アップロードした CSV ファイルを S3 バケットに保存します。

test-quicksight-data-migration_-_S3_バケット___S3___ap-northeast-1.png

QuickSight からは Athena 経由でこの S3 バケットへアクセスします。そのため Athena 側でテーブルを作成しておく必要があります。

Athena でのデータベース・テーブル作成

データベース作成

CREATE DATABASE IF NOT EXISTS abashiri_data

テーブル作成

CREATE EXTERNAL TABLE abashiri_data.abashiri_tourism (
    date date,
    category string,
    subcategory string,
    location string,
    value int,
    temperature double,
    precipitation double,
    visitor_count int,
    revenue bigint,
    fish_type string,
    catch_weight int
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
    'serialization.format' = ',',
    'field.delim' = ',',
    'escape.delim' = '\\'
)
LOCATION 's3://test-quicksight-data-migration/'
TBLPROPERTIES (
    'has_encrypted_data'='false',
    'skip.header.line.count'='1',
    'projection.enabled'='false'
);

データベース、テーブルが作成され、CSV の中身がそのまま返ってくるテーブルが完成しました。

クエリエディタ___Athena___ap-northeast-1-5.png

QuickSight で新しいデータセットを作成

Athena データソースを選択します。
New_Data_Set-14.png

先ほど作成したデータベース(abashiri_data)を選択します。
New_Data_Set-15.png

作成したテーブル(abashiri_tourism)を選択します。
New_Data_Set-16.png

データセットが完成しました。
New_Data_Set-17.png

データセットの入れ替え

既存の分析でデータセットを置き換えます。既存のビジュアルを保持したままデータソースを変更できます。

既存の分析画面を開きます。
abashiri_csv_analysis-11.png

左側のデータセット一覧から「対象のデータセット」を選択して「データセットを管理」をクリックします。
abashiri_csv_analysis-12.png

「置き換え」をクリックします。
abashiri_csv_analysis-13.png

先ほど作成した Athena のデータセットを選択します。
abashiri_csv_analysis-14.png

「置換」をクリックします。
abashiri_csv_analysis-15.png

データセットの置き換えが完了しました。既存のビジュアルが新しいデータソースで正常に表示されることを確認できました。
abashiri_csv_analysis-16.png

見た目は変更せずにデータセットの置き換えに成功しました。

アセットバンドルエクスポート

データセットの置き換えが完了したので、実際にアセットバンドルエクスポートが可能になったか検証します。

エクスポートジョブの実行

アセットバンドルエクスポートは AWS CLI を使用して実行できます。詳細な手順については、以下の記事を参考にしてください。

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

エクスポートジョブを実行し、結果を確認します。

$ aws quicksight start-asset-bundle-export-job --cli-input-json file://input.json
$ aws quicksight describe-asset-bundle-export-job --aws-account-id $SOURCE_ACCOUNT_ID --asset-bundle-export-job-id $EXPORT_JOB_ID

エクスポート結果

S3+Athena 経由のデータセットに置き換えた後のエクスポート結果です。見事に成功しています。

実行結果
{
    "Status": 200,
    "JobStatus": "SUCCESSFUL",
    "DownloadUrl": "https://quicksight-asset-bundle-export-job-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/0123456789012/test-export-1/example-uuid/assetbundle-test-export-1.qs?X-Amz-Security-Token=EXAMPLE_TOKEN&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20250526T235800Z&X-Amz-SignedHeaders=host&X-Amz-Credential=EXAMPLE_CREDENTIAL&X-Amz-Expires=300&X-Amz-Signature=EXAMPLE_SIGNATURE",
    "Arn": "arn:aws:quicksight:ap-northeast-1:0123456789012:asset-bundle-export-job/test-export-1",
    "CreatedTime": "2025-05-27T08:55:16+09:00",
    "AssetBundleExportJobId": "test-export-1",
    "AwsAccountId": "0123456789012",
    "ResourceArns": [
        "arn:aws:quicksight:ap-northeast-1:0123456789012:dashboard/1a98513b-d667-4702-921f-6532c20a7d37"
    ],
    "IncludeAllDependencies": true,
    "ExportFormat": "QUICKSIGHT_JSON",
    "RequestId": "cab5a141-ad86-4fc4-aa73-4b5f9241e996",
    "IncludePermissions": true,
    "IncludeTags": false,
    "IncludeFolderMemberships": false,
    "IncludeFolderMembers": "NONE"
}

直接アップロードした CSV データセットを使用していた場合、このエクスポートジョブは失敗していました。S3+Athena 経由のデータセットに置き換えることで、アセットバンドルエクスポートが正常に実行できるようになりました。めでたい。

検証結果まとめ

QuickSight に直接アップロードした CSV データセットを S3+Athena 経由のデータセットに置き換えに成功しました。

  • 既存のビジュアルに影響を与えることなくデータソースを変更
  • アセットバンドルエクスポート機能への対応

おわりに

本記事では、QuickSight の直接アップロード CSV データセットを S3+Athena 経由に置き換える方法を検証しました。

手軽に始められる直接アップロードですが、アセットバンドルエクスポート非対応という制限があります。一方で、本記事で紹介した置き換え手順により、既存のビジュアルを維持したままデータセットの置き換えができました。

特に以下のような場合は、この置き換え手順の実行を検討することをお勧めします。

  • ダッシュボードのバックアップや、アカウント移行を予定している
  • データの更新頻度が高く、自動化を検討している
  • より大容量のデータを扱う予定がある

お試しではじめた CSV のデータセットがいろいろ便利になり、最初から Athena 経由でアクセスしていればよかったなとなりました。しかし、後からでも既存資産をアセットバンドルエクスポートできることが分かったのは大きな収穫でした。

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.

OSZAR »