Amazon QuickSight 直接アップロードした CSV のデータセットから S3+Athena のデータセット置き換えを試してみた
はじめに
Amazon QuickSight でダッシュボードを作成する際、CSV ファイルを使用する方法として以下の 3 つがあります。
方法 | メリット | デメリット | アセットバンドルエクスポート |
---|---|---|---|
直接アップロード | ・手軽で簡単 ・すぐに始められる |
・データの更新は手動対応 | ❌ 非対応 |
S3 | ・手軽 | ・マニフェストファイルの指定方法により制限あり | △ 条件付き対応 |
S3+Athena 経由 | ・大容量データでも安心 | ・Athena の知識が必要 | ✅ 対応 |
ファイルの直接アップロードは手軽で簡単ですが、アセットバンドルエクスポート機能に対応していないという制限があります。この制限によりダッシュボードのバックアップや、アカウント移行がやりづらいです。
本記事では、既に直接アップロードで作成した CSV のファイルデータセットを、S3+Athena 経由のデータセットに置き換え可能か検証しました。既存のビジュアルに影響を与えることなく、アセットバンドルエクスポートに対応したデータセットへ変換を目的としています。
検証結果早見
データセットの置き換えに成功し、以下を確認できました。
- 既存ビジュアルへの影響なし:ビジュアルの表示や動作に変更なし
- アセットバンドルエクスポート対応:新しいデータセットがエクスポートできることを確認
- データの整合性:元のデータと同じ結果を取得
背景・目的
アセットバンドルエクスポートの制限
Amazon QuickSight のアセットバンドルエクスポートは、ダッシュボード、分析、データセット、データソースなどのアセットを一括でエクスポートできる便利な機能です。しかし、直接アップロードした CSV ファイル(File データソース)はこの機能に対応していません。
その他の対応していないデータソースの詳細については、以下の記事をご参照ください。
検証目的
本記事では以下の要件を満たせるか検証しました。
- 既存ビジュアルへの影響なし:データセット置き換え後も既存のビジュアルが正常に動作すること
- アセットバンドルエクスポート対応:ダッシュボードのバックアップやアカウント移行が可能になること
検証用データ
QuickSight へ直接アップロードした 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 バケットに保存します。
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 の中身がそのまま返ってくるテーブルが完成しました。
QuickSight で新しいデータセットを作成
Athena データソースを選択します。
先ほど作成したデータベース(abashiri_data)を選択します。
作成したテーブル(abashiri_tourism)を選択します。
データセットが完成しました。
データセットの入れ替え
既存の分析でデータセットを置き換えます。既存のビジュアルを保持したままデータソースを変更できます。
既存の分析画面を開きます。
左側のデータセット一覧から「対象のデータセット」を選択して「データセットを管理」をクリックします。
「置き換え」をクリックします。
先ほど作成した Athena のデータセットを選択します。
「置換」をクリックします。
データセットの置き換えが完了しました。既存のビジュアルが新しいデータソースで正常に表示されることを確認できました。
見た目は変更せずにデータセットの置き換えに成功しました。
アセットバンドルエクスポート
データセットの置き換えが完了したので、実際にアセットバンドルエクスポートが可能になったか検証します。
エクスポートジョブの実行
アセットバンドルエクスポートは AWS CLI を使用して実行できます。詳細な手順については、以下の記事を参考にしてください。
エクスポートジョブを実行し、結果を確認します。
$ 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 経由でアクセスしていればよかったなとなりました。しかし、後からでも既存資産をアセットバンドルエクスポートできることが分かったのは大きな収穫でした。