Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Beralih layanan menggunakan menu tarik-turun Versi. Pelajari selengkapnya tentang navigasi.
Berlaku untuk: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Artikel ini dimaksudkan untuk membantu pengguna yang terbiasa dengan Splunk mempelajari Bahasa Kueri Kusto untuk menulis kueri log dengan Kusto. Perbandingan langsung dibuat antara keduanya untuk menyoroti perbedaan dan kesamaan utama, sehingga Anda dapat membangun pengetahuan yang ada.
Struktur dan konsep
Tabel berikut membandingkan konsep dan struktur data antara log Splunk dan Kusto:
| Konsep | Splunk | Kusto | Comment |
|---|---|---|---|
| unit implementasi | kluster | kluster | Kusto memungkinkan kueri lintas kluster secara bebas. Splunk tidak melakukannya. |
| cache data | buckets | kebijakan pengelolaan cache dan retensi | Mengontrol periode dan tingkat caching untuk data. Pengaturan ini secara langsung memengaruhi performa kueri dan biaya penyebaran. |
| partisi data secara logis | indeks | database | Memungkinkan pemisahan data yang logis. Kedua implementasi memungkinkan penggabungan dan penyatuan melintasi partisi-partisi ini. |
| metadata peristiwa terstruktur | N/A | tabel | Splunk tidak mengekspos konsep metadata peristiwa ke bahasa pencarian. Log Kusto memiliki konsep tabel, yang memiliki kolom. Setiap instance dari peristiwa dipetakan ke dalam satu baris. |
| rekaman | acara | baris | Perubahan terminologi saja. |
| atribut catatan | field | kolom | Di Kusto, pengaturan ini telah ditentukan sebelumnya sebagai bagian dari struktur tabel. Dalam Splunk, setiap event memiliki serangkaian fieldnya sendiri. |
| Tipe | tipe data | tipe data | Jenis data Kusto lebih eksplisit karena diatur pada kolom. Keduanya memiliki kemampuan untuk bekerja secara dinamis dengan jenis data dan kumpulan jenis data yang kira-kira setara, termasuk dukungan JSON. |
| kueri dan pencarian | cari | kueri | Konsep pada dasarnya sama antara Kusto dan Splunk. |
| waktu pemrosesan peristiwa | waktu sistem | ingestion_time() |
Di Splunk, setiap peristiwa mendapatkan tanda waktu sistem saat peristiwa diindeks. Di Kusto, Anda dapat menentukan kebijakan yang disebut ingestion_time yang mengekspos kolom sistem yang dapat dirujuk melalui fungsi ingestion_time(). |
Functions
Tabel berikut menentukan fungsi di Kusto yang setara dengan fungsi Splunk.
| Splunk | Kusto | Comment |
|---|---|---|
strcat |
strcat() |
(1) |
split |
split() |
(1) |
if |
iff() |
(1) |
tonumber |
todouble()tolong()toint() |
(1) |
upperlower |
toupper()tolower() |
(1) |
replace |
replace_string(), replace_strings(), atau replace_regex() |
(1) Meskipun replace fungsi mengambil tiga parameter di kedua produk, parameternya berbeda. |
substr |
substring() |
(1) Perhatikan juga bahwa Splunk menggunakan indeks berbasis satu. Kusto mencatat indeks berbasis nol. |
tolower |
tolower() |
(1) |
toupper |
toupper() |
(1) |
match |
matches regex |
(2) |
regex |
matches regex |
Di Splunk, regex adalah operator. Di Kusto, ini adalah operator relasional. |
searchmatch |
== | Di Splunk, searchmatch memungkinkan pencarian string yang tepat. |
random |
rand() rand(n) |
Fungsi Splunk mengembalikan angka antara nol hingga 231-1. Kusto mengembalikan angka antara 0,0 dan 1,0, atau jika parameter disediakan, antara 0 dan n-1. |
now |
now() |
(1) |
relative_time |
totimespan() |
(1) Di Kusto, yang setara dengan relative_time(datetimeVal, offsetVal) di Splunk adalah datetimeVal + totimespan(offsetVal).Misalnya, search | eval n=relative_time(now(), "-1d@d") menjadi .... | extend myTime = now() - totimespan("1d") |
(1) Di Splunk, fungsi dipanggil dengan menggunakan eval operator. Di Kusto, ini digunakan sebagai bagian dari extend atau project.
(2) Di Splunk, fungsi dipanggil dengan menggunakan eval operator. Di Kusto, operator where dapat digunakan.
Para Operator
Bagian berikut memberikan contoh cara menggunakan operator yang berbeda di Splunk dan Kusto.
Nota
Dalam contoh berikut, kolom rule Splunk dipetakan ke tabel di Kusto, dan tanda waktu default Splunk dipetakan ke kolom Analitik Log ingestion_time().
Cari
Di Splunk, Anda dapat menghilangkan search kata kunci dan menentukan string yang tidak dikutip. Di Kusto, Anda harus memulai setiap kueri dengan find, string yang tidak dikutip adalah nama kolom, dan nilai pencarian harus berupa string yang dikutip.
| Produk | Operator | Example |
|---|---|---|
| Splunk | search |
search Session.Id="c8894ffd-e684-43c9-9125-42adc25cd3fc" earliest=-24h |
| Kusto | find |
find Session.Id=="c8894ffd-e684-43c9-9125-42adc25cd3fc" and ingestion_time()> ago(24h) |
Filter
Kueri log Kusto dimulai dari tataan hasil tabular yang filter diterapkan. Di Splunk, pemfilteran adalah operasi default pada indeks saat ini. Anda juga dapat menggunakan where operator di Splunk, tetapi kami tidak merekomendasikannya.
| Produk | Operator | Example |
|---|---|---|
| Splunk | search |
Event.Rule="330009.2" Session.Id="c8894ffd-e684-43c9-9125-42adc25cd3fc" _indextime>-24h |
| Kusto | where |
Office_Hub_OHubBGTaskError| where Session_Id == "c8894ffd-e684-43c9-9125-42adc25cd3fc" and ingestion_time() > ago(24h) |
Dapatkan n peristiwa atau baris guna inspeksi
Kueri log Kusto juga mendukung take sebagai alias ke limit. Di Splunk, jika hasilnya diurutkan, head mengembalikan hasil n pertama. Di Kusto, limit tidak diurutkan, tetapi mengembalikan baris n pertama yang ditemukan.
| Produk | Operator | Example |
|---|---|---|
| Splunk | head |
Event.Rule=330009.2| head 100 |
| Kusto | limit |
Office_Hub_OHubBGTaskError| limit 100 |
Dapatkan n peristiwa atau baris pertama yang diurutkan berdasarkan bidang atau kolom
Untuk hasil bawah, di Splunk, Anda menggunakan tail. Di Kusto, Anda dapat menentukan arah pemesanan dengan menggunakan asc.
| Produk | Operator | Example |
|---|---|---|
| Splunk | head |
Event.Rule="330009.2"| sort Event.Sequence| head 20 |
| Kusto | top |
Office_Hub_OHubBGTaskError| top 20 by Event_Sequence |
Memperluas tataan hasil dengan bidang atau kolom baru
Splunk memiliki eval fungsi, tetapi tidak sebanding dengan eval operator di Kusto.
eval Operator di Splunk dan extend operator di Kusto hanya mendukung fungsi skalar dan operator aritmatika.
| Produk | Operator | Example |
|---|---|---|
| Splunk | eval |
Event.Rule=330009.2| eval state= if(Data.Exception = "0", "success", "error") |
| Kusto | extend |
Office_Hub_OHubBGTaskError| extend state = iff(Data_Exception == 0,"success" ,"error") |
Rename
Kusto menggunakan project-rename operator untuk mengganti nama bidang. Dalam operator project-rename, kueri dapat memanfaatkan indeks apa pun yang telah dibuat sebelumnya untuk sebuah bidang. Splunk memiliki rename operator yang melakukan hal yang sama.
| Produk | Operator | Example |
|---|---|---|
| Splunk | rename |
Event.Rule=330009.2| rename Date.Exception as execption |
| Kusto | project-rename |
Office_Hub_OHubBGTaskError| project-rename exception = Date_Exception |
Memformat hasil dan proyeksi
Splunk menggunakan table perintah untuk memilih kolom mana yang akan disertakan dalam hasil. Kusto memiliki project operator yang melakukan hal yang sama dan banyak lagi.
| Produk | Operator | Example |
|---|---|---|
| Splunk | table |
Event.Rule=330009.2| table rule, state |
| Kusto | project |
Office_Hub_OHubBGTaskError| project exception, state |
Splunk menggunakan fields - perintah untuk memilih kolom mana yang akan dikecualikan dari hasil. Kusto memiliki project-away operator yang melakukan hal yang sama.
| Produk | Operator | Example |
|---|---|---|
| Splunk | fields - |
Event.Rule=330009.2| fields - quota, hightest_seller |
| Kusto | project-away |
Office_Hub_OHubBGTaskError| project-away exception, state |
Aggregation
Lihat daftar fungsi ringkasan agregasi yang tersedia.
| Operator Splunk | Contoh Splunk | Operator Kusto | Contoh Kusto |
|---|---|---|---|
stats |
search (Rule=120502.*)| stats count by OSEnv, Audience |
summarize |
Office_Hub_OHubBGTaskError| summarize count() by App_Platform, Release_Audience |
evenstats |
... | stats count_i by time, category | eventstats sum(count_i) AS count_total by _time_ |
join |
T2 | join kind=inner (T1) on _time | project _time, category, count_i, count_total |
Bergabung
join di Splunk memiliki batasan yang signifikan. Subkueri memiliki batas 10.000 hasil (diatur dalam file konfigurasi penyebaran), dan sejumlah ragam gabungan terbatas tersedia.
| Produk | Operator | Example |
|---|---|---|
| Splunk | join |
Event.Rule=120103* | stats by Client.Id, Data.Alias | join Client.Id max=0 [search earliest=-24h Event.Rule="150310.0" Data.Hresult=-2147221040] |
| Kusto | join |
cluster("OAriaPPT").database("Office PowerPoint").Office_PowerPoint_PPT_Exceptions| where Data_Hresult== -2147221040| join kind = inner (Office_System_SystemHealthMetadata| summarize by Client_Id, Data_Alias)on Client_Id |
Urutkan
Urutan sortir default adalah menaik. Untuk menentukan urutan turun, tambahkan tanda minus (-) sebelum nama bidang. Kusto juga mendukung penentuan di mana harus menempatkan null, baik di awal atau di akhir.
| Produk | Operator | Example |
|---|---|---|
| Splunk | sort |
Event.Rule=120103| sort -Data.Hresult |
| Kusto | order by |
Office_Hub_OHubBGTaskError| order by Data_Hresult, desc |
Pengembangan nilai ganda
Operator perluasan multinilai mirip di Splunk dan Kusto.
| Produk | Operator | Example |
|---|---|---|
| Splunk | mvexpand |
mvexpand solutions |
| Kusto | mv-expand |
mv-expand solutions |
Faset hasil, bidang yang menarik
Di Analitik Log di portal Microsoft Azure, hanya kolom pertama yang diekspos. Semua kolom tersedia melalui API.
| Produk | Operator | Example |
|---|---|---|
| Splunk | fields |
Event.Rule=330009.2| fields App.Version, App.Platform |
| Kusto | facets |
Office_Excel_BI_PivotTableCreate| facet by App_Branch, App_Version |
Deduplikasi
Di Kusto, Anda dapat menggunakan summarize arg_min() untuk membalikkan urutan rekaman mana yang dipilih.
| Produk | Operator | Example |
|---|---|---|
| Splunk | dedup |
Event.Rule=330009.2| dedup device_id sortby -batterylife |
| Kusto | summarize arg_max() |
Office_Excel_BI_PivotTableCreate| summarize arg_max(batterylife, *) by device_id |
Diagram waktu
Kusto dan Splunk sama-sama menggunakan operator timechart untuk memvisualisasikan data dari waktu ke waktu. Di Splunk, ia menggabungkan data selama interval waktu yang ditentukan dan dapat digunakan dengan berbagai fungsi statistik. Di Kusto, yang setara dicapai menggunakan fungsi summarize dan bin diikuti oleh operator timechart render.
| Produk | Operator | Example |
|---|---|---|
| Splunk | timechart |
index=StormEvents | where StartTime >= "2007-01-01" AND StartTime <= "2007-12-31" AND DamageCrops > 0 | bin span=7d StartTime | stats count as EventCount by StartTime | timechart span=7d count as EventCount |
| Kusto | timechart |
StormEvents | where StartTime between (datetime(2007-01-01) .. datetime(2007-12-31)) and DamageCrops > 0 | summarize EventCount = count() by bin(StartTime, 7d) | render timechart |
Konten terkait
- Telusuri tutorial tentang Bahasa Kueri Kusto.