Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sürüm açılan listesini kullanarak hizmetler arasında geçiş yapın. Gezinti hakkında daha fazla bilgi edinin.
Şunlar için geçerlidir: ✅ Microsoft Fabric ✅ Azure Veri Gezgini ✅ Azure İzleyici ✅ Microsoft Sentinel
Kusto Sorgu Dili (KQL), dize veri türlerini aramak için çeşitli sorgu işleçleri sunar. Aşağıdaki makalede dize terimlerinin dizine nasıl eklendiği açıklanır, dize sorgu işleçleri listelenir ve performansı iyileştirmeye yönelik ipuçları verilmektedir.
Dize terimlerini anlama
Kusto, türünde stringsütunlar da dahil olmak üzere tüm sütunları dizine ekler. Gerçek verilere bağlı olarak bu tür sütunlar için birden çok dizin oluşturulur. Bu dizinler doğrudan kullanıma sunulmaz, ancak , , stringgibi hashas!hasadlarının bir parçası olan hasprefix işleçlerle !hasprefix yapılan sorgularda kullanılır. Bu işleçlerin semantiği, sütunun kodlama şekline göre dikte edilir. "Düz" alt dize eşleştirmesi yapmak yerine, bu işleçler terimleri eşleştirir.
Terim nedir?
Varsayılan olarak, her string değer alfasayısal karakterlerin en üst düzey dizilerine ayrılır ve bu dizilerin her biri bir terime dönüştürülür.
Örneğin, aşağıdaki stringiçinde terimler Kusto, KustoExplorerQueryRunve aşağıdaki alt dizelerdir: ad67d136, c1db, 4f9f, 88ef, . d94f3b6b0b5a
Kusto: ad67d136-c1db-4f9f-88ef-d94f3b6b0b5a;KustoExplorerQueryRun
Kusto, üç veya daha fazla karakterden oluşan tüm terimlerden oluşan bir terim dizini oluşturur ve bu dizin , hasgibi !hasdize işleçleri tarafından kullanılır. Sorgu üç karakterden küçük bir terim ararsa veya işleç contains kullanırsa, sorgu sütundaki değerleri taramaya geri döner. Tarama, terim dizininde terimi aramaktan çok daha yavaştır.
Explorer
KustoExplorerQueryRunalt dizesi olsa da "KustoExplorerQueryRun" has "Explorer"false döndürürken "KustoExplorerQueryRun" contains "Explorer"truedöndürür. Bu çok incedir ancak davranış, has terim tabanlı olmasından kaynaklanır.
Dizelerdeki işleçler
Bu makalede aşağıdaki kısaltmalar kullanılır:
- RHS = ifadenin sağ tarafı
- LHS = ifadenin sol tarafı
Son eki olan _cs işleçler büyük/küçük harfe duyarlıdır.
| Operator | Açıklama | Büyük/Küçük Harfe Duyarlı | Örnek (verimler true) |
|---|---|---|---|
== |
Eşittir | Yes | "aBc" == "aBc" |
!= |
Eşit değil | Yes | "abc" != "ABC" |
=~ |
Eşittir | Hayır | "abc" =~ "ABC" |
!~ |
Eşit değil | Hayır | "aBc" !~ "xyz" |
contains |
RHS, LHS'nin bir alt dizi olarak oluşur | Hayır | "FabriKam" contains "BRik" |
!contains |
RHS LHS'de oluşmaz | Hayır | "Fabrikam" !contains "xyz" |
contains_cs |
RHS, LHS'nin bir alt dizi olarak oluşur | Yes | "FabriKam" contains_cs "Kam" |
!contains_cs |
RHS LHS'de oluşmaz | Yes | "Fabrikam" !contains_cs "Kam" |
endswith |
RHS, LHS'nin kapanış alt dizidir | Hayır | "Fabrikam" endswith "Kam" |
!endswith |
RHS, LHS'nin kapanış alt dizilerinden biri değildir | Hayır | "Fabrikam" !endswith "brik" |
endswith_cs |
RHS, LHS'nin kapanış alt dizidir | Yes | "Fabrikam" endswith_cs "kam" |
!endswith_cs |
RHS, LHS'nin kapanış alt dizilerinden biri değildir | Yes | "Fabrikam" !endswith_cs "brik" |
has |
Sağ taraf (RHS), sol taraftaki (LHS) tüm bir terimdir | Hayır | "North America" has "america" |
!has |
RHS, LHS'de tam bir terim değildir | Hayır | "North America" !has "amer" |
has_all |
has Aynı ancak tüm öğelerde çalışır |
Hayır | "North and South America" has_all("south", "north") |
has_any |
has Aynı ancak herhangi bir öğe üzerinde çalışır |
Hayır | "North America" has_any("south", "north") |
has_cs |
RHS, LHS'de tam bir terimdir | Yes | "North America" has_cs "America" |
!has_cs |
RHS, LHS'de tam bir terim değildir | Yes | "North America" !has_cs "amer" |
hasprefix |
RHS, LHS'de bir terim ön ekidir | Hayır | "North America" hasprefix "ame" |
!hasprefix |
RHS, LHS'de terim ön eki değildir | Hayır | "North America" !hasprefix "mer" |
hasprefix_cs |
RHS, LHS'de bir terim ön ekidir | Yes | "North America" hasprefix_cs "Ame" |
!hasprefix_cs |
RHS, LHS'de terim ön eki değildir | Yes | "North America" !hasprefix_cs "CA" |
hassuffix |
RHS, LHS'de bir terim sonekidir | Hayır | "North America" hassuffix "ica" |
!hassuffix |
RHS, LHS'de bir terim soneki değildir | Hayır | "North America" !hassuffix "americ" |
hassuffix_cs |
RHS, LHS'de bir terim sonekidir | Yes | "North America" hassuffix_cs "ica" |
!hassuffix_cs |
RHS, LHS'de bir terim soneki değildir | Yes | "North America" !hassuffix_cs "icA" |
in |
Öğelerden herhangi birine eşittir | Yes | "abc" in ("123", "345", "abc") |
!in |
Öğelerin hiçbirine eşit değildir | Yes | "bca" !in ("123", "345", "abc") |
in~ |
Öğelerden herhangi birine eşittir | Hayır | "Abc" in~ ("123", "345", "abc") |
!in~ |
Öğelerin hiçbirine eşit değildir | Hayır | "bCa" !in~ ("123", "345", "ABC") |
matches regex |
LHS, RHS için bir eşleşme içeriyor | Yes | "Fabrikam" matches regex "b.*k" |
startswith |
RHS, LHS'nin ilk alt dizisini oluşturur | Hayır | "Fabrikam" startswith "fab" |
!startswith |
RHS, LHS'nin ilk alt dizilerinden biri değildir | Hayır | "Fabrikam" !startswith "kam" |
startswith_cs |
RHS, LHS'nin ilk alt dizisini oluşturur | Yes | "Fabrikam" startswith_cs "Fab" |
!startswith_cs |
RHS, LHS'nin ilk alt dizilerinden biri değildir | Yes | "Fabrikam" !startswith_cs "fab" |
Performans ipuçları
Daha iyi performans için, aynı görevi yerine getiren iki işleç olduğunda büyük/küçük harfe duyarlı olanı kullanın. Örneğin:
- kullanma
==, kullanma=~ - kullanma
in, kullanmain~ - kullanma
hassuffix_cs, kullanmahassuffix
Daha hızlı sonuç almak için, alfasayısal olmayan karakterlerle bağlı bir simge veya alfasayısal sözcük olup olmadığını ya da bir alanın başlangıcını veya sonunu test ediyorsanız veya haskullanınin.
has, containsveya startswithdeğerinden endswithdaha hızlı çalışır.
IPv4 adreslerini veya ön eklerini aramak için, bu amaç için iyileştirilmiş IPv4 adreslerindeki özel işleçlerden birini kullanın.
Daha fazla bilgi için bkz . Sorgu en iyi yöntemleri.
Örneğin, bu sorgulardan ilki daha hızlı çalışır:
StormEvents | where State has "North" | count;
StormEvents | where State contains "nor" | count
IPv4 adreslerindeki işleçler
Aşağıdaki işleç grubu IPv4 adreslerinde veya ön eklerinde dizin hızlandırılmış arama sağlar.
| Operator | Açıklama | Örnek (verimler true) |
|---|---|---|
| has_ipv4 | LHS, RHS tarafından temsil edilen IPv4 adresini içerir | has_ipv4("Source address is 10.1.2.3:1234", "10.1.2.3") |
| has_ipv4_prefix | LHS, RHS tarafından temsil edilen ön ekle eşleşen bir IPv4 adresi içerir | has_ipv4_prefix("Source address is 10.1.2.3:1234", "10.1.2.") |
| has_any_ipv4 | LHS, RHS tarafından sağlanan IPv4 adreslerinden birini içerir | has_any_ipv4("Source address is 10.1.2.3:1234", dynamic(["10.1.2.3", "127.0.0.1"])) |
| has_any_ipv4_prefix | LHS, RHS tarafından sağlanan ön eklerden biriyle eşleşen bir IPv4 adresi içerir | has_any_ipv4_prefix("Source address is 10.1.2.3:1234", dynamic(["10.1.2.", "127.0.0."])) |