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