本ページでは、具体化されたビューの作成方法について説明します。
必要な権限。
ビューを作成するには、データベースまたはテーブルに対するcreate権限が必要です。
マテリアライズドビューを更新するには、データベースまたはテーブルに対するINSERT権限が必要です。
関連するテーブル列またはマテリアライズドビューに含まれるすべてのテーブルに対するSELECT権限が必要です。
作成したマテリアライズドビューの自動更新を構成する場合は、オンプレミスサーバー (
127.0.0.1
) またはIPアドレス ('%'
) を使用してビューを更新する権限が必要です。
構文
作成 [または交換] 素材化ビュー <mv_name>
[MV定義]
[REFRESH [COMPLETE | FAST] [ON [DEMAND | OVERWRITE] [START WITH date] [NEXT date]]]
[クエリの書き直し]
AS
<QUERY BODY>;
パラメーター
説明 | |
| 作成するマテリアライズドビューの名前が既存のマテリアライズドビューの名前と同じかどうかに基づいて、マテリアライズドビューを作成するために使用されるルール。
説明 このパラメーターは、V3.1.4.7以降のAnalyticDB for MySQLクラスターで有効になります。 |
| マテリアライズド・ビューの名前。 |
| マテリアライズドビューのテーブル関連のプロパティ。
|
| フルリフレッシュ方法。 マテリアライズドビューの作成時にリフレッシュ方法を指定しない場合は、フルリフレッシュが使用されます。 |
| 増分リフレッシュ方法。 説明 V3.1.9.0以降のAnalyticDB For MySQLクラスターの場合、単一のテーブルに基づいて定義されたマテリアライズドビューに対して増分更新を実行できます。 V3.2.0.0以降のAnalyticDB For MySQLクラスターの場合、複数のテーブルに基づいて定義されたマテリアライズドビューに対して増分更新を実行できます。 詳細については、「マテリアライズドビューの増分更新の設定 (プレビュー) 」をご参照ください。 |
| リフレッシュのオンデマンドトリガモード。 次のリフレッシュをオンデマンドで設定するには、手動でリフレッシュをトリガーするか、 デフォルトでは、フルリフレッシュは |
| 更新の上書きトリガーモード。
|
| マテリアライズドビューを自動的に完全に更新する最初の時点。 このパラメーターを指定しない場合は、現在の時点が使用されます。 説明 時間関数はサポートされており、秒まで正確でなければなりません。 ミリ秒は切り捨てられます。 マテリアライズドビューを更新する方法の詳細については、「マテリアライズドビューの更新」をご参照ください。 |
| マテリアライズドビューを自動的に完全に更新する次の時点。 自動更新を有効にする場合は、 説明 時間関数はサポートされており、秒まで正確でなければなりません。 ミリ秒は切り捨てられます。 マテリアライズドビューを更新する方法の詳細については、「マテリアライズドビューの更新」をご参照ください。 |
| マテリアライズド・ビューのクエリ書き換え機能を有効または無効にします。 マテリアライズドビューでこの機能を有効にすると、クエリをマテリアライズドビューに書き直すことができます。 マテリアライズドビューをキャッシュとして使用できます。 有効な値:
説明
|
| マテリアライズドビューのクエリ本体。テーブル、論理ビュー、またはマテリアライズドビューにすることができます。 以下の点にご注意ください。
|
制限事項
マテリアライズドビューでは、
INSERT
、DELETE
、UPDATE
操作を実行できません。マテリアライズドビューに含まれるベーステーブルまたはベーステーブルの列を削除したり、名前を変更したりすることはできません。 ベーステーブルを変更する前に、マテリアライズドビューを削除する必要があります。
AnalyticDB for MySQLクラスターに作成できるマテリアライズドビューの最大数は、クラスターバージョンによって異なります。
V3.1.4.7以前のクラスター: 最大8つのマテリアライズドビュー。
V3.1.4.7以降のクラスター: 最大64のマテリアライズドビュー。
説明クラスターのマイナーバージョンをクエリする方法については、AnalyticDB for MySQLクラスターのバージョンを照会するにはどうすればよいですか? クラスターのマイナーバージョンを更新するには、テクニカルサポートにお問い合わせください。
例
5分ごとに更新される
myview1
という名前のマテリアライズドビューを作成します。MATERIALIZED VIEW myview1を作成する REFRESH NEXT now() + インターバル5分 AS SELECT count(*) as cnt FROM base;
毎週月曜日の02:00:00に更新される
myview2
という名前のマテリアライズドビューを作成します。MATERIALIZED VIEW myview2を作成する リフレッシュ START WITH DATE_FORMAT(now() + 間隔7-平日 (now()) 日、'% Y-% m-% d 02:00:00') NEXT DATE_FORMAT(now() + interval 7 - weekday(now()) day, '% Y-% m-% d 02:00:00') AS SELECT count(*) as cnt FROM base;
毎日02:00:00に更新される
myview3
という名前のマテリアライズドビューを作成します。MATERIALIZED VIEW myview3を作成する リフレッシュ DATE_FORMATで開始 (now() + interval 1 day, '% Y-% m-% d 02:00:00') NEXT DATE_FORMAT(now() + interval 1 day, '% Y-% m-% d 02:00:00') AS SELECT count(*) as cnt FROM base;
毎月初日の02:00:00に更新される
myview4
という名前のマテリアライズドビューを作成します。MATERIALIZED VIEW myview4を作成する REFRESH NEXT DATE_FORMAT(last_day(now()) + 間隔1日、'% Y-% m-% d 02:00:00') AS SELECT count(*) as cnt FROM base;
1回だけ更新する
myview5
という名前のマテリアライズドビューを作成します。MATERIALIZED VIEWを作成するmyview5 REFRESH START WITH now() + インターバル1日 AS SELECT count(*) as cnt FROM base;
自動更新を使用しない
myview6
という名前のマテリアライズドビューを作成します。MATERIALIZED VIEW myview6を作成する ( 主要なキー (id) ) ハッシュによって分布 (id) AS SELECT id, name FROM base;
指定された列がインデックス付けされる
myview7
という名前のマテリアライズドビューを作成します。 デフォルトでは、すべての列がインデックス付けされます。MATERIALIZED VIEW myview7を作成する ( インデックス (名前) 、 主要なキー (id) ) ハッシュによって分布 (id) AS SELECT id, name, age FROM base;
パーティションキーとコメントが指定された
myview8
という名前のマテリアライズドビューを作成します。MATERIALIZED VIEW myview8を作成する ( 名前varchar(10) 、 値double, キーINDEX_ID(id) コメント 'id' 、 暗号化されたキーインデックス (名前、値) 、 主要なキー (id) ) ハッシュ (id) で分布 PARTITION BY value(date_format(dat, "% Y % m % d")) LIFECYCLE 30 コメント '材料化されたビューc' AS SELECT * ベースから;
関連ドキュメント
マテリアライズドビューの更新: マテリアライズドビューの更新方法を指定する方法、またはマテリアライズドビューを手動で更新する方法について説明します。
マテリアライズドビューの管理: マテリアライズドビューのクエリ、レコード、情報テーブルの自動更新、およびマテリアライズドビューの削除方法について説明します。
マテリアライズドビューからのデータのクエリ: マテリアライズドビューからのデータのクエリ方法について説明します。