[アップデート] Amazon Redshift データ共有が複数のデータウェアハウスからの書き込みクエリをサポートしました (プレビュー) #AWSreInvent

2023.11.27

データアナリティクス事業本部のコンサルティングチームの石川です。

本日より、Amazon Redshiftは、パブリックプレビューでデータ共有を介した複数のデータウェアハウスからの書き込みクエリをサポートしました。AWSアカウント内またはアカウント間で読み取りと書き込みの両方のクエリをデータ共有で実行できるようになりました。

Amazon Redshiftのデータ共有とは

Amazon Redshiftのデータ共有とは、特定のスキーマのテーブルを一括りにした「データ共有」を作成して、その「データ共有」を特定のクラスタやAWSアカウントに共有することで、データを共有する機能です。

これまで、共有されたデータは読み込みクエリのみでしたが、今回のアップデートで書き込みクエリもサポートしました。つまり、データ共有したクラスタ(プロデューサクラスタ)だけでなく、データ共有されたクラスタ(コンシューマクラスタ)でも書き込みが可能になります。

データ共有を介した書き込みクエリがもたらすベネフィット

書き込まれたデータは、コミットされるとすぐにすべてのデータウェアハウスで利用できるようになります。これにより、書き込みワークロードの費用対効果やニーズに基づいて、さまざまなノードタイプやRPUのサイズのデータウェアハウスを組み合わせることか可能になります。コンピューティングを柔軟に拡張したり、分離してSLAをより簡単に満たしたり、他のチームと簡単かつ安全にコラボレーションしたりすることができます。

リージョンを越えてデータを書き込むこともできます。書き込みトランザクションがコミットされるとすぐに全てのデータウェアハウスで利用できるようになります。アカウント間でデータを共有する場合、プロデューサアカウント管理者は、これらのアカウントがデータへの読み取り専用アクセスを取得するかどうかを選択できます。

この機能を試すには

プレビュートラックで、PREVIEW_2023を指定することで、パブリックプレビューでお試しいただけます。現在、ra3.xlplus クラスターでは、データ共有によるマルチウェアハウス書き込みは利用できません。この機能を使用するには、ra3.4xlクラスター、ra3.16xlクラスタ、または Amazon Redshift Serverless ワークグループを作成してください。

管理者はスキーマを追加した後、スキーマ内のオブジェクトに対するデータ共有権限を付与できます。これらは読み取り権限と書き込み権限の両方にすることができます。

GRANT SELECT, INSERT ON TABLE myshared_schema1.table1, myshared_schema1.table2, myshared_schema2.table1
TO DATASHARE my_datashare;

すべての権限を付与するには、データ共有my_datashareに対して、GRANT ALLします。

GRANT ALL ON TABLE myshared_schema1.table4 TO DATASHARE my_datashare;

最後に

データウェアハウスには、「データを一箇所に集め、横断的に分析する」という、基本的な考えがあります。現在は、「クラウドにデータを集め、複数のデータウェアハウス間でデータを共有する仕組みを用いて、データを論理的に一箇所に集め、横断的に分析する」ことが可能になりました。これをデータファブリックと呼んだりします。今回のアップデートでは、さらに書き込まれたデータが、コミットされるとすぐにすべてのデータウェアハウスで利用できるようになりました。この機能が実現することで、まるでデータが一つのクラスタに集まったような利用が可能になり、データファブリックが完成します。さらっと、書いてますがキーノートで発表しても良いくらいのインパクトの大きいアップデートです!

合わせて読みたい

プレビューの段階ですので、データ共有の要件と制限などありますが、データ共有によるテーブルの作成(CREATE)と更新(INSERT)が動作することが確認できました。