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 là "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 là "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 là "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 là "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 là "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 là "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 là "10.0.0.1", kết quả là 1.

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

Nếu message là "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.