Topik ini menjelaskan sintaks dasar dan contoh penggunaan fungsi string.
Simple Log Service mendukung fungsi string berikut.
Nama Fungsi | Sintaks | Deskripsi | Didukung SQL | Didukung SPL |
chr(x) | Mengonversi kode ASCII menjadi karakter. | √ | √ | |
codepoint(x) | Mengonversi karakter menjadi kode ASCII. | √ | √ | |
concat(x, y...) | Menggabungkan beberapa string menjadi satu string. | √ | √ | |
from_utf8(x) | Mendekode string biner ke format encoding UTF-8 dan mengganti karakter UTF-8 yang tidak valid dengan karakter default U+FFFD. | √ | √ | |
from_utf8(x, replace_string) | Mendekode string biner ke format encoding UTF-8 dan mengganti karakter UTF-8 yang tidak valid dengan string kustom. | √ | √ | |
length(x) | Menghitung panjang string. | √ | √ | |
levenshtein_distance(x, y) | Menghitung jarak edit minimum antara x dan y. | √ | × | |
lower(x) | Mengonversi string menjadi huruf kecil. | √ | √ | |
lpad(x, length, lpad_string) | Menambahkan karakter tertentu di awal string hingga mencapai panjang yang ditentukan, lalu mengembalikan string hasilnya. | √ | √ | |
ltrim(x) | Menghapus spasi dari awal string. | √ | √ | |
normalize(x) | Memformat string dalam format NFC. | √ | × | |
position(sub_string in x) | Mengembalikan posisi substring dalam sebuah string. | √ | × | |
replace(x, sub_string ) | Menghapus karakter yang cocok dari string. | √ | √ | |
replace(x, sub_string, replace_string) | Mengganti karakter yang cocok dalam string dengan karakter yang ditentukan. | √ | √ | |
reverse(x) | Mengembalikan string dalam urutan terbalik. | √ | √ | |
rpad(x, length, rpad_string) | Menambahkan karakter tertentu di akhir string hingga mencapai panjang yang ditentukan, lalu mengembalikan string hasilnya. | √ | √ | |
rtrim(x) | Menghapus spasi dari akhir string. | √ | √ | |
split(x, delimeter) | Memisahkan string menggunakan pemisah yang ditentukan dan mengembalikan kumpulan substring. | √ | √ | |
split(x, delimeter, limit) | Memisahkan string menggunakan pemisah yang ditentukan, membatasi jumlah pemisahan menggunakan limit, lalu mengembalikan kumpulan substring hasil pemisahan. | √ | √ | |
split_part(x, delimeter, part) | Memisahkan string menggunakan pemisah yang ditentukan dan mengembalikan konten pada posisi yang ditentukan. | √ | √ | |
split_to_map(x, delimiter01, delimiter02) | Memisahkan string menggunakan pemisah pertama yang ditentukan, lalu memisahkan kembali string tersebut menggunakan pemisah kedua yang ditentukan. | √ | √ | |
strpos(x, sub_string) | Mengembalikan posisi substring dalam sebuah string. Fungsi ini setara dengan fungsi position(sub_string in x). | √ | √ | |
substr(x, start) | Mengembalikan substring dari posisi yang ditentukan dalam string. | √ | √ | |
substr(x, start, length) | Mengembalikan substring dengan panjang tertentu dari posisi yang ditentukan dalam string. | √ | √ | |
to_utf8(x) | Mengonversi string ke format encoding UTF-8. | √ | √ | |
trim(x) | Menghapus spasi dari awal dan akhir string. | √ | √ | |
upper(x) | Mengonversi string menjadi huruf kapital. | √ | √ | |
csv_extract_map(x, delimeter, quote, keys) | Ekstrak informasi CSV satu baris dari string target. | √ | × | |
ilike(x, pattern) | Memeriksa apakah string cocok dengan pola karakter yang ditentukan. Pemeriksaan ini tidak membedakan huruf besar/kecil. | √ | √ | |
str_uuid() | Menghasilkan ID acak 128-bit dan mengembalikannya dalam format string. | × | √ | |
gzip_compress(data, compression_level) | Menerima objek string, mengompresinya menggunakan algoritma GZIP, dan mengembalikan aliran biner terkompresi. | × | √ | |
gzip_decompress(binary_data) | Menerima data biner terkompresi GZIP (Varbinary) dan mendekompresinya. | × | √ |
Fungsi chr
Fungsi chr mengonversi kode ASCII menjadi karakter.
Sintaks
chr(x)Parameter
Parameter | Deskripsi |
x | Kode ASCII. |
Tipe nilai kembalian
varchar.
Contoh
Periksa apakah nilai field region diawali dengan huruf c. Kode ASCII 99 merepresentasikan huruf kecil c.
Field contoh
region:cn-shanghaiPernyataan kueri dan analisis (Test)
* | SELECT substr(region, 1, 1) = chr(99)Hasil kueri dan analisis

Fungsi codepoint
Fungsi codepoint mengonversi karakter menjadi kode ASCII.
Sintaks
codepoint(x)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
Tipe nilai kembalian
integer.
Contoh
Periksa apakah nilai field region diawali dengan huruf c. Kode ASCII 99 merepresentasikan huruf kecil c.
Field contoh
upstream_status:200Pernyataan kueri dan analisis (Test)
* | SELECT codepoint(cast (substr(region, 1, 1) AS char(1))) = 99Hasil kueri dan analisis

Fungsi concat
Fungsi concat menggabungkan beberapa string menjadi satu string.
Sintaks
concat(x, y...)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
y | Nilainya bertipe varchar. |
Tipe nilai kembalian
varchar.
Contoh
Gabungkan nilai field region dan field request_method.
Field contoh
region:cn-shanghai time:14/Jul/2021:02:19:40Pernyataan kueri dan analisis (Test)
* | SELECT concat(region, '-', time)Hasil kueri dan analisis

Fungsi from_utf8
Fungsi from_utf8 mendekode string biner ke format encoding UTF-8.
Sintaks
Ganti karakter UTF-8 yang tidak valid dengan karakter default U+FFFD.
from_utf8(x)Ganti karakter UTF-8 yang tidak valid dengan karakter kustom.
from_utf8(x,replace_string)
Parameter
Parameter | Deskripsi |
x | Nilainya bertipe binary. |
replace_string | String yang digunakan untuk penggantian. String ini hanya boleh berupa satu karakter atau spasi. |
Tipe nilai kembalian
varchar.
Contoh
Dekode string biner 0x80 ke format encoding UTF-8 dan ganti karakter UTF-8 yang tidak valid dalam hasilnya dengan karakter default U+FFFD. Karakter U+FFFD ditampilkan sebagai karakter pengganti.
Pernyataan kueri dan analisis (Test)
* | SELECT from_utf8(from_base64('0x80'))Hasil kueri dan analisis

Dekode string biner 0x80 ke format encoding UTF-8 dan ganti karakter UTF-8 yang tidak valid dalam hasilnya dengan 0.
Pernyataan kueri dan analisis (Test)
* | SELECT from_utf8(from_base64('0x80'), '0')Hasil kueri dan analisis

Fungsi length
Fungsi length menghitung panjang string.
Sintaks
length(x)Parameter
Parameter | |
x | Nilainya bertipe varchar. |
Tipe nilai kembalian
bigint.
Contoh
Hitung panjang nilai field http_user_agent.
Field contoh
http_user_agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2Pernyataan kueri dan analisis (Test)
* | SELECT length(http_user_agent)Hasil kueri dan analisis

Fungsi levenshtein_distance
Fungsi levenshtein_distance menghitung jarak edit minimum antara dua string.
Sintaks
levenshtein_distance(x, y)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
y | Nilainya bertipe varchar. |
Tipe nilai kembalian
bigint.
Contoh
Hitung jarak edit minimum antara nilai field instance_id dan nilai field owner_id.
Field contoh
instance_id:i-01 owner_id:owner-01Pernyataan kueri dan analisis (Test)
* | SELECT levenshtein_distance(owner_id, instance_id)Hasil kueri dan analisis

fungsi lower
Fungsi lower mengonversi string menjadi huruf kecil.
Sintaks
lower(x)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
Tipe nilai kembalian
varchar.
Contoh
Konversi nilai field request_method menjadi huruf kecil.
Contoh bidang
request_method:GETPernyataan kueri dan analisis (Test)
* | SELECT lower(request_method)Hasil kueri dan analisis

Fungsi lpad
Fungsi lpad menambahkan karakter tertentu di awal string hingga mencapai panjang yang ditentukan.
Sintaks
lpad(x, length, lpad_string)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
length | Bilangan bulat yang menentukan panjang string hasil.
|
lpad_string | Karakter baru untuk penambahan. |
Tipe nilai kembalian
varchar.
Contoh
Tambahkan 0 di awal nilai field instance_id hingga total panjangnya 10 karakter.
Contoh bidang
instance_id:i-01Pernyataan kueri dan analisis (Test)
* | SELECT lpad(instance_id, 10, '0')Hasil kueri dan analisis

Fungsi ltrim
Fungsi ltrim menghapus spasi di awal string.
Sintaks
ltrim(x)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
Tipe nilai kembalian
varchar.
Contoh
Hapus spasi di awal nilai field region.
Field contoh
region: cn-shanghaiPernyataan kueri dan analisis (Test)
* | SELECT ltrim(region)Hasil kueri dan analisis

Fungsi normalize
Fungsi normalize memformat string dalam bentuk Normalization Form C (NFC).
Sintaks
normalize(x)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
Tipe nilai kembalian
varchar.
Contoh
Format string schön dalam bentuk NFC.
Pernyataan kueri dan analisis (Test)
* | SELECT normalize('schön')Hasil kueri dan analisis

Fungsi position
Fungsi position mengembalikan posisi substring target dalam sebuah string.
Sintaks
position(sub_string in x)Parameter
Parameter | Deskripsi |
sub_string | Substring target. |
x | Nilainya bertipe varchar. |
Tipe nilai kembalian
int. Nilainya berbasis 1. Jika substring target tidak ditemukan, fungsi mengembalikan 0.
Contoh
Temukan posisi substring cn dalam nilai field region.
Field contoh
region:cn-shanghaiPernyataan kueri dan analisis (Test)
* | SELECT position('cn' in region)Hasil kueri dan analisis

Fungsi replace
Fungsi replace menghapus karakter dari string atau menggantinya dengan karakter lain.
Sintaks
Menghapus karakter yang cocok dari string.
replace(x, sub_string)Mengganti semua kemunculan substring dengan string lain.
replace(x, sub_string, replace_string)
Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
sub_string | Substring target. |
replace_string | Substring yang digunakan untuk penggantian. |
Tipe nilai kembalian
varchar.
Contoh
Contoh 1: Ganti
cndalam nilai fieldregiondengan中国.Field contoh
region:cn-shanghaiPernyataan kueri dan analisis (Test)
* | select replace(region, 'cn', 'China')Hasil kueri dan analisis

Contoh 2: Hapus
cn-dari nilai fieldregion.Field contoh
region:cn-shanghaiPernyataan kueri dan analisis (Test)
* | select replace(region, 'cn-')Hasil kueri dan analisis

Fungsi reverse
Fungsi reverse mengembalikan string dalam urutan terbalik.
Sintaks
reverse(x)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
Tipe nilai kembalian
varchar.
Contoh
Balikkan nilai field request_method.
Field contoh
request_method:GETPernyataan kueri dan analisis (Test)
* | SELECT reverse(request_method)Hasil kueri dan analisis

Fungsi rpad
Fungsi rpad menambahkan karakter tertentu di akhir string hingga mencapai panjang yang ditentukan.
Sintaks
rpad(x, length, rpad_string)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
length | Bilangan bulat yang menentukan panjang string hasil.
|
rpad_string | Karakter baru untuk penambahan. |
Tipe nilai kembalian
varchar.
Contoh
Tambahkan 0 di akhir nilai field instance_id hingga total panjangnya 10 karakter.
Field contoh
instance_id:i-01Pernyataan kueri dan analisis (Test)
* | SELECT rpad(instance_id, 10, '0')Hasil kueri dan analisis

Fungsi rtrim
Fungsi rtrim menghapus spasi di akhir string.
Sintaks
rtrim(x)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
Tipe nilai kembalian
varchar.
Contoh
Hapus spasi di akhir nilai field instance_id.
Field contoh
instance_id:i-01Pernyataan kueri dan analisis (Test)
* | SELECT rtrim(instance_id)Hasil kueri dan analisis

Fungsi split
Fungsi split memisahkan string menggunakan pemisah yang ditentukan dan mengembalikan array substring hasilnya.
Sintaks
Memisahkan string menggunakan pemisah yang ditentukan.
split(x, delimeter)Memisahkan string menggunakan pemisah yang ditentukan menjadi jumlah substring tertentu.
split(x,delimeter,limit)
Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
delimeter | Pemisah. |
limit | Jumlah pemisahan. Nilainya harus bilangan bulat lebih besar dari 0. |
Tipe nilai kembalian
Tipe datanya adalah array.
Contoh
Contoh 1: Pisahkan nilai field
request_urimenjadi empat substring menggunakan garis miring (/) dan kembalikan array substring tersebut.Field contoh
request_uri:/request/path-1/file-9Pernyataan kueri dan analisis (Test)
* | SELECT split(request_uri, '/')Hasil kueri dan analisis

Contoh 2: Pisahkan nilai field
request_urimenjadi tiga substring menggunakan garis miring (/) dan kembalikan array substring tersebut.Field contoh
request_uri:/request/path-1/file-9Pernyataan kueri dan analisis (Test)
* | SELECT split(request_uri, '/', 3)Hasil kueri dan analisis

Fungsi split_part
Fungsi split_part memisahkan string menggunakan pemisah yang ditentukan dan mengembalikan substring pada posisi tertentu.
Sintaks
split_part(x, delimeter, part)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
delimeter | Pemisah. |
part | Bilangan bulat lebih besar dari 0. |
Tipe nilai kembalian
varchar.
Contoh
Pisahkan nilai field request_uri menggunakan tanda tanya (?) dan kembalikan substring pertama (path file). Lalu, hitung jumlah permintaan untuk setiap path.
Field contoh
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=18Pernyataan kueri dan analisis (Test)
* | SELECT count(*) AS PV, split_part(request_uri, '?', 1) AS Path GROUP BY Path ORDER BY pv DESCHasil kueri dan analisis

Fungsi split_to_map
Fungsi split_to_map memisahkan string menjadi pasangan kunci-nilai menggunakan dua pemisah yang ditentukan.
Sintaks
split_to_map(x, delimiter01, delimiter02)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
delimeter01 | Pemisah. |
delimeter02 | Pemisah. |
Tipe nilai kembalian
map.
Contoh
Pisahkan nilai field time menggunakan koma (,) dan titik dua (:). Hasilnya adalah map.
Contoh bidang
time:upstream_response_time:"80", request_time:"40"Pernyataan kueri dan analisis
* | SELECT split_to_map(time, ',', ':')Hasil kueri dan analisis

Fungsi strpos
Fungsi strpos mengembalikan posisi substring target dalam sebuah string. Fungsi ini setara dengan fungsi position.
Sintaks
strpos(x, sub_string)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
sub_string | Substring target. |
Tipe nilai kembalian
int. Nilainya berbasis 1. Jika substring target tidak ditemukan, fungsi mengembalikan 0.
Contoh
Temukan posisi huruf H dalam nilai field server_protocol.
Pernyataan kueri dan analisis (Test)
* | SELECT strpos(server_protocol, 'H')Hasil kueri dan analisis

Fungsi substr
Fungsi substr mengembalikan substring dari posisi tertentu dalam string.
Sintaks
Mengembalikan substring dari posisi awal tertentu hingga akhir string.
substr(x, start)Mengembalikan substring dengan panjang tertentu dari posisi awal tertentu.
substr(x,start,length)
Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
start | Posisi tempat substring mulai diekstraksi. Nilainya dimulai dari 1. |
length | Panjang substring. |
Tipe nilai kembalian
varchar.
Contoh
Ekstrak empat karakter pertama (HTTP) dari nilai field server_protocol. Lalu, hitung jumlah permintaan yang menggunakan protokol HTTP.
Field contoh
server_protocol:HTTP/2.0Pernyataan kueri dan analisis (Test)
* | SELECT substr(server_protocol, 1, 4) AS protocol, count(*) AS count GROUP BY server_protocolHasil kueri dan analisis

Fungsi to_utf8
Fungsi to_utf8 mengencode string menjadi representasi biner UTF-8.
Sintaks
to_utf8(x)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
Tipe nilai kembalian
varbinary.
Contoh
Encode string 'log' ke format UTF-8.
Pernyataan kueri dan analisis (Test)
* | SELECT to_utf8('log')Hasil kueri dan analisis

Fungsi trim
Fungsi trim menghapus spasi di awal dan akhir string.
Sintaks
trim(x)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
Tipe nilai kembalian
varchar.
Contoh
Hapus spasi di awal dan akhir nilai field instance_id.
Field contoh
instance_id: i-01Pernyataan kueri dan analisis (Test)
* | SELECT trim(instance_id)Hasil kueri dan analisis

Fungsi upper
Fungsi upper mengonversi string target menjadi huruf kapital.
Sintaks
upper(x)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
Tipe nilai kembalian
varchar.
Contoh
Konversi nilai field region menjadi huruf kapital.
Field contoh
region:cn-shanghaiPernyataan kueri dan analisis (Test)
* | SELECT upper(region)Hasil kueri dan analisis

Fungsi csv_extract_map
Fungsi csv_extract_map mengekstrak informasi CSV satu baris dari string target.
Sintaks
csv_extract_map(x, delimeter, quote, keys)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
delimeter | Pemisah CSV. Nilainya bertipe varchar dan panjangnya 1. |
quote | Kutipan CSV. Nilainya bertipe varchar dan panjangnya 1. |
keys | Nama kunci untuk output informasi CSV. Nilainya bertipe array. Jika jumlah elemen berbeda dengan jumlah informasi CSV dalam data, maka dikembalikan null. |
Tipe nilai kembalian
map(varchar, varchar).
Contoh
Ekstrak informasi CSV dari field content.
Field contoh
content: '192.168.0.100,"10/Jun/2019:11:32:16,127 +0800",example.aliyundoc.com'Pernyataan kueri dan analisis
select csv_extract_map(content, ',', '"', array['ip', 'time', 'host']) as itemData output

Fungsi ilike
Fungsi ilike memeriksa apakah string input cocok dengan pola karakter tertentu. Pemeriksaan ini tidak membedakan huruf besar/kecil.
Sintaks
ilike(x, pattern)Parameter
Parameter | Deskripsi |
x | Nilainya bertipe varchar. |
pattern | Pola karakter, yang mencakup string dan karakter wildcard. Tabel berikut menjelaskan karakter wildcard tersebut.
|
Tipe nilai kembalian
boolean
Contoh
Periksa apakah request_uri diakhiri dengan file-6.
Field contoh
request_uri: '/request/path-2/File-6'Pernyataan kueri dan analisis
select ilike(request_uri, '%file-6')Data output

Fungsi str_uuid
Fungsi str_uuid() menghasilkan ID acak 128-bit dan mengembalikannya sebagai string.
Sintaks
str_uuid()Nilai kembalian
Tipe nilai kembalian:
VARCHARFormat: String standar 36 karakter yang terdiri dari 32 digit heksadesimal dan empat tanda hubung (
-).Struktur contoh:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Contoh
Anda dapat menggunakan fungsi ini untuk menghasilkan banyak pengidentifikasi unik secara cepat di lingkungan staging.
* | extend uuid = str_uuid()Fungsi gzip_compress
Fungsi gzip_compress mengompres objek string menggunakan algoritma GZIP dan mengembalikan data biner terkompresi.
Sintaks
-- Metode 1: Level default (6)
gzip_compress(data)
-- Metode 2: Level yang ditentukan
gzip_compress(data, compression_level)Parameter
Parameter | Tipe | Deskripsi |
data | VARCHAR | String yang akan dikompresi. |
compression_level | BIGINT | Tingkat kompresi. Nilainya bilangan bulat dari 1 hingga 9. |
Nilai kembalian
Tipe nilai kembalian:
VARBINARYDeskripsi: Data biner terkompresi.
Contoh
Contoh 1: Kompresi dasar
* | extend compress_data = gzip_compress('Hello World')Contoh 2: Rasio kompresi maksimum untuk teks besar
Jika Anda memiliki log yang berisi puluhan ribu kata dan ruang penyimpanan menjadi pertimbangan, gunakan level
9:* | extend compress_data = gzip_compress('Hello World',9)
Fungsi gzip_decompress
Fungsi gzip_decompress mendekompresi data biner terkompresi GZIP (Varbinary).
Sintaks
gzip_decompress(binary_data)Parameter
binary_data harus merupakan data terkompresi GZIP yang valid, yang biasanya dihasilkan oleh gzip_compress. Jika input tidak dalam format GZIP standar, fungsi mengembalikan NULL.
Nilai kembalian
Tipe nilai kembalian:
VARCHARDeskripsi: Konten teks biasa asli yang telah didekompresi.
Contoh
Pipeline kompresi dan dekompresi sederhana:
* | extend original_content = gzip_decompress(gzip_compress('Hello SLS!')) -- Output: "Hello SLS!"