Splunk a Kusto lekérdezési nyelvi térképéhezSplunk to Kusto Query Language map

Ebből a cikkből megtudhatja, hogy a splunk ismerő felhasználók hogyan írhatnak Kusto lekérdezési nyelvet a Kusto.This article is intended to assist users who are familiar with Splunk learn the Kusto Query Language to write log queries with Kusto. A két elem közötti közvetlen összehasonlítások kiemelik a legfontosabb különbségeket és a hasonlóságokat, így a meglévő ismereteit is felépítheti.Direct comparisons are made between the two to highlight key differences and similarities, so you can build on your existing knowledge.

Struktúra és fogalmakStructure and concepts

A következő táblázat összehasonlítja a splunk és a Kusto-naplók közötti fogalmakat és adatstruktúrákat:The following table compares concepts and data structures between Splunk and Kusto logs:

FogalomConcept SplunkSplunk KustoKusto MegjegyzésComment
üzembe helyezési egységdeployment unit clustercluster clustercluster A Kusto tetszőleges, több fürtre kiterjedő lekérdezéseket tesz lehetővé.Kusto allows arbitrary cross-cluster queries. A splunk nem.Splunk does not.
adatgyorsítótárakdata caches vödörbuckets gyorsítótárazási és adatmegőrzési szabályzatokcaching and retention policies Az adatpontok és a gyorsítótárazási szint szabályozása.Controls the period and caching level for the data. Ez a beállítás közvetlenül befolyásolja a lekérdezések teljesítményét, valamint az üzemelő példány költségeit.This setting directly affects the performance of queries and the cost of the deployment.
az adatlogikai partíciólogical partition of data indexindex adatbázisdatabase Lehetővé teszi az adatmennyiségek logikai elkülönítését.Allows logical separation of the data. Mindkét implementáció lehetővé teszi a szakszervezetek és az ezekhez való csatlakozást a partíciók között.Both implementations allow unions and joining across these partitions.
strukturált esemény metaadatainakstructured event metadata N.A.N/A tabletable A splunk nem teszi elérhetővé az esemény metaadatainak fogalmát a keresési nyelvre.Splunk doesn't expose the concept of event metadata to the search language. A Kusto-naplók egy tábla fogalmával rendelkeznek, amelynek vannak oszlopai.Kusto logs have the concept of a table, which has columns. Minden Event-példány egy sorra van leképezve.Each event instance is mapped to a row.
adatrekorddata record eseményevent sorrow Csak a terminológia módosul.Terminology change only.
adatrekord-attribútumdata record attribute mezőfield oszlopcolumn A Kusto-ben ez a beállítás a tábla struktúrájának részeként van definiálva.In Kusto, this setting is predefined as part of the table structure. A splunk minden esemény saját mezőket tartalmaz.In Splunk, each event has its own set of fields.
typestypes adattípusdatatype adattípusdatatype A Kusto-adattípusok világosabbak, mert az oszlopokra vannak beállítva.Kusto data types are more explicit because they're set on the columns. Mindkettő képes dinamikusan dolgozni az adattípusokkal és nagyjából egyenértékű adattípusokkal, beleértve a JSON-támogatást is.Both have the ability to work dynamically with data types and roughly equivalent set of datatypes, including JSON support.
lekérdezés és keresésquery and search kereséssearch lekérdezésquery A fogalmak alapvetően azonosak a Kusto és a splunk között.Concepts essentially are the same between Kusto and Splunk.
esemény betöltésének idejeevent ingestion time rendszeridősystem time ingestion_time() A splunk-ben minden esemény az esemény indexelésének időpontjának időbélyegét kapja meg.In Splunk, each event gets a system timestamp of the time the event was indexed. A Kusto-ben meghatározhat egy ingestion_time nevű szabályzatot, amely egy olyan rendszeroszlopt tesz elérhetővé, amely a ingestion_time () függvénnyel hivatkozhat.In Kusto, you can define a policy called ingestion_time that exposes a system column that can be referenced through the ingestion_time() function.

FüggvényekFunctions

A következő táblázat a Kusto olyan függvényeit adja meg, amelyek a splunk függvényekkel egyenértékűek.The following table specifies functions in Kusto that are equivalent to Splunk functions.

SplunkSplunk KustoKusto MegjegyzésComment
strcat strcat() 1(1)
split split() 1(1)
if iff() 1(1)
tonumber todouble()
tolong()
toint()
1(1)
upper
lower
toupper()toupper()
tolower()
1(1)
replace replace() 1(1)
Azt is vegye figyelembe, hogy bár replace() három paramétert vesz igénybe mindkét termékben, a paraméterek eltérőek.Also note that although replace() takes three parameters in both products, the parameters are different.
substr substring() 1(1)
Azt is vegye figyelembe, hogy a splunk egy-alapú indexeket használ.Also note that Splunk uses one-based indices. A Kusto megjegyzései nulla alapú indexek.Kusto notes zero-based indices.
tolower tolower() 1(1)
toupper toupper() 1(1)
match matches regex (2)(2)
regex matches regex A splunk-ben regex egy operátor.In Splunk, regex is an operator. A Kusto-ben ez egy összehasonlító operátor.In Kusto, it's a relational operator.
searchmatch == A splunk searchmatch lehetővé teszi a pontos karakterlánc keresését.In Splunk, searchmatch allows searching for the exact string.
random rand()rand()
rand (n)rand(n)
A splunk függvénye nulla és 231– 1 közötti számot ad vissza.Splunk's function returns a number between zero to 231-1. A Kusto 0,0 és 1,0 közötti számot ad vissza, vagy ha paraméter van megadva, 0 és n – 1 között.Kusto's returns a number between 0.0 and 1.0, or if a parameter is provided, between 0 and n-1.
now now() 1(1)
relative_time totimespan() 1(1)
A Kusto-ben a splunk egyenértékű relative_time(datetimeVal, offsetVal) datetimeVal + totimespan(offsetVal) .In Kusto, Splunk's equivalent of relative_time(datetimeVal, offsetVal) is datetimeVal + totimespan(offsetVal).
A | például search eval n=relative_time(now(), "-1d@d") | válik ... extend myTime = now() - totimespan("1d") .For example, search | eval n=relative_time(now(), "-1d@d") becomes ... | extend myTime = now() - totimespan("1d").

(1) a splunk a függvényt a rendszer az operátor használatával hívja meg eval .(1) In Splunk, the function is invoked by using the eval operator. A Kusto-ben a vagy a részeként használatos extend project .In Kusto, it's used as part of extend or project.
(2) a splunk a függvényt a rendszer az operátor használatával hívja meg eval .(2) In Splunk, the function is invoked by using the eval operator. A Kusto-ben a kezelővel is használható where .In Kusto, it can be used with the where operator.

OperátorokOperators

A következő részekben példákat talál arra, hogyan használhatja a különböző operátorokat a splunk és a Kusto.The following sections give examples of how to use different operators in Splunk and Kusto.

Megjegyzés

A következő példákban a splunk mező a rule Kusto egyik táblájára mutat, és a splunk alapértelmezett időbélyeg-leképezése a logs Analytics ingestion_time() oszlopra.In the following examples, the Splunk field rule maps to a table in Kusto, and Splunk's default timestamp maps to the Logs Analytics ingestion_time() column.

A splunk kihagyhatja a search kulcsszót, és megadhat egy idézőjelet nem tartalmazó karakterláncot.In Splunk, you can omit the search keyword and specify an unquoted string. A Kusto-ben minden lekérdezést el kell indítania find , egy idézőjelet tartalmazó sztring egy oszlopnév, és a keresési értéknek idézőjeles sztringnek kell lennie.In Kusto, you must start each query with find, an unquoted string is a column name, and the lookup value must be a quoted string.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk search search Session.Id="c8894ffd-e684-43c9-9125-42adc25cd3fc" earliest=-24h
KustoKusto find find Session.Id=="c8894ffd-e684-43c9-9125-42adc25cd3fc" and ingestion_time()> ago(24h)

SzűrésFilter

A Kusto-naplók lekérdezése egy táblázatos eredményhalmaz alapján kezdődik, amelyben a filter rendszer alkalmazza.Kusto log queries start from a tabular result set in which filter is applied. A splunk-ben a szűrés az aktuális index alapértelmezett művelete.In Splunk, filtering is the default operation on the current index. Használhatja a where splunk operátort is, de nem ajánlott.You also can use the where operator in Splunk, but we don't recommend it.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk search Event.Rule="330009.2" Session.Id="c8894ffd-e684-43c9-9125-42adc25cd3fc" _indextime>-24h
KustoKusto where Office_Hub_OHubBGTaskError
| where Session_Id == "c8894ffd-e684-43c9-9125-42adc25cd3fc" and ingestion_time() > ago(24h)| where Session_Id == "c8894ffd-e684-43c9-9125-42adc25cd3fc" and ingestion_time() > ago(24h)

N esemény vagy sor beolvasása vizsgálathozGet n events or rows for inspection

A Kusto-naplózási lekérdezések aliasként is támogatják a következőt: take limit .Kusto log queries also support take as an alias to limit. Ha az eredmények rendezése megtörténik, a splunk head az első n eredményt adja vissza.In Splunk, if the results are ordered, head returns the first n results. A Kusto limit nem rendezi a sorrendet, de a rendszer a talált első n sort adja vissza.In Kusto, limit isn't ordered, but it returns the first n rows that are found.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk head Event.Rule=330009.2
| head 100| head 100
KustoKusto limit Office_Hub_OHubBGTaskError
| limit 100| limit 100

A mező vagy oszlop által rendezett első n esemény vagy sor beolvasásaGet the first n events or rows ordered by a field or column

Az alsó eredményekhez a splunk használja a következőt: tail .For the bottom results, in Splunk, you use tail. A Kusto megadhatja a sorrend irányát a használatával asc .In Kusto, you can specify ordering direction by using asc.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk head Event.Rule="330009.2"
| sort Event.Sequence| sort Event.Sequence
| head 20| head 20
KustoKusto top Office_Hub_OHubBGTaskError
| top 20 by Event_Sequence| top 20 by Event_Sequence

Az eredményhalmaz kiterjesztése új mezőkkel vagy oszlopokkalExtend the result set with new fields or columns

evalA splunk függvényt tartalmaz, de nem hasonlítható össze a eval Kusto-kezelővel.Splunk has an eval function, but it's not comparable to the eval operator in Kusto. Mind a eval splunk, mind a extend Kusto operátora csak skaláris funkciókat és aritmetikai operátorokat támogat.Both the eval operator in Splunk and the extend operator in Kusto support only scalar functions and arithmetic operators.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk eval Event.Rule=330009.2
| eval state= if(Data.Exception = "0", "success", "error")| eval state= if(Data.Exception = "0", "success", "error")
KustoKusto extend Office_Hub_OHubBGTaskError
| extend state = iif(Data_Exception == 0,"success" ,"error")| extend state = iif(Data_Exception == 0,"success" ,"error")

ÁtnevezésRename

A Kusto az project-rename operátor használatával nevezi át a mezőt.Kusto uses the project-rename operator to rename a field. A project-rename kezelőben a lekérdezés kihasználhatja a mezőhöz előre összeépített indexeket.In the project-rename operator, a query can take advantage of any indexes that are prebuilt for a field. renameA splunk operátora azonos.Splunk has a rename operator that does the same.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk rename Event.Rule=330009.2
| rename Date.Exception as execption| rename Date.Exception as execption
KustoKusto project-rename Office_Hub_OHubBGTaskError
| project-rename exception = Date_Exception| project-rename exception = Date_Exception

Eredmények és vetítés formázásaFormat results and projection

A splunk nem úgy tűnik, hogy az operátora hasonló a következőhöz: project-away .Splunk doesn't appear to have an operator that's similar to project-away. A felhasználói felület használatával kiszűrheti a mezőket.You can use the UI to filter out fields.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk table Event.Rule=330009.2
| table rule, state| table rule, state
KustoKusto project
project-away
Office_Hub_OHubBGTaskError
| project exception, state| project exception, state

ÖsszesítésAggregation

Tekintse meg a rendelkezésre álló aggregációs függvények listáját .See the list of aggregations functions that are available.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk stats search (Rule=120502.*)
| stats count by OSEnv, Audience| stats count by OSEnv, Audience
KustoKusto summarize Office_Hub_OHubBGTaskError
| summarize count() by App_Platform, Release_Audience| summarize count() by App_Platform, Release_Audience

CsatlakozásJoin

join a splunk jelentős korlátozásokkal rendelkezik.join in Splunk has substantial limitations. A segédlekérdezés 10 000-as (a telepítési konfigurációs fájlban beállított) korláttal rendelkezik, és korlátozott számú JOIN-íz érhető el.The subquery has a limit of 10,000 results (set in the deployment configuration file), and a limited number of join flavors are available.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk 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]| join Client.Id max=0 [search earliest=-24h Event.Rule="150310.0" Data.Hresult=-2147221040]
KustoKusto join cluster("OAriaPPT").database("Office PowerPoint").Office_PowerPoint_PPT_Exceptions
| where Data_Hresult== -2147221040| where Data_Hresult== -2147221040
| join kind = inner (Office_System_SystemHealthMetadata| join kind = inner (Office_System_SystemHealthMetadata
| summarize by Client_Id, Data_Alias)on Client_Id| summarize by Client_Id, Data_Alias)on Client_Id

RendezésSort

A splunk-ben a növekvő sorrendű rendezéshez a kezelőt kell használnia reverse .In Splunk, to sort in ascending order, you must use the reverse operator. A Kusto emellett azt is támogatja, hogy hová kell helyezni a null értékeket az elején vagy a végén.Kusto also supports defining where to put nulls, either at the beginning or at the end.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk sort Event.Rule=120103
| sort Data.Hresult| sort Data.Hresult
| reverse| reverse
KustoKusto order by Office_Hub_OHubBGTaskError
| order by Data_Hresult, desc| order by Data_Hresult, desc

Többértékes KibontásMultivalue expand

A többértékű Expand operátor a splunk és a Kusto esetében is hasonló.The multivalue expand operator is similar in both Splunk and Kusto.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk mvexpand mvexpand solutions
KustoKusto mv-expand mv-expand solutions

Eredmény dimenziók, érdekes mezőkResult facets, interesting fields

A Azure Portal Log Analyticsban csak az első oszlop van kitéve.In Log Analytics in the Azure portal, only the first column is exposed. Az összes oszlop elérhető az API-n keresztül.All columns are available through the API.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk fields Event.Rule=330009.2
| fields App.Version, App.Platform| fields App.Version, App.Platform
KustoKusto facets Office_Excel_BI_PivotTableCreate
| facet by App_Branch, App_Version| facet by App_Branch, App_Version

DeduplikálásaDeduplicate

A Kusto segítségével summarize arg_min() megfordíthatja, hogy melyik rekord legyen kiválasztva.In Kusto, you can use summarize arg_min() to reverse the order of which record is chosen.

TermékProduct OperátorOperator PéldaExample
SplunkSplunk dedup Event.Rule=330009.2
| dedup device_id sortby -batterylife| dedup device_id sortby -batterylife
KustoKusto summarize arg_max() Office_Excel_BI_PivotTableCreate
| summarize arg_max(batterylife, *) by device_id| summarize arg_max(batterylife, *) by device_id

További lépésekNext steps