Bu konuda dize işlevlerinin temel sözdizimi ve örnekleri açıklanmaktadır.
Log Service aşağıdaki dize işlevlerini destekler.
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(x) | Bir ASCII kodunu bir karaktere dönüştürür. | √ | √ | |
codepoint(x) | Bir karakteri bir ASCII koduna dönüştürür. | √ | √ | |
concat(x, y...) | Birden çok dizeyi birleştirir. | √ | √ | |
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(x) | Bir dizenin uzunluğunu döndürür. | √ | √ | |
levenshtein_distance(x, y) | x ile y arasındaki minimum düzenleme mesafesini hesaplar. | √ | × | |
lower(x) | Bir dizeyi küçük harfe dönüştürür. | √ | √ | |
lpad(x, length, lpad_string) | Belirtilen bir uzunluğa ulaşmak için bir dizenin başına belirtilen bir dize ekler. | √ | √ | |
ltrim(x) | Bir dizenin başındaki boşlukları kaldırır. | √ | √ | |
normalize(x) | Bir dizeyi NFC formuna normalleştirir. | √ | × | |
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(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(x) | Bir dizeyi ters çevirir. | √ | √ | |
rpad(x, length, rpad_string) | Belirtilen bir uzunluğa ulaşmak için bir dizenin sonuna belirtilen bir dize ekler. | √ | √ | |
rtrim(x) | Bir dizenin sonundaki boşlukları kaldırır. | √ | √ | |
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(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(x, delimiter01, delimiter02) | Bir dizeyi iki ayırıcı kullanarak anahtar-değer çiftlerinden oluşan bir haritaya böler. | √ | √ | |
strpos(x, sub_string) | Bu işlev, position(sub_string in x) işlevinin diğer adıdır. | √ | √ | |
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(x) | Bir dizeyi UTF-8 ikili dizesine kodlar. | √ | √ | |
trim(x) | Bir dizenin başındaki ve sonundaki boşlukları kaldırır. | √ | √ | |
upper(x) | Bir dizeyi büyük harfe dönüştürür. | √ | √ | |
csv_extract_map(x, delimiter, quote, keys) | Bir CSV metin satırından belirtilen değerleri bir haritaya çıkarır. | √ | × | |
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() | Rastgele bir 128 bitlik UUID oluşturur ve bunu bir dize olarak döndürür. | × | √ | |
gzip_compress(data, compression_level) | GZIP algoritmasını kullanarak bir dizeyi ikili bir akışa sıkıştırır. | × | √ | |
gzip_decompress(binary_data) | GZIP ile sıkıştırılmış ikili bir akışı açarak orijinal dizeyi döndürür. | × | √ | |
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ı:
_col0sütunu için dönüş değeritrueolur; bu,regionalanının ilk karakterininchr(99)(ckarakteri) 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; |
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ı:
_col0sütunu iki satır veri döndürür ve her iki satırın değeri detrueolur.
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
_col0sütunu, örneğincn-shanghai-14/Jul/2021:01:16:30gibi 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
_col0sü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□4olan_col0adlı tek bir sütun döndürür. Kare kutu, doğru şekilde render edilemeyen bir baytı temsil eder; bu,from_utf8iş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 |
|
|
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
127olur; bu,http_user_agentalanı 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
5olur.
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ı
getolur.
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ı.
|
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,
_col0sütununun dönüş değeri000000i-01olur.
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ı
_col0ve değerschö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ı:
_col0sütunu1değerini döndürür; bu,cnalt dizesinincn-shanghaidizesinde 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:
regionalan değerindekicnifadesiniChinaile değiştirin.-
Örnek alan
region:cn-shanghai -
Sorgu ve analiz ifadesi (Debug)
* | select replace(region, 'cn', '中国') Sorgu ve analiz sonuçlarında,
_col0sütununun değeriChina-shanghaişeklindedir.
-
-
Örnek 2:
regionalan değerindencn-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.
|
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ı:
_col0sütunui-01000000değ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ı:
_col0sütununun dönüş değerii-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_urialan 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_urideğerinin/karakterine göre bölünmesiyle oluşturulan["" ,"request","path-1","file-9"]dizisini döndürür.
-
-
Örnek 2:
request_urialan 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-6için PV değeri 49,/request/path-2/file-0için PV değeri 47 ve/request/path-3/file-2iç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ı:
_col0sütunu, her ikisi de1değerine sahip iki satır veri döndürür; bu,server_protocolalanı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. |
|
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, |
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,
protocolsütununun değeriHTTPvecountsütununun değeri9078ş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,
_col0sütununun dönüş değeribG9nş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 |
|
delimiter |
Dizedeki değerleri ayıran tek bir |
|
quote |
Değerleri çevrelemek için kullanılan tek bir |
|
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:
|
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ü:
VARCHARBiç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ü:
VARBINARYAçı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
9dü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ü:
VARCHARAçı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 |
|
OR işleci sınırı |
|
|
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 |
|
Parametre türü |
|
|
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 |
|
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
errorhem detimeoutiçeren günlükleri bulun.* | SELECT * FROM log WHERE search('error AND timeout') -
Örnek 2:
statusalanının200olduğu günlükleri bulun.* | SELECT * FROM log WHERE search('status: 200') -
Örnek 3:
statusdeğeri200verequest_timedeğeri100değerinden büyük olan günlükleri bulmak içinsearch()işlevini bir SQL yüklemiyle birleştirin.* | SELECT * FROM log WHERE search('status: 200') AND request_time > 100Daha fazla bilgi için bkz. Tam metin araması gerçekleştirmek için arama işlevini kullanma.