今日、この話題になって、「そういえばどうなったんだろう」と思って調べてみたところ How can we improve Microsoft Azure SQL Data Warehouse ? で「COMPLETED」となり、Public Preview として実装が行われたようです。
SQL DW のベースになった PDW では、初期から実装されていたかと思いますが、SQL DW でもついに来ましたね。
- 超並列処理 (MPP) 用の分散データと分散テーブル
- Azure SQL Data Warehouse でレプリケート テーブルを使用するための設計ガイダンス
- sys.pdw_replicated_table_cache_state (Transact-SQL)
- CREATE TABLE (Azure SQL Data Warehouse)
- CREATE TABLE AS SELECT (Azure SQL Data Warehouse)
サイズについては2GB 程度が推奨となるようですが、各コンピュートノードに近い位置にデータが分散された形でテーブルが配置されるような分散方法が可能になります。
Replicated Table を使用することで、各コンピュートノードにテーブルが配置されるようになるため、テーブルの結合時のデータの移動のコストを抑えることができるようになります。
マスター関連のテーブルで効果的に動作する感じですかね。
データの変更が頻繁に発生するものや、コンピュートノードの数を頻繁に変更するような場合には、情報の再構築のオーバーヘッドが発生するようですので、必要になるかはきちんと検討する必要があるかとは思いますが。