Skip to content

Tham Chiếu Hàm

Sử dụng hàm bên trong lệnh eval để biến đổi giá trị trường.

Tham Chiếu Nhanh

HàmĐối sốTrả vềMô tả
lower(string)1 (String)StringChuyển sang chữ thường
upper(string)1 (String)StringChuyển sang chữ hoa
len(string)1 (String)IntLấy độ dài byte của chuỗi
decode_url(string)1 (String)StringGiải mã phần trăm URL encoding
decode_hex(string)1 (String)StringGiải mã hex sang UTF-8
base64_decode(string)1 (String)StringGiải mã Base64 sang UTF-8
match(string, regex)2 (String, String)IntPhối hợp biểu thức chính quy (1=có, 0=không, NULL nếu lỗi)

lower

Chuyển chuỗi sang chữ thường.

Cú pháp:

bql
| eval result = lower(field)

Đối số:

TênKiểuMô tả
fieldStringGiá trị cần chuyển đổi

Kiểu trả về: String

Ví dụ:

bql
| eval lowered = lower(status)

Nếu status"ERROR", kết quả là "error".

Trường hợp sử dụng: Chuẩn hóa giá trị trước khi so sánh hoặc nhóm.


upper

Chuyển chuỗi sang chữ hoa.

Cú pháp:

bql
| eval result = upper(field)

Đối số:

TênKiểuMô tả
fieldStringGiá trị cần chuyển đổi

Kiểu trả về: String

Ví dụ:

bql
| eval upper_host = upper(host)

Nếu host"web-01", kết quả là "WEB-01".

Trường hợp sử dụng: Chuẩn hóa giá trị để hiển thị đồng nhất.


len

Trả về độ dài byte của chuỗi.

Cú pháp:

bql
| eval length = len(field)

Đối số:

TênKiểuMô tả
fieldStringChuỗi cần đo

Kiểu trả về: Int

Ví dụ:

bql
| eval name_len = len(user)

Nếu user"alice", kết quả là 5.

Trả NULL nếu đầu vào là NULL.

Trường hợp sử dụng: Lọc hoặc sắp xếp theo độ dài chuỗi, phát hiện trường trống.


decode_url

Giải mã chuỗi URL encoding bằng phần trăm.

Cú pháp:

bql
| eval decoded = decode_url(field)

Đối số:

TênKiểuMô tả
fieldStringChuỗi URL encoding

Kiểu trả về: String

Ví dụ:

bql
| eval url = decode_url(query_name)

Nếu query_name"hello%20world", kết quả là "hello world".

Trả NULL nếu đầu vào là NULL.

Trường hợp sử dụng: Giải mã tham số truy vấn, đường dẫn hoặc tên miền URL encoding.


decode_hex

Giải mã chuỗi hex encoding sang UTF-8.

Cú pháp:

bql
| eval decoded = decode_hex(field)

Đối số:

TênKiểuMô tả
fieldStringChuỗi hex encoding

Kiểu trả về: String

Ví dụ:

bql
| eval decoded = decode_hex(cmdline)

Nếu cmdline"48656c6c6f", kết quả là "Hello".

Trả NULL nếu đầu vào là NULL hoặc chứa ký tự hex không hợp lệ.

Trường hợp sử dụng: Giải mã lệnh bị che giấu, payload hex encoding hoặc trường log đã mã hóa.


base64_decode

Giải mã chuỗi Base64 encoding sang UTF-8.

Cú pháp:

bql
| eval decoded = base64_decode(field)

Đối số:

TênKiểuMô tả
fieldStringChuỗi Base64 encoding

Kiểu trả về: String

Ví dụ:

bql
| eval decoded = base64_decode(payload)

Nếu payload"SGVsbG8=", kết quả là "Hello".

Trả NULL nếu đầu vào là NULL hoặc chứa Base64 không hợp lệ.

Trường hợp sử dụng: Giải mã tiêu đề email Base64 encoding, token API hoặc payload đã mã hóa.


match

Kiểm tra xem chuỗi có khớp với biểu thức chính quy (regular expression) hay không.

Cú pháp:

bql
| eval result = match(field, "regex_pattern")

Đối số:

TênKiểuMô tả
fieldStringGiá trị cần kiểm tra
patternStringBiểu thức chính quy (cú pháp Rust regex)

Kiểu trả về: Int

Trả về:

  • 1 nếu chuỗi khớp với mẫu
  • 0 nếu không khớp
  • NULL nếu một trong hai đầu vào là NULL hoặc regex không hợp lệ

Ví dụ:

bql
| eval is_ip = match(src_ip, "^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+$")

Nếu src_ip"10.0.0.1", kết quả là 1.

bql
| eval has_error = match(message, "error|fail|timeout")

Nếu message"connection timeout", kết quả là 1.

Trường hợp sử dụng: Trích xuất hoặc gắn cờ các giá trị khớp mẫu, kiểm tra định dạng trường, lọc bằng regex trong eval.


Chủ Đề Liên Quan

Released under the MIT License.