Bagikan melalui


Transformasi sampel di Azure Monitor

Transformasi di Azure Monitor memungkinkan Anda memfilter atau memodifikasi data masuk sebelum dikirim ke ruang kerja Analitik Log. Artikel ini menyediakan kueri sampel untuk skenario umum yang dapat Anda gunakan untuk mulai membuat transformasi Anda sendiri. Lihat Membuat transformasi di Azure Monitor untuk detail tentang pengujian transformasi ini dan menambahkannya ke aturan pengumpulan data (DCR).

Mengurangi biaya data

Karena Anda dikenakan biaya penyerapan untuk data apa pun yang dikirim ke ruang kerja Analitik Log, Anda ingin memfilter data apa pun yang tidak diperlukan untuk mengurangi biaya Anda.

Memfilter baris data

where Gunakan pernyataan untuk memfilter data masuk yang cocok dengan persyaratan tertentu. Jika rekaman masuk tidak cocok dengan pernyataan, maka rekaman tidak dikirim ke tujuan. Dalam contoh berikut, hanya rekaman dengan tingkat keparahan Critical yang dikumpulkan.

source | where severity == "Critical" 

Memfilter kolom data

Hapus kolom dari sumber data yang tidak diperlukan untuk menghemat biaya penyerapan data. project Gunakan pernyataan untuk menentukan kolom dalam output Anda, atau gunakan project-away untuk menentukan hanya kolom yang akan dihapus. Dalam contoh berikut, RawData kolom dihapus dari output.

source | project-away RawData

Mengurai data penting dari kolom

Anda mungkin memiliki kolom dengan data penting yang dikubur dalam teks yang berlebihan. Simpan hanya data berharga dan hapus teks yang tidak diperlukan. Gunakan fungsi string seperti substring dan extract untuk mengurai data yang Anda inginkan. Anda juga dapat mengurai data menggunakan parse atau split untuk memecah satu kolom menjadi beberapa nilai dan memilih satu yang Anda inginkan. Kemudian gunakan extend untuk membuat kolom baru dengan data yang diurai dan project-away untuk menghapus kolom asli.

Peringatan

Lihat Memecah perintah penguraian besar untuk tips menggunakan perintah penguraian kompleks.

Dalam contoh berikut, RequestContext kolom berisi JSON dengan ResourceId ruang kerja. Fungsi parse_json dan split digunakan untuk mengekstrak nama sederhana ruang kerja. Kolom baru dibuat untuk nilai ini dan kolom lainnya dihapus.

source
| extend Context = parse_json(RequestContext)
| extend Workspace_CF = tostring(Context['workspaces'][0])
| extend WorkspaceName_CF = split(Workspace_CF,"/")[8]
| project-away RequestContext, Context, Workspace_CF

Mengirim baris ke log dasar

Kirim baris dalam data Anda yang memerlukan kemampuan kueri dasar ke tabel log dasar untuk biaya penyerapan yang lebih rendah. Lihat Mengirim data ke beberapa tabel untuk detail tentang cara mengirim data ke beberapa tabel.

Menghapus data sensitif

Anda mungkin memiliki sumber data yang mengirim informasi yang tidak ingin Anda simpan karena alasan privasi atau kesiapan.

Memfilter informasi sensitif

Gunakan strategi yang sama seperti yang dijelaskan dalam Mengurangi biaya data untuk memfilter seluruh baris atau kolom tertentu yang berisi informasi sensitif. Dalam contoh berikut, ClientIP kolom dihapus dari output.

source | project-away ClientIP

Mengaburkan informasi sensitif

Gunakan fungsi string untuk mengganti informasi seperti digit dalam alamat IP atau nomor telepon dengan karakter umum. Contoh berikut menggantikan nama pengguna di alamat email dengan "*****".

source | extend Email = replace_string(Email,substring(Email,0,indexof(Email,"@")),"*****")

Kirim ke tabel alternatif

Kirim rekaman sensitif ke tabel alternatif dengan konfigurasi kontrol akses berbasis peran yang berbeda. Lihat Mengirim data ke beberapa tabel untuk detail tentang cara mengirim data ke beberapa tabel.

Perkaya data

Gunakan transformasi untuk menambahkan informasi ke data yang menyediakan konteks bisnis atau menyederhanakan kueri data nanti. Gunakan fungsi string untuk mengekstrak informasi penting dari kolom lalu gunakan extend pernyataan untuk menambahkan kolom baru ke sumber data. Contoh berikut menambahkan kolom yang mengidentifikasi apakah alamat IP di kolom lain bersifat internal atau eksternal.

source | extend IpLocation = iff(split(ClientIp,".")[0] in ("10","192"), "Internal", "External")

Memformat data untuk tujuan

Anda mungkin memiliki sumber data yang mengirim data dalam format yang tidak cocok dengan struktur tabel tujuan. Gunakan transformasi untuk memformat ulang data ke skema yang diperlukan.

Mengubah skema

Gunakan perintah seperti extend dan project untuk mengubah skema data masuk agar sesuai dengan tabel target. Dalam contoh berikut, kolom baru yang disebut TimeGenerated ditambahkan ke data keluar menggunakan fungsi KQL untuk mengembalikan waktu saat ini.

source | extend TimeGenerated = now()

Mengurai data

split Gunakan operator atau parse untuk mengurai data ke dalam beberapa kolom dalam tabel tujuan. Dalam contoh berikut, data masuk memiliki kolom yang dibatasi koma bernama RawData yang dibagi menjadi kolom individual untuk tabel tujuan.

source 
| project d = split(RawData,",") 
| project TimeGenerated=todatetime(d[0]), Code=toint(d[1]), Severity=tostring(d[2]), Module=tostring(d[3]), Message=tostring(d[4])

Peringatan

Lihat Memecah perintah penguraian besar untuk tips menggunakan perintah penguraian kompleks.

Langkah berikutnya