データセットのSPICE更新の依存順での更新が可能か

二つのデータセット(SPICE)がある場合、

  • データセットA
  • データセットB(データセットAを使用)

これらを順にデータセットAの更新が完了してから、データセットBの更新が完了させるように、制御させる方法がないか探しています。

上記状態で、両データセットともにSPICEの定期更新設定をしたいのですが、
データセットBが先に更新完了しないかを、懸念しております。

それぞれの更新開始時間の間隔をあけることで一時的に回避が可能かと思いますが、
データ量が増すにつれて、SPICE更新にかかる時間も変わると推測されるため、長期的な運用には課題が残ります。

また上記データセットの作成に関して、SDKを使用したプログラム上で連続的に作成するため、
データセット作成時の初期更新が、データセットBに関しては必ず失敗するかと存じます。
これに対しても、何かQuickSight側での使用できる機能がないかご教授いただきたいです。

ご助言いただけますと、幸いです。

@yukawaSB さん、ご質問ありがとうございます。

現状、QuickSightのGUI上でデータセット間の依存関係を含め更新スケジュールを設定することはできませんが、データセット更新時にはAmazon EventBridgeでイベントを受け取ることができるため、データセットAの更新完了イベント受信時に CreateIngestion API でデータセットBの更新を自動実行するといった作り込みは可能です。

以下リンクのデータセット→更新の部分参考にしていただければと思います。

上記はAmazon EventBridgeを使ったイベントドリブンな方法ですが、Step Functions内で

  1. CreateIngestion API を使いデータセットAを更新
  2. DescribeIngestion API を使いデータセットAの更新を確認
  3. データセットAの更新が完了していたら CreateIngestion API を使いデータセットBを更新

といったワークフローに仕立てて制御することも可能です。データセット間の依存関係がより複雑な場合にはワークフローの方が分かりやすいためお勧めです。

こちらも参考にしていただけますと幸いです。

ご確認ありがとうございます。

データセット更新時にはAmazon EventBridgeでイベントを受け取ることができるため

上記に記載の「データセット更新時」とは、データセットのSPICE更新(スケジュール設定での定期更新)も含まれる、ということでしたでしょうか?

EventBridgeのコンソール上でのイベント設定時の、quicksightのDataSetをイベントタイプに設定した際の、イベントが

  • created
  • updated
  • deleted

のため、SPICEの更新単体のEventはなく、DataSetのUdateイベントとしてまとめての検知になるという理解であっていますでしょうか?

@yukawaSB さん、ご確認いただきありがとうございます。

申し訳ございません、一つ訂正させてください。
最初に投稿したEventBridgeでのイベントですが、こちらはUpdateDataSetに対する更新完了イベントであり、データセット更新であるCreateIngestionに対する更新完了イベントは現状イベントとして検知することができませんでした。そのため、二つ目の投稿の方のCreateIngestionおよびDescribeIngestionを使いワークフロー化する方をご検討いただけますでしょうか。お詫びして訂正させていただきます。