あるデータエンジニアリングチームは、Amazon Redshiftクラスターで長時間実行されるETLジョブと、BIダッシュボード向けの短い分析クエリを同一クラスター上で混在させて実行しています。 ピーク時間帯に長時間ETLクエリがデフォルトキューを占有し、ダッシュボードクエリのレスポンスが著しく低下しています。 ワークロードの分離とピーク時のスループット確保を両立するための最も適切な方法はどれですか?
Amazon Redshift の Workload Management(WLM)では、ユーザーグループやクエリグループに基づいてクエリを独立したキューにルーティングし、キューごとにメモリやConcurrency(同時実行数)を設定できます。ETLとダッシュボードを別キューに分離することで相互干渉を防ぎ、Concurrency Scalingを有効化するとキュー混雑時に追加クラスターが自動プロビジョニングされてバースト需要に対応できます。 選択肢Bは ノード数増加はリソース拡張にはなりますが、キューの分離なしでは長時間クエリが短時間クエリをブロックする根本的な問題は解消されません。コスト増加も伴います。 選択肢Cは QMRでETLクエリを自動キャンセルするとジョブが完了できなくなりビジネスロジックに支障をきたします。問題の根本解決にはなりません。 選択肢Dは Redshift Spectrumは外部テーブル(S3上のデータ)へのクエリ向けであり、既存のRedshift内部テーブルを対象とするETLをSpectrumに移行するには大規模なアーキテクチャ変更が必要で、適切な解決策ではありません。