次の方法で共有


.create-or-alter materialized-view

適用対象: ✅Microsoft FabricAzure データ エクスプローラー

具体化されたビューを作成するか、既存の具体化されたビューを変更します。

アクセス許可

このコマンドを実行するには、少なくとも Materialized View Admin アクセス許可が必要です。

構文

.create-or-altermaterialized-view [ with (PropertyName = PropertyValue,...)] MaterializedViewName on table SourceTableName { Query }

構文規則について詳しく知る。

パラメーター

件名 タイプ Required 説明
PropertyNamePropertyValue string サポートされるプロパティの一覧から、名前と値のペアの形式のプロパティの一覧
MaterializedViewName string ✔️ マテリアライズドビューの名。 ビュー名は、同じデータベース内のテーブル名または関数名と競合することはできないため、 identifier の名前付け規則に従う必要があります
SourceTableName string ✔️ ビューが定義されているソース テーブルの名前。
クエリ string ✔️ 具体化されたビューのクエリ定義。

サポートされるプロパティ

新しいテーブル

テーブルが新しい場合、 with(PropertyName = PropertyValue ) で次のプロパティがサポートされます。 すべてのプロパティは省略可能です。

名前 種類 説明
backfill bool 現在 SourceTable (true) にあるすべてのレコードに基づいてビューを作成するか、これから作成するか (false)。 既定値は false です。 詳細については、「 マテリアライズド ビューのバックフィルを参照してください。
effectiveDateTime datetime backfillを使用している場合にのみ関連します。 設定されている場合、作成は datetime より後に取り込まれたレコードでのみバックフィルされます。 backfilltrueに設定する必要があります。 このプロパティには datetime リテラルが必要です。たとえば、 effectiveDateTime=datetime(2019-05-01)
updateExtentsCreationTime bool backfillを使用している場合にのみ関連します。 trueに設定されている場合、バックフィル プロセス中に datetime group-by キーに基づいて Extent Creation time が割り当てられます。 詳細については、「 マテリアライズド ビューのバックフィルを参照してください。
lookback timespan 具体化されたビュー arg_max/arg_min/take_any に対してのみ有効です。 重複が予想される期間が制限されます。 たとえば、 arg_max ビューで 6 時間のルックバックが指定されている場合、新しく取り込まれたレコードと既存のレコードの間の重複除去では、最大 6 時間前に取り込まれたレコードのみが考慮されます。

ルックバックは、 ingestion_time()に対する相対値です。 具体化されたビュー クエリで ingestion_time() 値が保持されない場合、ビューでルックバックを定義することはできません。 具体化されたビューの制限事項と既知の問題を参照してください。 ルックバック期間を誤って定義すると、具体化されたビューで重複が発生する可能性があります。 たとえば、同じキーのレコードが取り込まれた 10 時間後に特定のキーのレコードが取り込まれ、ルックバックが 6 時間に設定されている場合、そのキーはビュー内で重複します。 ルックバック期間は、 マテリアル化時間 および クエリ時間の両方で適用されます。
autoUpdateSchema bool ソース テーブルの変更に関するビューを自動的に更新するかどうかを指定します。 既定値は false です。 このオプションは、 arg_max(Timestamp, *)/arg_min(Timestamp, *)/take_any(*) 型のビューに対してのみ有効です (列の引数が *されている場合のみ)。 このオプションを true に設定すると、ソース テーブルへの変更がマテリアライズド ビューに自動的に反映されます。
dimensionTables 配列 ビュー内のディメンション テーブルの配列を含む動的引数。 Query パラメーターを参照してください。
フォルダー string 具体化されたビュー*のフォルダー*。
docString string 具体化されたビューを文書化する文字列。
allowMaterializedViewsWithoutRowLevelSecurity bool 行レベルのセキュリティ ポリシーが有効になっているテーブルに対して具体化されたビューを作成できるようにします。

既存のテーブル

テーブルが既に存在する場合は、 with(PropertyName = PropertyValue ) で次のプロパティのサブセットのみがサポートされます。 すべてのプロパティは省略可能です。

名前 種類 説明
lookback timespan 具体化されたビュー arg_max/arg_min/take_any に対してのみ有効です。 重複が予想される期間が制限されます。 たとえば、 arg_max ビューで 6 時間のルックバックが指定されている場合、新しく取り込まれたレコードと既存のレコードの間の重複除去では、最大 6 時間前に取り込まれたレコードのみが考慮されます。

ルックバックは、 ingestion_timeに対する相対値です。 ルックバック期間を誤って定義すると、具体化されたビューで重複が発生する可能性があります。 たとえば、同じキーのレコードが取り込まれた 10 時間後に特定のキーのレコードが取り込まれ、ルックバックが 6 時間に設定されている場合、そのキーはビュー内で重複します。 ルックバック期間は、 マテリアル化時間 および クエリ時間の両方で適用されます。
autoUpdateSchema bool ソース テーブルの変更に関するビューを自動的に更新するかどうかを指定します。 既定値は false です。 このオプションは、 arg_max(Timestamp, *)/arg_min(Timestamp, *)/take_any(*) 型のビューに対してのみ有効です (列の引数が *されている場合のみ)。 このオプションを true に設定すると、ソース テーブルへの変更がマテリアライズド ビューに自動的に反映されます。
dimensionTables 配列 ビュー内のディメンション テーブルの配列を含む動的引数。 Query パラメーターを参照してください。
フォルダー string 具体化されたビュー*のフォルダー*。
docString string 具体化されたビューを文書化する文字列。

返品

[Output Schema]\(出力スキーマ\):

名前 種類 説明
Name string マテリアライズドビューの名。
SourceTable string ビューが定義されているソース テーブルの名前。
クエリ string 具体化されたビューのクエリ定義。
MaterializedTo datetime ソース テーブルのマテリアライズド ingestion_time() タイムスタンプの最大値。 詳細については、マテリアライズドビューのしくみ を参照してください。
LastRun datetime 前回具体化が実行された時刻。
LastRunResult string 最後の実行の結果。 正常に実行された場合は Completed を返します。それ以外の場合は Failed を返します。
IsHealthy bool true ビューが正常と見なされる場合、false それ以外の場合。 ビューは、直近の 1 時間まで正常にマテリアライズされた場合に正常と見なされます (MaterializedToago(1h) より大きい)。
IsEnabled bool true ビューが有効になっている場合 (「具体化されたビューを無効化または有効化」を参照)。
フォルダー string 具体化されたビューが作成されるフォルダー。
DocString string 具体化されたビューに割り当てられた説明。
AutoUpdateSchema bool ビューの自動更新が有効になっているかどうか。
EffectiveDateTime datetime ビューの有効な日時。作成時に決定されます ( .create materialized-view参照)。
ルックバック timespan 重複が予想される期間を制限する期間。

具体化されたビューを作成または変更する

次のコマンドは、ArgMax という名前の具体化された既存のビューを新規作成または変更します。

.create-or-alter materialized-view ArgMax on table T
{
    T | summarize arg_max(Timestamp, *) by User
}

出力

Name 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のビューを変更して列count_T | summarize Count=count() by Id削除し、最初は null のみを含む新しい列Countを作成します。
  • 既存のデータへの影響:

    • 具体化されたビューを変更しても、既存のデータに影響はありません。
    • クエリにフィルターを追加すると、新しく取り込まれたレコードにのみ適用され、既に具体化されているレコードは変更されません。
      • alter コマンドの後に取り込まれたレコードが null 値を変更するまで、新しい列は既存のすべてのレコードに対して NULL を受け取ります。
      • たとえば、 T | summarize count() by bin(Timestamp, 1d) のビューが T | summarize count(), sum(Value) by bin(Timestamp, 1d)に変更されます。 ビューを変更する前にレコードが既に処理されている特定の Timestamp=T の場合、 sum 列には部分的なデータが含まれます。 このビューには、変更の実行後に処理されたレコードだけが含まれます。