非同期マテリアライズドビュー
このトピックでは、非同期マテリアライズドビューの理解、作成、使用、管理方法について説明します。非同期マテリアライズドビューは、StarRocks v2.4以降でサポートされています。
同期マテリアライズドビューと比較して、非同期マテリアライズドビューはマルチテーブルジョインやより多くの集計関数をサポートしています。非同期マテリアライズドビューのリフレッシュは 、手動で、事前に指定された間隔で定期的に、またはベーステーブルのデータ変更時に自動的にトリガーされることがあります。また、マテリアライズドビュー全体ではなく、一部のパーティションのみをリフレッシュすることもでき、リフレッシュのコストを大幅に削減できます。さらに、非同期マテリアライズドビューはさまざまなクエリの書き換えシナリオをサポートしており、自動的で透明なクエリアクセラレーションを可能にします。
同期マテリアライズドビュー(Rollup)のシナリオと使用法については、Synchronous materialized view (Rollup)を参照してください。
概要
データベースのアプリケーションでは、大規模なテーブルに対して複雑なクエリを実行することがよくあります。これらのクエリは、数十億行を含むテーブルに対するマルチテーブルジョインや集計を含みます。これらのクエリを処理することは、システムリソースや結果を計算するのにかかる時間の観点から高コストです。
StarRocksの非同期マテリアライズドビューは、これらの問題に対処するために設計されています。非同期マテリアライズドビューは、1つまたは複数のベーステーブルから事前に計算されたクエリ結果を保持する特別な物理テーブルです。ベーステーブルに対して複雑なクエリを実行すると、StarRocksはこれらのクエリを処理するために関連するマテリアライズドビューから事前に計算された結果 を返します。この方法により、繰り返しの複雑な計算を避けることでクエリパフォーマンスが向上します。このパフォーマンスの違いは、クエリが頻繁に実行される場合や十分に複雑な場合に顕著です。
さらに、非同期マテリアライズドビューは、データウェアハウス上に数学モデルを構築するのに特に役立ちます。これにより、上位層のアプリケーションに統一されたデータ仕様を提供し、基盤の実装を隠したり、ベーステーブルの生データのセキュリティを保護したりできます。
StarRocksにおけるマテリアライズドビューの理解
StarRocks v2.3以前のバージョンでは、単一のテーブルにのみ構築できる同期マテリアライズドビューが提供されていました。同期マテリアライズドビュー、またはRollupは、データの新鮮さが高く、リフレッシュコストが低いです。しかし、v2.4以降でサポートされている非同期マテリアライズドビューと比較すると、同期マテリアライズドビューには多くの制限があります。クエリを加速または書き換えるために同期マテリアライズドビューを構築したい場合、集計演算子の選択肢が限られています。
以下の表は、StarRocksにおける非同期マテリアライズドビュー(ASYNC MV)と同期マテリアライズドビュー(SYNC MV)のサポートする機能の観点からの比較を示 しています。
| 単一テーブル集計 | マルチテーブルジョイン | クエリの書き換え | リフレッシュ戦略 | ベーステーブル | |
|---|---|---|---|---|---|
| ASYNC MV | はい | はい | はい |
| 複数のテーブルから:
|
| SYNC MV (Rollup) | 集計関数の選択肢が限られている | いいえ | はい | データロード中の同期リフレッシュ | Default Catalogの単一テーブル |
基本概念
-
ベーステーブル
ベーステーブルは、マテリアライズドビューの駆動テーブルです。
StarRocksの非同期マテリアライズドビューの場合、ベーステーブルはDefault CatalogのStarRocks内部テーブル、外部カタログのテーブル(v2.5からサポート)、または既存の非同期マテリアライズドビュー(v2.5からサポート)やビュー(v3.1からサポート)であることができます。StarRocksは、すべてのStarRocksテーブルタイプに対して非同期マテリアライズドビューの作成をサポートしています。
-