ある大手小売企業は、同一 AWS アカウント・同一リージョン内に2つの Amazon Redshift クラスター(Cluster-A と Cluster-B)を運用しています。Cluster-A にはデータエンジニアリングチームが管理する集計済みの sales_summary テーブル(約200GB)があります。Cluster-B を使用するビジネスアナリストチームは、この sales_summary テーブルを毎日参照する必要があります。以下の制約があります。 ・データのコピーや S3 への中間エクスポートは避けたい ・ETL パイプラインの追加構築・管理コストを最小化したい ・ビジネスアナリストは Cluster-B から透過的に SQL でクエリしたい この要件を最も効率よく満たすソリューションはどれですか?
Amazon Redshift データシェアリング(Data Sharing)は、同一または異なる Redshift クラスター間でデータをコピーせずにリアルタイム共有できる機能です。 データシェアリングの仕組みは以下の通りです。 ①プロデューサークラスター(Cluster-A)でデータシェアを作成し、共有するテーブルを追加 ②コンシューマークラスター(Cluster-B)をデータシェアの利用者として追加 ③Cluster-B から通常の SQL クエリを実行すると、データシェア経由で sales_summary を参照可能 ④データはコピーされず Cluster-A 上のデータをライブで参照するため、常に最新状態を反映 ETL パイプラインの構築・S3 中間ストレージ・データコピーが不要で、運用コストを大幅に削減できます。 選択肢Bの AWS Glue ETL + UNLOAD/COPY アプローチはデータコピーと S3 中間エクスポートが発生し、制約に反するうえ運用コストも高い。 選択肢Cの Redshift Spectrum は S3 上の外部テーブルをクエリする機能であり、Redshift クラスター間の直接データ共有には使用できない。また S3 への事前エクスポートが必要になる。 選択肢Dの Amazon Athena の Federated Query は Redshift に接続できるが、Athena の結果を Cluster-B のビューとして公開する仕組みは存在せず、アーキテクチャとして成立しない。