具体化されたビューを作成するか、既存の具体化されたビューを変更します。
アクセス許可
このコマンドを実行するには、少なくとも Materialized View Admin アクセス許可が必要です。
構文
.create-or-alter
materialized-view
[ with
(
PropertyName=
PropertyValue,
...)
] MaterializedViewNameon table
SourceTableName{
Query}
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
PropertyName、 PropertyValue | string |
サポートされるプロパティの一覧から、名前と値のペアの形式のプロパティの一覧。 | |
MaterializedViewName | string |
✔️ | マテリアライズドビューの名。 ビュー名は、同じデータベース内のテーブル名または関数名と競合することはできないため、 identifier の名前付け規則に従う必要があります。 |
SourceTableName | string |
✔️ | ビューが定義されているソース テーブルの名前。 |
クエリ | string |
✔️ | 具体化されたビューのクエリ定義。 |
サポートされるプロパティ
新しいテーブル
テーブルが新しい場合、 with(
PropertyName=
PropertyValue)
で次のプロパティがサポートされます。 すべてのプロパティは省略可能です。
件名 | タイプ | 説明 |
---|---|---|
backfill | bool |
現在 SourceTable (true ) にあるすべてのレコードに基づいてビューを作成するか、これから作成するか (false )。 既定値は false です。 詳細については、「 マテリアライズド ビューのバックフィルを参照してください。 |
effectiveDateTime | datetime |
backfill を使用している場合にのみ関連します。 設定した場合、作成は datetime より後に取り込まれたレコードのみをバックフィルします。
backfill も true に設定する必要があります。 このプロパティには datetime リテラルが必要です。たとえば、 effectiveDateTime=datetime(2019-05-01) 。 |
updateExtentsCreationTime | bool |
backfill を使用している場合にのみ関連します。
true に設定すると、エクステント作成時間 は、バックフィル プロセス中の datetime グループ化キーに基づいて割り当てられます。 詳細については、「 マテリアライズド ビューのバックフィルを参照してください。 |
lookback | timespan |
重複または更新が予想される期間を制限する期間。 詳細については、「ルックバック期間 」を参照してください。 |
lookback_column | string |
ルックバック期間の参照として機能するビュー内の string 列。 この列が空で、lookback に値がある場合、具体化されたビューでは既定のルックバックが使用されます。 詳細については、「ルックバック期間 」を参照してください。 |
autoUpdateSchema | bool |
ソース テーブルの変更に関するビューを自動的に更新するかどうかを指定します。 既定値は false です。 このオプションは、 arg_max(Timestamp, *) /arg_min(Timestamp, *) /take_any(*) 型のビューに対してのみ有効です (列の引数が * されている場合のみ)。 このオプションを true に設定すると、ソース テーブルへの変更がマテリアライズド ビューに自動的に反映されます。 |
dimensionTables | 配列 | ビュー内のディメンション テーブルの配列を含む動的引数。 Query パラメーターを参照してください。 |
フォルダー | string |
具体化されたビュー*のフォルダー*。 |
docString | string |
具体化されたビューを文書化する文字列。 |
allowMaterializedViewsWithoutRowLevelSecurity | bool |
行レベルのセキュリティ ポリシーが有効になっているテーブルに対して具体化されたビューを作成できるようにします。 |
既存のテーブル
テーブルが既に存在する場合は、 with(
PropertyName=
PropertyValue)
で次のプロパティのサブセットのみがサポートされます。 すべてのプロパティは省略可能です。
件名 | タイプ | 説明 |
---|---|---|
lookback | timespan |
重複または更新が予想される期間を制限する期間。 詳細については、「ルックバック期間 」を参照してください。 |
lookback_column | string |
ルックバック期間の参照として機能するビュー内の string 列。
lookback_column が定義されていない場合、ルックバック期間は ingestion_time()に基づいて計算されます。
lookback_column が既に定義されている場合、その値は変更できません。 詳細については、「ルックバック期間 」を参照してください。 |
autoUpdateSchema | bool |
ソース テーブルの変更に関するビューを自動的に更新するかどうかを指定します。 既定値は false です。 このオプションは、 arg_max(Timestamp, *) /arg_min(Timestamp, *) /take_any(*) 型のビューに対してのみ有効です (列の引数が * されている場合のみ)。 このオプションを true に設定すると、ソース テーブルへの変更がマテリアライズド ビューに自動的に反映されます。 |
-- | -- | -- |
フォルダー | string |
具体化されたビュー*のフォルダー*。 |
docString | string |
具体化されたビューを文書化する文字列。 |
返品
[Output Schema]\(出力スキーマ\):
件名 | タイプ | 説明 |
---|---|---|
件名 | string |
マテリアライズドビューの名。 |
SourceTable | string |
ビューが定義されているソース テーブルの名前。 |
クエリ | string |
具体化されたビューのクエリ定義。 |
MaterializedTo | datetime |
ソース テーブルのマテリアライズド ingestion_time() タイムスタンプの最大値。 詳細については、マテリアライズドビューのしくみ を参照してください。 |
LastRun | datetime |
前回具体化が実行された時刻。 |
LastRunResult | string |
最後の実行の結果。 正常に実行された場合は Completed を返します。それ以外の場合は Failed を返します。 |
IsHealthy | bool |
true ビューが正常と見なされる場合、false それ以外の場合。 ビューは、直近の 1 時間まで正常にマテリアライズされた場合に正常と見なされます (MaterializedTo が ago(1h) より大きい)。 |
IsEnabled | bool |
true ビューが有効になっている場合 (「具体化されたビューを無効化または有効化」を参照)。 |
フォルダー | string |
具体化されたビューが作成されるフォルダー。 |
DocString | string |
具体化されたビューに割り当てられた説明。 |
AutoUpdateSchema | bool |
ビューの自動更新が有効になっているかどうか。 |
EffectiveDateTime | datetime |
ビューの有効な日時。作成時に決定されます ( .create materialized-view 参照)。 |
ルックバック | timespan |
重複または更新が予想される期間を制限する期間。 詳細については、「ルックバック期間 」を参照してください。 |
LookbackColumn | string |
ルックバック期間の参照として機能するビュー内の string 列。 この列が空で、lookback に値がある場合、具体化されたビューでは既定のルックバックが使用されます。 詳細については、「ルックバック期間 」を参照してください。 |
例
このセクションの例では、構文を使用して作業を開始する方法を示します。
具体化されたビューを作成または変更する
次の例では、新しい具体化されたビューを作成するか、テーブル T
に基づく ArgMax
と呼ばれる既存のビューを変更します。 テーブル T
のユーザーごとに、Timestamp
列に基づく最新のレコードが含まれています。
.create-or-alter materialized-view ArgMax on table T
{
T | summarize arg_max(Timestamp, *) by User
}
出力
件名 | SourceTable | クエリ | MaterializedTo | LastRun | LastRunResult | IsHealthy | IsEnabled | フォルダー | DocString | AutoUpdateSchema | EffectiveDateTime | ルックバック |
---|---|---|---|---|---|---|---|---|---|---|---|---|
ArgMax | T | T |summarize arg_max(Timestamp, *) by User | 2023-02-26T16:40:03.3345704Z | 2023-02-26T16:44:15.9033667Z | 完了済み | true | true | false | 2023-02-23T14:01:42.5172342Z |
解説
具体化されたビューが存在しない場合、このコマンドは .create materialized-viewと同じように動作します。
詳細については、「 Query パラメーター および Properties 」セクションを参照してください。
制限事項
次の変更はサポートされていません:
- 式別の具体化されたビュー グループに対する変更。
- 列の種類の変更。
- 列名を変更する。 たとえば、
T | summarize count() by Id
のビューを変更して列T | summarize Count=count() by Id
count_
削除し、最初は null のみを含む新しい列Count
を作成します。
既存のデータへの影響:
- 具体化されたビューを変更しても、既存のデータに影響はありません。
- クエリにフィルターを追加すると、新しく取り込まれたレコードにのみ適用され、既に具体化されているレコードは変更されません。
- alter コマンドの後に取り込まれたレコードが null 値を変更するまで、新しい列は既存のすべてのレコードに対して NULL を受け取ります。
- たとえば、
T | summarize count() by bin(Timestamp, 1d)
のビューがT | summarize count(), sum(Value) by bin(Timestamp, 1d)
に変更されます。 ビューを変更する前にレコードが既に処理されている特定のTimestamp=T
の場合、sum
列には部分的なデータが含まれます。 このビューには、変更の実行後に処理されたレコードだけが含まれます。
関連コンテンツ
- 具体化されたビュー を する
- 具体化されたビューのユース ケース
- 具体化されたビュー の作成を する
- .alter materialized-view