Bagikan melalui


.alter materialized-view

Mengubah tampilan terwujud dapat digunakan untuk mengubah kueri tampilan terwujud, sambil mempertahankan data yang ada dalam tampilan.

Peringatan

Berhati-hatilah saat mengubah tampilan terwujud. Penggunaan yang salah dapat menyebabkan hilangnya data.

Izin

Anda harus memiliki setidaknya izin Admin Tampilan Terwujud untuk menjalankan perintah ini.

Sintaks

.altermaterialized-view [ with(PropertyName=PropertyValue,...)] MaterializedViewNameon tableSourceTableName{Query}

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Jenis Diperlukan Deskripsi
PropertyName, PropertyValue string Daftar properti dalam bentuk pasangan nama dan nilai, dari daftar properti yang didukung.
MaterializedViewName string ✔️ Nama tampilan yang dimaterialisasi.
SourceTableName string ✔️ Nama tabel sumber tempat tampilan didefinisikan.
Kueri string ✔️ Definisi kueri dari tampilan terwujud.

Properti yang didukung

Properti berikut ini didukung dalam with( klausa PropertyName=PropertyValue). Semua properti bersifat opsional.

Nama Jenis Deskripsi
lookback timespan Hanya berlaku untuk arg_max//arg_mintake_any tampilan materialisasi. Ini membatasi periode waktu di mana duplikat diharapkan. Misalnya, jika lookback 6 jam ditentukan pada arg_max tampilan, deduplikasi antara rekaman yang baru diserap dan yang sudah ada hanya akan mempertimbangkan rekaman yang diserap hingga 6 jam yang lalu.

Lookback relatif terhadap ingestion_time. Menentukan periode lookback secara tidak benar dapat menyebabkan duplikat dalam tampilan materialisasi. Misalnya, jika rekaman untuk kunci tertentu diserap 10 jam setelah rekaman untuk kunci yang sama diserap, dan lookback diatur ke 6 jam, kunci tersebut akan menjadi duplikat dalam tampilan. Periode lookback diterapkan selama waktu materialisasi dan waktu kueri.
autoUpdateSchema bool Apakah akan memperbarui tampilan secara otomatis pada perubahan tabel sumber. Defaultnya adalah false. Opsi ini hanya valid untuk tampilan jenis arg_max(Timestamp, *)//arg_min(Timestamp, *)take_any(*) (hanya ketika argumen kolom adalah ).* Jika opsi ini diatur ke true, perubahan pada tabel sumber akan secara otomatis tercermin dalam tampilan terwujud.
dimensionTables array Argumen dinamis yang menyertakan array tabel dimensi dalam tampilan. Lihat Parameter kueri.
folder string Folder tampilan materialisasi.
docString string String yang mendanai tampilan materialisasi.

Mengembalikan

Skema output:

Nama Jenis Deskripsi
Nama string Nama tampilan yang dimaterialisasi.
SourceTable string Nama tabel sumber tempat tampilan didefinisikan.
Kueri string Definisi kueri dari tampilan terwujud.
MaterializedTo datetime Tanda waktu ingestion_time() terwujud maksimum dalam tabel sumber. Untuk informasi selengkapnya, lihat cara kerja tampilan yang dimaterialisasi.
LastRun datetime Terakhir kali materialisasi dijalankan.
LastRunResult string Hasil dari operasi terakhir. Mengembalikan Completed untuk operasi sukses, jika tidak mengembalikan Failed.
IsHealthy bool true jika tampilan dianggap sehat, false jika sebaliknya. Tampilan dianggap sehat jika berhasil dimaterialisasi hingga satu jam terakhir (MaterializedTo lebih besar dari ago(1h)).
IsEnabled bool true saat tampilan diaktifkan (lihat Menonaktifkan atau mengaktifkan tampilan yang dimaterialisasi).
Folder string Folder tempat tampilan materialisasi dibuat.
DocString string Deskripsi yang ditetapkan ke tampilan materialisasi.
AutoUpdateSchema bool Apakah tampilan diaktifkan untuk pembaruan otomatis.
EffectiveDateTime datetime Waktu tanggal efektif tampilan, ditentukan selama waktu pembuatan (lihat .create materialized-view).
Lookback timespan Rentang waktu yang membatasi periode waktu di mana duplikat diharapkan.

Contoh

Mengubah definisi kueri dari tampilan materialisasi

Perintah berikut memodifikasi definisi kueri tampilan terwujud MyView:

.alter materialized-view MyView on table MyTable
{
    MyTable | summarize arg_max(Column3, *) by Column1
}

Output

Nama SourceTable Kueri MaterializedTo LastRun LastRunResult IsHealthy IsEnabled Folder DocString AutoUpdateSchema EffectiveDateTime Lookback
MyView MyTable MyTable | meringkas arg_max(Kolom3, *) menurut Kolom1 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z Selesai TRUE TRUE salah 2023-02-23T14:01:42.5172342Z

Kasus penggunaan

  • Tambahkan agregasi ke tampilan - misalnya, tambahkan agregasi avg ke T | summarize count(), min(Value) by Id, dengan mengubah kueri tampilan ke T | summarize count(), min(Value), avg(Value) by Id.
  • Ubah operator selain operator ringkasan. Misalnya, filter beberapa rekaman dengan mengubah T | summarize arg_max(Timestamp, *) by User ke T | where User != 'someone' | summarize arg_max(Timestamp, *) by User.
  • Ubah tanpa perubahan pada kueri karena perubahan tabel sumber. Misalnya, asumsikan tampilan T | summarize arg_max(Timestamp, *) by Id, yang tidak diatur ke autoUpdateSchema (lihat .create materialized-view perintah). Jika kolom ditambahkan atau dihapus dari tabel sumber tampilan, tampilan akan dinonaktifkan secara otomatis. Jalankan perintah alter, dengan kueri yang sama persis, untuk mengubah skema tampilan terwujud agar selaras dengan skema tabel baru. Tampilan masih harus diaktifkan secara eksplisit setelah perubahan, menggunakan perintah aktifkan tampilan terwujud.

Batasan

  • Perubahan yang tidak didukung:

    • Perubahan pada tampilan terwujud grup menurut ekspresi.
    • Mengubah jenis kolom.
    • Mengganti nama kolom. Misalnya, mengubah tampilan T | summarize count() by Id untuk menghilangkan kolom count_ dan membuat kolom Countbaru , yang awalnya hanya T | summarize Count=count() by Id berisi null.
  • Dampak pada data yang ada:

    • Mengubah tampilan terwujud tidak berdampak pada data yang ada.
    • Menambahkan filter ke kueri hanya berlaku untuk rekaman yang baru diserap, dan tidak mengubah rekaman yang telah terwujud.
      • Kolom baru menerima null untuk semua rekaman yang ada hingga rekaman yang diserap setelah perintah ubah mengubah nilai null.
      • Misalnya: Tampilan T | summarize count() by bin(Timestamp, 1d) diubah menjadi T | summarize count(), sum(Value) by bin(Timestamp, 1d). Untuk rekaman tertentu Timestamp=T yang telah diproses sebelum mengubah tampilan, sum kolom berisi sebagian data. Tampilan ini hanya menyertakan catatan yang diproses setelah eksekusi perubahan.