Tüm Ürünler
Search
Belge Merkezi

Simple Log Service:Dize işlevleri

Son Güncelleme:Sep 30, 2026

Bu konuda dize işlevlerinin temel sözdizimi ve örnekleri açıklanmaktadır.

Log Service aşağıdaki dize işlevlerini destekler.

Önemli

Analitik deyimlerde dizeler kullanmak istiyorsanız dizeleri tek tırnak içine ('') almanız gerekir. Tek tırnak içine alınmamış veya çift tırnak ("") içine alınmış dizeler alan adlarını veya sütun adlarını belirtir. Örneğin,

'status'

durum dizesini belirtirken

status

veya

"status"

durum günlük alanını belirtir.

İşlev

Sözdizimi

Açıklama

SQL

SPL

chr işlevi

chr(x)

Bir ASCII kodunu bir karaktere dönüştürür.

√

√

codepoint işlevi

codepoint(x)

Bir karakteri bir ASCII koduna dönüştürür.

√

√

concat işlevi

concat(x, y...)

Birden çok dizeyi birleştirir.

√

√

from_utf8 işlevi

from_utf8(x)

İkili bir dizeyi UTF-8 metni olarak çözer ve geçersiz karakterleri varsayılan değiştirme karakteri (U+FFFD) ile değiştirir.

√

√

from_utf8(x, replace_string)

İkili bir dizeyi UTF-8 metni olarak çözer ve geçersiz karakterleri özel bir dize ile değiştirir.

√

√

length işlevi

length(x)

Bir dizenin uzunluğunu döndürür.

√

√

levenshtein_distance işlevi

levenshtein_distance(x, y)

x ile y arasındaki minimum düzenleme mesafesini hesaplar.

√

×

lower işlevi

lower(x)

Bir dizeyi küçük harfe dönüştürür.

√

√

lpad işlevi

lpad(x, length, lpad_string)

Belirtilen bir uzunluğa ulaşmak için bir dizenin başına belirtilen bir dize ekler.

√

√

ltrim işlevi

ltrim(x)

Bir dizenin başındaki boşlukları kaldırır.

√

√

normalize işlevi

normalize(x)

Bir dizeyi NFC formuna normalleştirir.

√

×

position işlevi

position(sub_string in x)

Bir alt dizenin başka bir dize içindeki ilk oluşumunun başlangıç konumunu döndürür.

√

×

replace işlevi

replace(x, sub_string )

Belirtilen bir alt dizenin tüm oluşumlarını bir dizeden kaldırır.

√

√

replace(x, sub_string, replace_string)

Belirtilen bir alt dizenin tüm oluşumlarını bir değiştirme dizesiyle değiştirir.

√

√

reverse işlevi

reverse(x)

Bir dizeyi ters çevirir.

√

√

rpad işlevi

rpad(x, length, rpad_string)

Belirtilen bir uzunluğa ulaşmak için bir dizenin sonuna belirtilen bir dize ekler.

√

√

rtrim işlevi

rtrim(x)

Bir dizenin sonundaki boşlukları kaldırır.

√

√

split işlevi

split(x, delimiter)

Bir dizeyi bir ayırıcıya göre böler ve alt dizelerden oluşan bir dizi döndürür.

√

√

split(x, delimiter, limit)

Bir dizeyi belirtilen bir ayırıcıya göre böler, bölme sayısını kısıtlamak için limit parametresini kullanır ve ortaya çıkan alt dizelerden oluşan bir dizi döndürür.

√

√

split_part işlevi

split_part(x, delimiter, part)

Bir dizeyi bir ayırıcıya göre böler ve belirtilen konumdaki alt dizeyi döndürür.

√

√

split_to_map işlevi

split_to_map(x, delimiter01, delimiter02)

Bir dizeyi iki ayırıcı kullanarak anahtar-değer çiftlerinden oluşan bir haritaya böler.

√

√

strpos işlevi

strpos(x, sub_string)

Bu işlev, position(sub_string in x) işlevinin diğer adıdır.

√

√

substr işlevi

substr(x, start)

Belirtilen bir konumdan başlayarak bir dizeden bir alt dize çıkarır.

√

√

substr(x, start, length)

Belirtilen bir konumdan başlayarak bir dizeden belirtilen uzunlukta bir alt dize çıkarır.

√

√

to_utf8 işlevi

to_utf8(x)

Bir dizeyi UTF-8 ikili dizesine kodlar.

√

√

trim işlevi

trim(x)

Bir dizenin başındaki ve sonundaki boşlukları kaldırır.

√

√

upper işlevi

upper(x)

Bir dizeyi büyük harfe dönüştürür.

√

√

csv_extract_map işlevi

csv_extract_map(x, delimiter, quote, keys)

Bir CSV metin satırından belirtilen değerleri bir haritaya çıkarır.

√

×

ilike işlevi

ilike(x, pattern)

Büyük/küçük harfe duyarlı olmayan bir şekilde bir dizenin bir desenle eşleşip eşleşmediğini kontrol eder.

√

√

str_uuid işlevi

str_uuid()

Rastgele bir 128 bitlik UUID oluşturur ve bunu bir dize olarak döndürür.

×

√

gzip_compress işlevi

gzip_compress(data, compression_level)

GZIP algoritmasını kullanarak bir dizeyi ikili bir akışa sıkıştırır.

×

√

gzip_decompress işlevi

gzip_decompress(binary_data)

GZIP ile sıkıştırılmış ikili bir akışı açarak orijinal dizeyi döndürür.

×

√

search işlevi

search(search_expression)

Bir SQL analitik deyimi içindeki günlük verilerinde tam metin araması gerçekleştirir. Boole işlemlerini, alana özgü aramaları, bulanık sorguları ve aralık sorgularını destekler.

√

×

chr işlevi

chr işlevi bir ASCII kodunu bir karaktere dönüştürür.

Sözdizimi

chr(x)

Parametreler

Parametre

Açıklama

x

ASCII kodu.

Dönüş türü

varchar.

Örnek

region alanının değerinin ilk harfinin 'c' olup olmadığını belirler; burada 99, küçük harf 'c'nin ASCII kodudur.

  • Örnek alan

    region:cn-shanghai
  • Sorgu ve analiz deyimi (Test)

    * | SELECT
      substr(region, 1, 1) = chr(99)
  • Sorgu ve analiz sonuçları: _col0 sütunu için dönüş değeri true olur; bu, region alanının ilk karakterinin chr(99) (c karakteri) ile eşleştiğini gösterir.

Codepoint işlevi

codepoint işlevi bir karakteri bir ASCII koduna dönüştürür.

Sözdizimi

codepoint(x)

Parametreler

Parametre

Açıklama

x

Dönüştürülecek karakter; varchar türünde olmalıdır.

Dönüş değeri türü

integer.

Örnek

region alanının değerinin ilk harfinin 'c' olup olmadığını belirler; burada 99, küçük harf 'c'nin ASCII kodudur.

  • Örnek alan

    upstream_status:200
  • Sorgu deyimi (test)

    * | SELECT
      codepoint(cast (substr(region, 1, 1) AS char(1))) = 99
  • Sorgu ve analiz sonuçları: _col0 sütunu iki satır veri döndürür ve her iki satırın değeri de true olur.

Concat işlevi

Birden çok dizeyi tek bir dizede birleştirir.

Sözdizimi

concat(x, y...)

Parametreler

Parametre

Açıklama

x

Değer varchar türünde olmalıdır.

y

Değer varchar türünde olmalıdır.

Dönüş değeri türü

Dönülen değer varchar türündedir.

Örnek

region ve request_method alanlarının değerlerini tek bir dizede birleştirir.

  • Örnek alanlar

    region:cn-shanghai
    time:14/Jul/2021:02:19:40
  • Sorgu ve analiz deyimi (Test)

    * | SELECT
      concat(region, '-', time)
  • Sorgu ve analiz sonuçlarında _col0 sütunu, örneğin cn-shanghai-14/Jul/2021:01:16:30 gibi birleştirilmiş bir dize döndürür.

from_utf8 işlevi

İkili bir dizeyi UTF-8 kodlama biçimine çözer.

Sözdizimi

  • Geçersiz UTF-8 karakterlerini varsayılan değiştirme karakteri U+FFFD ile değiştirir.

    from_utf8(x)
  • Geçersiz UTF-8 karakterlerini belirtilen bir karakterle değiştirir.

    from_utf8(x,replace_string)

Parametreler

Parametre

Açıklama

x

Çözülecek ikili dize.

replace_string

Geçersiz UTF-8 karakterlerini değiştirmek için kullanılan isteğe bağlı tek bir karakter veya boşluk.

Dönüş değeri türü

varchar

Örnekler

  • 0x80 ikili dizesini çözer ve geçersiz UTF-8 karakterlerini varsayılan değiştirme karakteri (U+FFFD) ile değiştirir.

    • Sorgu ve analiz deyimi (Hata Ayıkla)

      * | SELECT
        from_utf8(from_base64('0x80'))
    • Sorgu ve analiz sonuçları: Sorgu, tek bir _col0 sütunu döndürür. Değer, değiştirme karakteri (U+FFFD) içeren bir dizedir; bu, geçersiz UTF-8 baytlarının varsayılan değiştirme karakteriyle değiştirildiği anlamına gelir.

  • 0x80 ikili dizesini çözer ve geçersiz UTF-8 karakterlerini '0' ile değiştirir.

    • Sorgu ve analiz deyimi (Hata Ayıkla)

      * | SELECT
        from_utf8(from_base64('0x80'), '0')
    • Sorgu ve analiz sonuçları, değeri 0□4 olan _col0 adlı tek bir sütun döndürür. Kare kutu, doğru şekilde render edilemeyen bir baytı temsil eder; bu, from_utf8 işlevinin geçersiz bir UTF-8 baytını değiştirdikten sonraki çıktısıdır.

Length işlevi

Bir dizenin uzunluğunu döndürür.

Sözdizimi

length(x)

Parametreler

Parametre

Açıklama

x

Bir varchar değeri.

Dönüş değeri

bigint

Örnek

http_user_agent alanı değerinin uzunluğunu hesaplar.

  • Örnek alan

    http_user_agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2
  • Sorgu deyimi (Test)

    * | SELECT
      length(http_user_agent)
  • Sorgu ve analiz sonucu 127 olur; bu, http_user_agent alanı değerinin dize uzunluğunu temsil eder.

levenshtein_distance

İki dize arasındaki minimum düzenleme mesafesini hesaplar.

Sözdizimi

levenshtein_distance(x, y)

Parametreler

Parametre

Açıklama

x

varchar türünde bir değer.

y

varchar türünde bir değer.

Dönüş değeri

bigint.

Örnek

instance_id ve owner_id alanlarının değerleri arasındaki minimum düzenleme mesafesini sorgular.

  • Örnek alanlar

    instance_id:i-01
    owner_id:owner-01
  • Sorgu ve analiz deyimi (hata ayıkla)

    * | SELECT
      levenshtein_distance(owner_id, instance_id)
  • Sorgu ve analiz sonucu 5 olur.

Lower işlevi

Bir dizeyi küçük harfe dönüştürür.

Sözdizimi

lower(x)

Parametreler

Parametre

Açıklama

x

Bir varchar dizesi.

Dönüş türü

varchar

Örnek

request_method alanının değerini küçük harfe dönüştürür.

  • Örnek alan

    request_method:GET
  • Sorgu ve analiz deyimi (Hata Ayıkla)

    * | SELECT
      lower(request_method)
  • Sorgu ve analiz sonuçları get olur.

lpad işlevi

lpad işlevi, bir dizenin sol tarafına belirtilen karakterleri ekleyerek belirtilen uzunluğa ulaştırır.

Sözdizimi

lpad(x, length, lpad_string)

Parametreler

Parametre

Açıklama

x

Değer varchar türünde olmalıdır.

length

Elde edilen dizenin istenen uzunluğunu belirten bir tamsayı.

  • Orijinal dize length değerinden kısa ise işlev dizenin sol tarafını doldurur.

  • Orijinal dize length değerinden uzun ise işlev dizeyi length karaktere kısaltır.

lpad_string

Doldurma için kullanılacak karakter veya dize.

Dönüş türü

varchar

Örnek

instance_id alan değerinin başına, toplam uzunluk 10 basamak olacak şekilde sıfır ekleyin.

  • Örnek alan

    instance_id:i-01
  • Sorgu ifadesi (Test)

    * | SELECT
      lpad(instance_id, 10, '0')
  • Sorgu ve analiz sonuçlarında, _col0 sütununun dönüş değeri 000000i-01 olur.

ltrim işlevi

Bir dizenin başındaki boşlukları kaldırır.

Söz dizimi

ltrim(x)

Parametreler

Parametre

Açıklama

x

Giriş dizesi. varchar türünde olmalıdır.

Dönüş değeri türü

varchar

Örnek

region alan değerinin başındaki boşlukları kaldırın.

  • Örnek alan

    region: cn-shanghai
  • Sorgu ve analiz ifadesi (Test)

    * | SELECT
      ltrim(region)
  • Sonuç cn-shanghai şeklindedir.

Normalize işlevi

Bir dizeyi Normalizasyon Formu C (NFC) formatını kullanarak normalize eder.

Söz dizimi

normalize(x)

Parametreler

Parametre

Açıklama

x

Normalize edilecek varchar dizesi.

Dönüş değeri türü

varchar.

Örnek

Bu örnek, schön dizesini NFC formatını kullanarak normalize eder.

  • Sorgu ifadesi (debug)

    * | SELECT
      normalize('schön')
  • Sorgu ve analiz sonuçları bir satır ve bir sütun döndürür; burada sütun adı _col0 ve değer schön şeklindedir.

Position işlevi

Bir dize içindeki alt dizenin başlangıç konumunu döndürür.

Söz dizimi

position(sub_string in x)

Parametreler

Parametre

Açıklama

sub_string

Aranacak alt dize.

x

Aranacak dize. varchar türünde olmalıdır.

Dönüş değeri türü

Alt dizenin 1 tabanlı başlangıç konumunu temsil eden bir tamsayı döndürür. Alt dize bulunamazsa işlev 0 döndürür.

Örnek

region alanında cn alt dizesinin konumunu bulun.

  • Örnek alan

    region:cn-shanghai
  • Sorgu ve analiz ifadesi (Test)

    * | SELECT
      position('cn' in region)
  • Sorgu ve analiz sonuçları: _col0 sütunu 1 değerini döndürür; bu, cn alt dizesinin cn-shanghai dizesinde 1. konumdan başladığını gösterir.

Replace işlevi

Replace işlevi, bir dizedeki belirtilen alt dizenin tüm oluşumlarını kaldırır veya değiştirir.

Söz dizimi

  • Bir dizeden bir alt dizenin tüm oluşumlarını kaldırır.

    replace(x, sub_string)
  • Bir alt dizenin tüm oluşumlarını başka bir dizeyle değiştirir.

    replace(x, sub_string, replace_string)

Parametreler

Parametre

Açıklama

x

Kaynak dize. Veri türü varchar olmalıdır.

sub_string

Kaldırılacak veya değiştirilecek alt dize.

replace_string

Yerine geçecek dize.

Dönüş değeri türü

varchar

Örnekler

  • Örnek 1: region alan değerindeki cn ifadesini China ile değiştirin.

    • Örnek alan

      region:cn-shanghai
    • Sorgu ve analiz ifadesi (Debug)

      * | select
        replace(region, 'cn', '中国')
    • Sorgu ve analiz sonuçlarında, _col0 sütununun değeri China-shanghai şeklindedir.

  • Örnek 2: region alan değerinden cn- ifadesini kaldırın.

    • Örnek alan

      region:cn-shanghai
    • Sorgu ve analiz ifadesi (Debug)

      * | select
        replace(region, 'cn-')
    • Sorgu ve analiz sonucu shanghai şeklindedir.

Reverse işlevi

Reverse işlevi, karakterleri ters sırada olan bir dize döndürür.

Söz dizimi

reverse(x)

Parametreler

Parametre

Açıklama

x

Giriş dizesi. varchar türünde olmalıdır.

Dönüş değeri türü

varchar

Örnek

request_method alan değerini ters çevirin.

  • Örnek alan

    request_method:GET
  • Sorgu ifadesi (Test)

    * | SELECT
      reverse(request_method)
  • Sonuç TEG şeklindedir.

rpad işlevi

Bir dizeyi belirtilen uzunluğa ulaşana kadar sağ tarafına belirtilen karakterlerle doldurur.

Söz dizimi

rpad(x, length, rpad_string)

Parametreler

Parametre

Açıklama

x

Kaynak dize. varchar türünde olmalıdır.

length

Elde edilen dizenin istenen uzunluğu. Tamsayı olarak belirtilir.

  • Orijinal dize length değerinden kısa ise işlev dizeyi sağdan doldurur.

  • Orijinal dize length değerinden uzun ise işlev dizeyi length karaktere kısaltır.

rpad_string

Doldurma için kullanılacak karakter veya dize.

Dönüş değeri türü

varchar.

Örnek

Aşağıdaki örnek, instance_id alan değerinin sonuna, toplam uzunluk 10 olacak şekilde sıfır ekler.

  • Örnek alan

    instance_id:i-01
  • Sorgu ifadesi (debug)

    * | SELECT
      rpad(instance_id, 10, '0')
  • Sorgu ve analiz sonuçları: _col0 sütunu i-01000000 değerini döndürür.

rtrim işlevi

Bir dizenin sonundaki boşlukları kaldırır.

Söz dizimi

rtrim(x)

Parametreler

Parametre

Açıklama

x

Kaynak dize. varchar türünde olmalıdır.

Dönüş türü

varchar

Örnek

Bu sorgu, instance_id alan değerinin sonundaki boşlukları kaldırır.

  • Örnek alan

    instance_id:i-01 
  • Sorgu ifadesi (debug)

    * | SELECT
      rtrim(instance_id)
  • Sorgu ve analiz sonuçları: _col0 sütununun dönüş değeri i-01 şeklindedir.

split işlevi

Split işlevi, bir ayırıcı kullanarak bir dizeyi alt dizelerden oluşan bir diziye böler.

Söz dizimi

  • Bir dizeyi ayırıcıya göre böler.

    split(x, delimiter)
  • Bir dizeyi ayırıcıya göre maksimum sayıda alt dizeye böler.

    split(x,delimiter,limit)

Parametreler

Parametre

Açıklama

x

Bölünecek varchar dizesi.

delimiter

Dizeyi bölmek için kullanılan ayırıcı.

limit

Döndürülecek maksimum alt dize sayısı. Değer pozitif bir tamsayı olmalıdır.

Dönüş değeri türü

array

Örnekler

  • Örnek 1: request_uri alan değerini eğik çizgi (/) kullanarak dört alt dizeye böler ve bu alt dizelerden oluşan bir dizi döndürür.

    • Örnek alan

      request_uri:/request/path-1/file-9
    • Sorgu ve analiz ifadesi (Test)

      * | SELECT
        split(request_uri, '/')
    • Sorgu ve analiz sonuçları: Sorgu, request_uri değerinin / karakterine göre bölünmesiyle oluşturulan ["" ,"request","path-1","file-9"] dizisini döndürür.

  • Örnek 2: request_uri alan değerini eğik çizgi (/) kullanarak 3 alt dizeye böler ve alt dizelerin bir koleksiyonunu döndürür.

    • Örnek alan

      request_uri:/request/path-1/file-9
    • Sorgu ve analiz ifadesi (Test)

      * | SELECT
        split(request_uri, '/', 3)
    • Sorgu ve analiz sonuçlarında, _col0 sütununun değeri ["","request","path-1/file-9"] şeklindedir.

Split_part işlevi

Bir dizeyi belirtilen ayırıcıya göre böler ve belirtilen dizindeki alt dizeyi döndürür.

Söz dizimi

split_part(x, delimiter, part)

Parametreler

Parametre

Açıklama

x

Bölünecek dize. Bu değer varchar türünde olmalıdır.

delimiter

Ayırıcı olarak kullanılan boş olmayan bir dize.

part

Döndürülecek alt dizenin 1 tabanlı dizinini belirten tamsayı ifadesi. Değer 0'dan büyük olmalıdır.

Dönüş değeri

varchar

Örnek

request_uri alan değerini soru işareti (?) kullanarak bölün ve ilk alt dizeyi (dosya yolu) döndürün. Ardından her yol için istek sayısını hesaplayın.

  • Örnek alanlar

    request_uri: /request/path-2/file-6?name=value&age=18
    request_uri: /request/path-2/file-0?name=value&age=18
    request_uri: /request/path-3/file-2?name=value&age=18
  • Sorgu ifadesi (Test)

    * | SELECT
      count(*) AS PV,
      split_part(request_uri, '?', 1) AS Path
    GROUP BY
      Path
    ORDER BY
      pv DESC
  • Sorgu ve analiz sonuçları: /request/path-2/file-6 için PV değeri 49, /request/path-2/file-0 için PV değeri 47 ve /request/path-3/file-2 için PV değeri 44'tür.

split_to_map işlevi

split_to_map işlevi, iki ayırıcı kullanarak anahtar-değer çiftlerinden oluşan bir dizeyi bir haritaya (map) ayrıştırır.

Söz dizimi

split_to_map(x, delimiter01, delimiter02)

Parametreler

Parametre

Açıklama

x

Ayrıştırılacak giriş dizesi. varchar türünde olmalıdır.

delimiter01

Anahtar-değer çiftlerini ayıran ayırıcı.

delimiter02

Her çiftte anahtarı değerden ayıran ayırıcı.

Dönüş türü

map

Örnek

Virgül (,) ve iki nokta üst üste (:) kullanarak time alan değerini bölün ve bir MAP döndürün.

  • Örnek alan

    upstream_response_time:"80",request_time:"40"
  • Sorgu ve analiz ifadesi

    * | SELECT
      split_to_map(time, ',', ':')
  • İşlev bir harita döndürür; bu harita, sorgu ve analiz sonuçlarında JSON formatında {"request_time":"\"40\"","upstream_response_time":"\"80\""} olarak görüntülenir.

Strpos işlevi

Strpos işlevi, bir dize içindeki alt dizenin başlangıç konumunu döndürür. Position işlevinin takma adıdır.

Söz dizimi

strpos(x, sub_string)

Parametreler

Parametre

Açıklama

x

Aranacak kaynak dize. varchar türünde olmalıdır.

sub_string

Aranacak alt dize.

Dönüş değeri türü

Alt dizenin 1 tabanlı başlangıç konumunu temsil eden bir tamsayı döndürür. Alt dize bulunamazsa 0 döndürür.

Örnek

Bu örnek, server_protocol alanında 'H' karakterinin konumunu bulur.

  • Sorgu ifadesi (Test)

    * | SELECT
      strpos(server_protocol, 'H')
  • Sorgu ve analiz sonuçları: _col0 sütunu, her ikisi de 1 değerine sahip iki satır veri döndürür; bu, server_protocol alanında H karakterinin ilk oluşumunun konumunun 1 olduğunu gösterir.

substr işlevi

Substr işlevi, belirtilen bir konumdan başlayarak bir dizeden bir alt dize çıkarır.

Söz dizimi

  • Belirtilen başlangıç konumundan dizenin sonuna kadar bir alt dize çıkarır.

    substr(x, start)
  • Belirtilen bir konumdan başlayarak belirli bir uzunluktaki bir alt dizeyi çıkarır.

    substr(x,start,length)

Parametreler

Parametre

Açıklama

x

Kaynak dize. varchar türünde olmalıdır.

start

Çıkarma işlemi için 1 tabanlı başlangıç konumu.

length

Çıkarılacak karakter sayısını belirten isteğe bağlı tamsayı. Bu parametre atlanırsa işlev, start konumundan dizenin sonuna kadar tüm karakterleri çıkarır.

Dönüş değeri türü

varchar.

Örnek

server_protocol alan değerinden ilk 4 karakteri (HTTP kısmını) çıkarın ve ardından HTTP isteklerinin sayısını hesaplayın.

  • Örnek alan

    server_protocol:HTTP/2.0
  • Sorgu ifadesi (Test)

    * | SELECT
      substr(server_protocol, 1, 4) AS protocol,
      count(*) AS count
    GROUP BY
      protocol
  • Sorgu ve analiz sonuçlarında, protocol sütununun değeri HTTP ve count sütununun değeri 9078 şeklindedir.

to_utf8 işlevi

Bir dizeyi UTF-8 ikili gösterimine kodlar.

Söz dizimi

to_utf8(x)

Parametreler

Parametre

Açıklama

x

Kodlanacak dize. varchar türünde olmalıdır.

Dönüş değeri türü

varbinary

Örnek

'log' dizesini UTF-8 formatına kodlayın.

  • Sorgu ifadesi (Test)

    * | SELECT
      to_utf8('log')
  • Sorgu ve analiz sonuçlarında, _col0 sütununun dönüş değeri bG9n şeklindedir.

Trim işlevi

Bir dizenin başındaki ve sonundaki boşlukları kaldırır.

Söz dizimi

trim(x)

Parametreler

Parametre

Açıklama

x

Giriş dizesi. varchar türünde olmalıdır.

Dönüş türü

varchar

Örnek

instance_id alan değerinin başındaki ve sonundaki boşlukları kaldırın.

  • Örnek alan

    instance_id: i-01 
  • Sorgu ve analiz ifadesi (Test)

    * | SELECT
      trim(instance_id)
  • Sorgu ve analiz sonuçları: i-01

Upper işlevi

Bir dizeyi büyük harfe dönüştürür.

Söz dizimi

upper(x)

Parametreler

Parametre

Açıklama

x

Değer varchar türünde olmalıdır.

Dönüş değeri türü

varchar

Örnek

Bu örnek, region alan değerini büyük harfe dönüştürür.

  • Örnek alan

    region:cn-shanghai
  • Sorgu ifadesi (Test)

    * | SELECT
      upper(region)
  • Sorgu ve analiz sonucu CN-SHANGHAI şeklindedir.

csv_extract_map işlevi

Csv_extract_map işlevi, tek satırlık bir CSV dizesini ayrıştırır ve bir harita döndürür.

Söz dizimi

csv_extract_map(x, delimiter, quote, keys)

Parametreler

Parametre

Açıklama

x

Tek satırlık CSV metnini içeren varchar dizesi.

delimiter

Dizedeki değerleri ayıran tek bir varchar karakteri.

quote

Değerleri çevrelemek için kullanılan tek bir varchar karakteri.

keys

Çıkarılan değerler için anahtar adlarını tanımlayan bir dize dizisi. Anahtar sayısı, CSV dizesindeki değer sayısıyla eşleşmelidir. Eşleşmezse işlev null döndürür.

Dönüş değeri türü

map(varchar, varchar)

Örnek

Bu örnek, content alanından CSV bilgilerini çıkarır.

  • Örnek alan

    content: '192.168.0.100,"10/Jun/2019:11:32:16,127 +0800",example.aliyundoc.com'
  • Sorgu ifadesi

    select csv_extract_map(content, ',', '"', array['ip', 'time', 'host']) as item
  • Çıktı verileri

    Sorgu aşağıdaki JSON kaydını döndürür: {"ip":"192.168.0.100","host":"example.aliyundoc.com","time":"10/Jun/2019:11:32:16,127 +0800"}.

ilike işlevi

Bir dizenin, büyük/küçük harf duyarlılığını yoksayarak belirtilen bir desenle eşleşip eşleşmediğini denetler.

Sözdizimi

ilike(x, pattern)

Parametreler

Parametre

Açıklama

x

Değerlendirilecek dize. varchar türünde olmalıdır.

pattern

Karakter deseni. Desen aşağıdaki joker karakterleri içerebilir:

  • Yüzde işareti (%) sıfır veya daha fazla karakterden oluşan herhangi bir diziyi eşleştirir.

  • Alt çizgi (_) tek bir karakteri eşleştirir.

Dönüş türü

boolean

Örnek

Bu örnekte, request_uri değerinin file-6 ile bitip bitmediği denetlenir.

  • Örnek alan

request_uri: '/request/path-2/File-6'
  • Sorgu deyimi

select ilike(request_uri, '%file-6')
  • Sorgu ve analiz sonuçları

Sorgu ve analiz sonucu true olarak döner; bu durum, request_uri değerinin file-6 ile bittiğini gösterir.

str_uuid

str_uuid() işlevi, rastgele bir 128 bitlik tanımlayıcıyı dize olarak döndürür.

Sözdizimi

str_uuid()

Dönüş değeri

  • Dönüş değeri türü: VARCHAR

  • Biçim: 32 onaltılık basamak ve 4 adet tire - içeren 36 karakterlik bir dize.

  • Yapı: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Örnek

Simüle edilmiş bir test ortamında çok sayıda benzersiz tanımlayıcı oluşturmak için:

* | extend uuid = str_uuid()

Gzip_compress işlevi

gzip_compress işlevi, bir dizeyi GZIP algoritması kullanarak sıkıştırır ve sıkıştırılmış ikili verileri döndürür.

Sözdizimi

-- Method 1: Default compression level (6)
gzip_compress(data)
-- Method 2: Specify compression level
gzip_compress(data, compression_level)

Parametreler

Parametre

Tür

Açıklama

data

VARCHAR

Sıkıştırılacak dize.

compression_level

BIGINT

Sıkıştırma düzeyi, 1 ile 9 arasında isteğe bağlı bir tamsayı.

Dönüş değeri

  • Dönüş değeri türü: VARBINARY

  • Açıklama: Sıkıştırılmış ikili veriler.

Örnekler

  • Örnek 1: Temel sıkıştırma

    * | extend compress_data =  gzip_compress('Hello World')
  • Örnek 2: Büyük metinlerde maksimum sıkıştırma elde etme

    Büyük bir günlükteki (on binlerce karakter) sıkıştırmayı en üst düzeye çıkarmak ve depolama alanından tasarruf etmek için 9 düzeyini kullanın:

    * | extend compress_data =  gzip_compress('Hello World',9)

gzip_decompress

gzip_decompress işlevi, GZIP ile sıkıştırılmış ikili verilerin (Varbinary) sıkıştırmasını açar ve orijinal düz metin içeriğini döndürür.

Sözdizimi

gzip_decompress(binary_data)

Parametreler

binary_data geçerli GZIP ile sıkıştırılmış veri olmalıdır; bu veri genellikle gzip_compress işlevi tarafından oluşturulur. Giriş standart GZIP biçiminde değilse işlev NULL döndürür.

Dönüş değeri

  • Dönüş değeri türü: VARCHAR

  • Açıklama: Sıkıştırma açıldıktan sonraki orijinal düz metin içeriği.


Örnek

  • Basit sıkıştırma ve sıkıştırma açma işlem hattı:

    * | extend original_content =  gzip_decompress(gzip_compress('Hello SLS!'))
    -- Output: "Hello SLS!"

Search işlevi

search işlevi, bir SQL analitik ifadesinde günlük verileri üzerinde tam metin araması gerçekleştirir. Standart bir SQL işlevi olarak boolean işlemleri, alan sorguları, bulanık sorgular ve aralık sorguları dahil olmak üzere karmaşık sorgu koşullarını destekler.

Sınırlamalar

Sınırlama

Açıklama

Alt sorgu başına sınır

Her alt sorguda (temel SELECT) yalnızca bir search() işlevi kullanabilirsiniz. Birden çok sorgu koşuluna ihtiyacınız varsa koşulları tek bir search() çağrısında birleştirin; örneğin, search('error AND timeout').

OR işleci sınırı

search() işlevi SQL OR işleci ile birleştirilemez. Ancak search() işlevi içinde OR işlecini kullanabilirsiniz. Örneğin, search('error OR warning') kullanımına izin verilir.

Bir dizin oluşturulur ve tarama modunda değildir.

Arama işlevi tarama modunda desteklenmez.

Sorgu sözdizimi çakışması

Sorgu sözdizimi girişi gerçek filtre koşulları içerdiğinde arama işlevini kullanamazsınız. Sorgu sözdizimi girişi boş olduğunda veya * olduğunda bu işlevi kullanabilirsiniz.

Parametre türü

search() işlevinin parametresi bir dize değişmez değeri olmalıdır. İşlev, sütun başvuruları, değişkenler veya işlev ifadeleri gibi dinamik değerleri desteklemez.

Parametre sayısı

İşlev tam olarak bir parametre almalıdır.

Sözdizimi

search(search_expression)

SQL analitik ifadesinde kullanım:

* | SELECT ... FROM log WHERE search('search_expression')

Önemli: Arama işlevi yalnızca WHERE yan tümcesinde kullanılabilir.

Parametreler

Parametre

Açıklama

search_expression

search_expression sorgu ifadesini temsil eden bir dize değişmez değeridir. SLS sorgu sözdizimine tamamen uygun olmalı ve Sorgu sözdizimi ve özellikleri bölümünde açıklanan tam metin sorguları, alan sorguları, Boolean işlemleri, bulanık sorgular ve aralık sorguları gibi aynı özellikleri sağlamalıdır.

Dönüş değeri türü

BOOLEAN türü. true değeri, geçerli satırın sorgu koşuluyla eşleştiğini; false değeri ise eşleşmediğini gösterir.

Örnekler

  • Örnek 1: Hem error hem de timeout içeren günlükleri bulun.

    * | SELECT * FROM log WHERE search('error AND timeout')
  • Örnek 2: status alanının 200 olduğu günlükleri bulun.

    * | SELECT * FROM log WHERE search('status: 200')
  • Örnek 3: status değeri 200 ve request_time değeri 100 değerinden büyük olan günlükleri bulmak için search() işlevini bir SQL yüklemiyle birleştirin.

    * | SELECT * FROM log
        WHERE search('status: 200') AND request_time > 100

    Daha fazla bilgi için bkz. Tam metin araması gerçekleştirmek için arama işlevini kullanma.