Megosztás a következőn keresztül:


.create-or-alter materialized-view

Materializált nézetet hoz létre, vagy módosít egy meglévő materializált nézetet.

Engedélyek

A parancs futtatásához legalább Materialized View Rendszergazda engedéllyel kell rendelkeznie.

Syntax

.create-or-altermaterialized-view [ with(PropertyName=PropertyValue,...)] MaterializedViewNameon tableSourceTableName{Lekérdezés}

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
PropertyName, PropertyValue string Tulajdonságok listája név- és értékpárok formájában a támogatott tulajdonságok listájából.
MaterializedViewName string ✔️ A materializált nézet neve. A nézetnév nem ütközhet az ugyanabban az adatbázisban lévő tábla- vagy függvénynevekkel, és meg kell felelnie az azonosító elnevezési szabályainak.
SourceTableName string ✔️ Annak a forrástáblának a neve, amelyen a nézet definiálva van.
Lekérdezés string ✔️ A materializált nézet lekérdezésdefiníciója.

Támogatott tulajdonságok

Új táblázat

Ha a tábla új, az alábbi tulajdonságok támogatottak a with(PropertyName=TulajdonságÉrtékben). Az összes tulajdonság megadása nem kötelező.

Név Típus Description
visszatöltés bool A nézetet a (true) összes rekordja SourceTable alapján hozza létre, vagy mostantól (false). Az alapértelmezett szint a false. További információ: Materializált nézet visszatöltése.
effectiveDateTime datetime Csak akkor releváns, ha a parancsot használja backfill. Ha be van állítva, a létrehozás csak a datetime után betöltött rekordokkal tölthető le. backfillA értéket is a értékre kell állítani.true Ez a tulajdonság dátum/idő literálra számít; például: effectiveDateTime=datetime(2019-05-01).
updateExtentsCreationTime bool Csak akkor releváns, ha a parancsot használja backfill. Ha a értékre truevan állítva, akkor a bővítménylétrehozási idő a datetime group-by kulcs alapján van hozzárendelve a visszatöltési folyamat során. További információ: Materializált nézet visszatöltése.
visszatekintés timespan Csak materializált nézetekre arg_max//arg_mintake_any érvényes. Ez korlátozza az ismétlődések várható időtartamát. Ha például egy nézetben 6 órás visszatekintés van megadva arg_max , az újonnan betöltött rekordok és a meglévők közötti deduplikáció csak azokat a rekordokat veszi figyelembe, amelyeket legfeljebb 6 órával ezelőtt töltöttek be.

A visszatekintés a következőhöz viszonyítva ingestion_timevan: . A visszatekintési időszak helytelen meghatározása ismétlődő elemeket eredményezhet a materializált nézetben. Ha például egy adott kulcs rekordját 10 órával az adott kulcs rekordjának betöltése után betölti a rendszer, és a visszatekintés 6 órára van állítva, akkor a kulcs duplikált lesz a nézetben. A visszatekintési időszak mind a materializálási, mind a lekérdezési idő során érvényesül.
autoUpdateSchema bool Azt határozza meg, hogy a forrástábla nézete automatikusan frissüljön-e. Az alapértelmezett szint a false. Ez a beállítás csak típusú arg_max(Timestamp, *)//arg_min(Timestamp, *)take_any(*) nézetekre érvényes (csak akkor, ha az oszlop argumentuma ).* Ha ez a beállítás értékre truevan állítva, a forrástábla módosításai automatikusan megjelennek a materializált nézetben.
dimensionTables array Dinamikus argumentum, amely dimenziótáblák tömböt tartalmaz a nézetben. Lásd: Lekérdezési paraméter.
Mappa string A materializált nézet mappája.
docString string A materializált nézetet dokumentáló sztring.
allowMaterializedViewsWithoutRowLevelSecurity bool Lehetővé teszi, hogy materializált nézetet hozzon létre egy táblán, amelyen engedélyezve van a sorszintű biztonsági szabályzat.

Meglévő tábla

Ha a tábla már létezik, a PropertyName=TulajdonságÉrték) csak a tulajdonságok következő részhalmazát támogatjawith(. Az összes tulajdonság megadása nem kötelező.

Név Típus Description
visszatekintés timespan Csak materializált nézetekre arg_max//arg_mintake_any érvényes. Ez korlátozza az ismétlődések várható időtartamát. Ha például egy nézetben 6 órás visszatekintés van megadva arg_max , az újonnan betöltött rekordok és a meglévők közötti deduplikáció csak azokat a rekordokat veszi figyelembe, amelyeket legfeljebb 6 órával ezelőtt töltöttek be.

A visszatekintés a következőhöz viszonyítva ingestion_timevan: . A visszatekintési időszak helytelen meghatározása ismétlődő elemeket eredményezhet a materializált nézetben. Ha például egy adott kulcs rekordját 10 órával az adott kulcs rekordjának betöltése után betölti a rendszer, és a visszatekintés 6 órára van állítva, akkor a kulcs duplikált lesz a nézetben. A visszatekintési időszak mind a materializálási, mind a lekérdezési idő során érvényesül.
autoUpdateSchema bool Azt határozza meg, hogy a forrástábla nézete automatikusan frissüljön-e. Az alapértelmezett szint a false. Ez a beállítás csak típusú arg_max(Timestamp, *)//arg_min(Timestamp, *)take_any(*) nézetekre érvényes (csak akkor, ha az oszlop argumentuma ).* Ha ez a beállítás értékre truevan állítva, a forrástábla módosításai automatikusan megjelennek a materializált nézetben.
dimensionTables array Dinamikus argumentum, amely dimenziótáblák tömböt tartalmaz a nézetben. Lásd: Lekérdezési paraméter.
Mappa string A materializált nézet mappája.
docString string A materializált nézetet dokumentáló sztring.

Válaszok

Kimeneti séma:

Név Típus Leírás
Név string A materializált nézet neve.
SourceTable string Annak a forrástáblának a neve, amelyen a nézet definiálva van.
Lekérdezés string A materializált nézet lekérdezésdefiníciója.
MaterializedTo datetime Maximális materializált ingestion_time() időbélyeg a forrástáblában. További információ: A materializált nézetek működése.
LastRun datetime A materializáció legutóbbi futtatása.
LastRunResult string Az utolsó futtatás eredménye. Sikeres futtatások Completed esetén ad vissza értéket, ellenkező esetben Failed.
IsHealthy bool true ha a nézet kifogástalannak minősül, false ellenkező esetben. A nézet akkor tekinthető kifogástalannak, ha az utolsó óráig sikeresen megvalósult (MaterializedTo nagyobb, mint ago(1h)).
IsEnabled bool true ha a nézet engedélyezve van (lásd: Materializált nézet letiltása vagy engedélyezése).
Mappa string Mappa, amelyben a materializált nézet létrejön.
DocString string A materializált nézethez rendelt leírás.
AutoUpdateSchema bool Azt jelzi, hogy a nézet engedélyezve van-e az automatikus frissítésekhez.
EffectiveDateTime datetime A nézet létrehozási ideje alatt meghatározott érvényes dátum (lásd: .create materialized-view).
Visszatekintés timespan Az ismétlődések várható időtartamának korlátozására szolgáló időtartam.

Példák

Materializált nézet létrehozása vagy módosítása

A következő parancs létrehoz egy új, vagy módosít egy meglévő materializált nézetet ArgMax néven:

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

Kimenet

Name SourceTable Lekérdezés MaterializedTo LastRun LastRunResult IsHealthy IsEnabled Mappa DocString AutoUpdateSchema EffectiveDateTime Visszatekintés
ArgMax T T | summarize arg_max(Timestamp, *) by User 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z Befejeződött true true hamis 2023-02-23T14:01:42.5172342Z

Megjegyzések

Ha a materializált nézet nem létezik, ez a parancs ugyanúgy viselkedik, mint a .create materialized-view.

További információkért tekintse meg a Lekérdezés paraméter és a Tulajdonságok szakaszt.

Korlátozások

  • A módosítások nem támogatottak:

    • A materializált nézetcsoport módosításai kifejezések szerint.
    • Oszloptípus módosítása.
    • Oszlopok átnevezése. Ha például módosít egy nézetet T | summarize count() by Id úgy, hogy elveti az T | summarize Count=count() by Id oszlopot count_ , és létrehoz egy új oszlopot Count, amely kezdetben csak null értékeket tartalmaz.
  • A meglévő adatokra gyakorolt hatás:

    • A materializált nézet módosítása nincs hatással a meglévő adatokra.
    • Szűrők hozzáadása a lekérdezéshez csak az újonnan betöltött rekordokra vonatkozik, és nem módosítja a már materializált rekordokat.
      • Az új oszlopok az összes meglévő rekord esetében null értékeket kapnak, amíg az alter parancs után betöltött rekordok nem módosítják a null értékeket.
      • Például: A nézete T | summarize count() by bin(Timestamp, 1d) a következőre T | summarize count(), sum(Value) by bin(Timestamp, 1d)módosul: . Az oszlop részleges adatokat tartalmaz, ha egy adott rekordot Timestamp=T már feldolgoztak a nézet sum módosítása előtt. Ez a nézet csak a módosítás végrehajtása után feldolgozott rekordokat tartalmazza.