全部產品
Search
文件中心

Simple Log Service:函數總覽

更新時間:Oct 29, 2024

本文列舉資料加工任務所涉及的所有函數。

全域操作函數

函數分類

函數名稱

說明

流程式控制制函數

e_if

條件與操作組合。

  • 滿足條件則進行對應操作,不滿足條件則不進行對應操作,直接進行下一個條件判斷。

  • 對於某一條日誌,如果其中某一操作刪除了日誌,則不會再執行後續操作。

e_if_else

根據條件判斷的結果進行對應操作。

e_switch

條件與操作的組合。

  • 滿足條件則進行對應操作並返回結果,不滿足條件則不進行對應操作,直接進行下一個條件判斷。

  • 如果沒有滿足任何條件,但配置了預設參數,則執行預設配置的操作並返回結果。

  • 對於某一條日誌,如果其中某一操作刪除了日誌,則不會再執行後續操作。

e_compose

組合一系列操作。

  • 常用於e_if、e_switch、e_if_else中組合操作。

  • 依次叫用作業,將日誌傳遞轉換並返回最後的日誌。

  • 對於某一條日誌,如果其中某一操作刪除了日誌,則不會再執行後續操作。

事件操作函數

e_drop

根據條件判斷是否丟棄日誌。

e_keep

根據條件判斷是否保留日誌。

e_split

基於日誌欄位的值分裂出多條日誌,並且支援通過JMES提取欄位後再進行分裂。

e_output

輸出日誌到指定的Logstore中,並可配置輸出時的topic、source、tag和shard hash資訊。輸出後對應的日誌不再執行後面的加工規則。

e_coutput

輸出日誌到指定的Logstore中,並可配置輸出時的topic、source、tag和shard hash資訊。輸出後繼續執行後面的加工規則。

e_to_metric

將日誌格式轉化為時序儲存(MetricStore)的格式。

欄位操作函數

v

獲得日誌特定欄位的值。當同時傳入多個欄位名時,返回日誌中第一個存在的欄位的值。

e_set

添加新欄位或為現有欄位設定新的欄位值。

e_drop_fields

刪除合格日誌欄位。

e_keep_fields

保留合格日誌欄位。

e_pack_fields

打包日誌欄位,並輸出到新的欄位中。

e_rename

重新命名合格日誌欄位名稱。

欄位值提取函數

e_regex

根據Regex提取欄位的值並賦值給其他欄位。

e_json

對日誌特定欄位中的JSON對象進行JSON操作,包括JSON展開、JMES提取或者JMES提取後再展開。

e_kv

通過quote提取多個源欄位中的索引值對資訊。

e_kv_delimit

通過分隔字元提取源欄位中的索引值對資訊。

e_csv

使用自訂的分隔字元與預定義的欄位名,從特定欄位中提取多個欄位。預設分隔符號為半形逗號(,)。

e_tsv

使用自訂的分隔字元與預定義的欄位名,從特定欄位中提取多個欄位。預設分隔符號為\t

e_psv

使用自訂的分隔字元與預定義的欄位名,從特定欄位中提取多個欄位。預設分隔符號為豎線(|)。

e_syslogrfc

根據Syslog協議由已知priority值計算出facility和severity,並且匹配相應的level資訊。

e_anchor

使用定義的anchor_rules規則提取字串。

映射富化函數

e_dict_map

在映射關係的字典中,根據輸入的欄位對應出一個新欄位。

e_table_map

在映射表格中尋找對應的行,根據輸入的欄位返回欄位的值。

e_tablestore_map

以阿里雲Table Store(Tablestore)作為維表資料對原始日誌進行富化。

e_redis_map

以阿里雲Redis作為維表資料對原始日誌進行富化。

運算式函數

函數分類

函數名稱

說明

事件檢查函數

e_has

判斷日誌欄位是否存在。

e_not_has

判斷日誌欄位是否不存在。

e_search

提供一種簡化,類似Lucene文法的記錄搜尋方式。

e_match、e_match_all、e_match_any

判斷當前日誌欄位的值是否滿足Regex。

操作符函數

op_if

根據判斷條件返回不同運算式的值。

op_ifnull

返回第一個值不為None的運算式的值。

op_coalesce

返回第一個值不為None的運算式的值。

op_nullif

如果運算式1等於運算式2,返回None。否則返回運算式1的值。

op_and

使用邏輯運算and,對任意類型值進行真假判斷,所有參數值為真時返回True。

op_not

使用邏輯運算not,對任意類型值進行真假判斷,返回參數值的反義布爾值。

op_or

使用邏輯運算or,對任意類型值進行真假判斷。當任意參數值為真時返回True,所有參數值為假時返回False。

op_eq

按照a==b條件進行計算,返回True或False。

op_ge

按照a>=b條件進行計算,返回True或False。

op_gt

按照a>b條件進行計算,返回True或False。

op_le

按照a<=b條件進行計算,返回True或False。

op_lt

按照a<b條件進行計算,返回True或False。

op_ne

按照a!=b條件進行計算,返回True或False。

op_len

計算文本字串中的字元數,可用於字串和其他返回元組、列表、字典的運算式。

op_in

判斷字串、元組、列表或字典中是否包含特定元素,返回True或False。

op_not_in

判斷字串、元組、列表或字典中是否不包含特定元素,返回True或False。

op_slice

對指定字串、數組、元組進行截取。

op_index

根據字串、數組、元組的下標返回其對應的元素。

op_add

計算多個值的和,可以是字串或者數字等。

op_max

計算多個欄位或運算式表示的數值的最大值。

op_min

計算多個欄位或運算式表示的數值的最小值。

轉換函式

ct_int

將欄位或運算式的值轉換為整數。

ct_float

將欄位或運算式的值轉換為浮點數。

ct_str

將欄位或運算式的值轉換為字串。

ct_bool

將欄位或運算式值轉換為布爾值。

ct_chr

將欄位或運算式的ANSI值、Unicode值轉換為對應字元。

ct_ord

將欄位或運算式的字元轉換為對應ANSI值、Unicode值。

ct_hex

將欄位或運算式的數值轉換為十六進位數。

ct_oct

將欄位或運算式的數值轉換為八位元。

ct_bin

將欄位或運算式的數值轉換為位元。

bin2oct

將二進位位元組字串轉換為八進位字串。

bin2hex

將二進位位元組字串轉換為十六進位字串。

算術函數

op_abs

計算傳入值的絕對值。

op_div_floor

對傳入值進行整除運算。

op_div_true

對傳入值進行除法運算。

op_pow

對傳入值進行冪值計算。

op_mul

對傳入值進行乘法運算。

op_neg

計算傳入值的相反數。

op_mod

對傳入值進行模計算。

op_sub

對傳入值進行減法運算。

op_round

對傳入值進行四捨五入操作。

op_sum

對傳入值進行求和運算。

mat_ceil

對傳入值進行向上取整操作。

mat_exp

以常數e為底的指數函數。

mat_fabs

計算傳入值的絕對值。

mat_floor

對傳入值進行向下取整操作。

mat_log

計算傳入值的對數。

mat_log10

計算以10為基數的傳入值的對數。

mat_sqrt

計算傳入值的平方根。

mat_degrees

將弧度轉換為角度。

mat_radians

將角度轉換為弧度。

mat_sin

計算傳入值弧度的正弦值。

mat_cos

計算傳入值弧度的餘弦值。

mat_tan

計算傳入值弧度的正切值。

mat_acos

計算傳入值的反餘弦弧度值。

mat_asin

計算傳入值的反正弦弧度值。

mat_atan

計算傳入值的反正切弧度值。

mat_atan2

計算座標值的反正切值。

mat_atanh

計算傳入值的反雙曲正切值。

mat_hypot

計算傳入值的歐幾裡德範數。

字串函數

str_format

按照指定格式對字串進行格式化。

str_join

通過串連符將輸入的字串串連產生一個新的字串。

str_zip

將兩個值或運算式的字串進行並發分裂然後再合并成一個字串。

str_encode

按照指定的編碼格式對字串進行編碼。

str_decode

按照指定的編碼格式對傳入值進行解碼。

str_hex_escape_encode

轉義特殊字元,支援將十六進位字元轉義為中文字元。

str_sort

將指定的對象進行排序。

str_reverse

將一個字串進行反轉。

str_replace

根據規則將舊字串替換成新字串。

str_logtash_config_normalize

將Logstash配置語言轉成JSON格式。

str_translate

將字串中的指定字元按照對應關係進行替換。

str_strip

刪除字串中指定的字元。

str_lstrip

刪除字串開頭的指定字元。

str_rstrip

刪除字串結尾的指定字元。

str_lower

將字串中所有大寫字元轉換為小寫字元。

str_upper

將字串中所有小寫字元轉換為大寫字元。

str_title

將所有單詞的首個字母轉化為大寫,其餘字母均為小寫。

str_capitalize

將字串的第一個字母轉化為大寫,其他字母轉化為小寫。

str_swapcase

對字串的大小寫字母進行轉換。

str_count

統計字串裡某個字元出現的次數。

str_find

判斷原字串中是否包含指定的子字串。

str_rfind

尋找字串中指定字元最後一次出現的位置。

str_endswith

判斷字串是否以指定尾碼結尾。

str_startswith

判斷字串是否以指定字串開頭。

str_split

通過指定分隔字元對字串進行分割。

str_splitlines

通過分行符號對字串進行分割。

str_partition

根據指定的分隔字元將字串從左往右分割為三部分。

str_rpartition

根據指定的分隔字元將字串從右往左分割為三部分。

str_center

用指定字元將字串填充到指定長度。

str_ljust

用指定字元將字串從結尾填充至指定長度。

str_rjust

用指定字元將原字串從開頭填充至指定長度。

str_zfill

用字元0從開頭將字串填充至指定長度。

str_expandtabs

將字串中的\t轉為空白格。

str_isalnum

判斷字串是否僅由字母和數字組成。

str_isalpha

判斷字串是否僅由字母組成。

str_isascii

判斷字串是否在ASCII中。

str_isdecimal

判斷字串是否僅包含十進位字元。

str_isdigit

判斷字串是否僅由數字組成。

str_isidentifier

判斷字串是否是有效Python標識符,也可以用來判斷變數名是否合法。

str_islower

判斷字串是否由小寫字母組成。

str_isnumeric

判斷字串是否由數字組成。

str_isprintable

判斷字串中是否所有字元都是可列印字元。

str_isspace

判斷字串是否僅由空白字元組成。

str_istitle

判斷字串中所有單詞的拼字首字母是否為大寫,且其他字母為小寫。

str_isupper

字串中所有的字母是否都為大寫。

str_uuid

產生隨機UUID。

日期時間函數

dt_parse

將值或時間運算式的值轉換為日期時間對象。

dt_str

將值或時間運算式的值轉換為字串。

dt_parsetimestamp

將值或時間運算式的值轉換為Unix時間戳記。

dt_prop

擷取值或時間運算式值的特定屬性,包括所屬day、year等。

dt_now

擷取當前日期時間。

dt_today

擷取當前日期,不含時間。

dt_utcnow

擷取當前時區的當前日期時間對象。

dt_fromtimestamp

將Unix時間戳記轉換為日期時間對象。

dt_utcfromtimestamp

將Unix時間戳記轉換為當前時區的日期時間對象。

dt_strptime

將時間字串解析為日期時間對象。

dt_currentstamp

擷取當前Unix時間戳記。

dt_totimestamp

將日期時間對象轉換為Unix時間戳記。

dt_strftime

將日期時間對象按照指定格式轉換為字串。

dt_strftimestamp

將Unix時間戳記按照指定格式轉換為字串。

dt_truncate

從值或時間運算式中截取指定的時間粒紋。

dt_add

根據指定的時間粒紋修改值或時間運算式的值。

dt_MO

dt_add函數中傳遞給weekday參數的值,用於表示特定星期一的位移量。

dt_TU

dt_add函數中傳遞給weekday參數的值,用於表示特定星期二的位移量。

dt_WE

dt_add函數中傳遞給weekday參數的值,用於表示特定星期三的位移量。

dt_TH

dt_add函數中傳遞給weekday參數的值,用於表示特定星期四的位移量。

dt_FR

dt_add函數中傳遞給weekday參數的值,用於表示特定星期五的位移量。

dt_SA

dt_add函數中傳遞給weekday參數的值,用於表示特定星期六的位移量。

dt_SU

dt_add函數中傳遞給weekday參數的值,用於表示特定星期日的位移量。

dt_astimezone

將值或時間運算式的值轉換為特定時區的日期時間對象。

dt_diff

按照特定粒度擷取兩個值或時間運算式值的差異值。

Regex函數

regex_select

根據Regex提取合格值。

regex_findall

根據Regex獲得合格所有值列表。

regex_match

判斷是否匹配Regex。

regex_replace

根據Regex替換字串中的指定字元。

regex_split

將一個字串分割成字串數組。

GROK函數

grok

根據Regex提取特定的值。

特定結構化資料函數

json_select

根據JMES文法提取或計算JSON運算式中特定的值。

json_parse

將值解析為JSON對象。

xml_to_json

將XML資料轉成JSON再做展開操作。

IP解析函數

geo_parse

根據IP位址解析出所屬國家、省份和市資訊。

ip_cidrmatch

判斷IP地址是否屬於CIDR地址塊。

ip_version

判斷IP地址為IPv4還是IPv6。

ip_type

判斷IP地址為私人地址還是公有地址。

ip_makenet

將單個IP地址轉換為CIDR地址塊。

ip_to_format

將輸入的CIDR地址塊按照Prefixlen或者Netmask格式輸出。

ip_overlaps

判斷兩個網段是否存在重疊。

ip2long

將字串格式的IP地址轉換成長整型資料。

long2ip

將長整型資料轉換成字串格式的IP地址。

編碼解碼函數

url_encoding

對資料進行URL編碼。

url_decoding

對資料進行URL解碼。

protobuf_decoding

按照傳入的Protobuf模板將資料解析成JSON格式。

str_encode

按照指定的編碼格式對字串進行編碼。

str_decode

按照指定的編碼格式對傳入值進行解碼。

base64_encoding

對資料進行Base64編碼。

base64_decoding

對資料進行Base64解碼。

html_encoding

對資料進行HTML編碼。

html_decoding

對資料進行HTML解碼。

md5_encoding

對資料進行MD5編碼。

sha1_encoding

對資料進行SHA1編碼。

crc32_encoding

計算資料的迴圈冗餘校正碼。

gzip_compress

將資料進行壓縮並編碼。

gzip_decompress

將壓縮資料解壓縮。

zlib_compress

將資料進行壓縮並編碼。

zlib_decompress

將壓縮資料解壓縮。

aes_encrypt

對資料進行AES加密。

aes_decrypt

對資料進行AES解密。

jwt_encoding

基於JSON Web Token (JWT)標準,對JSON資料進行編碼。

jwt_decoding

基於JSON Web Token (JWT)標準,將資料解碼為原始JSON。

hashids_encoding

使用Hashids庫對資料進行編碼。

hashids_decoding

對已使用Hashids庫編碼的資料進行解碼。

解析函數

ua_parse_device

解析User-Agent中的裝置資訊。

ua_parse_os

解析User-Agent中的作業系統資訊。

ua_parse_agent

解析User-Agent中的瀏覽器資訊。

ua_parse_all

解析User-Agent中所有資訊。

url_parse

解析URL的組成部分。

url_parse_qs

解析URL中查詢字串的組成部分。

列表函數

lst_make

構建列表。

lst_insert

在列表特定位置插入元素。

lst_append

在列表結尾添加元素。

lst_delete_at

在列表特定位置刪除元素。

lst_reverse

反向排序列表。

lst_get

擷取列表、元組中的一個元素。

字典函數

dct_make

構建字典。

dct_update

更新字典。

dct_delete

刪除字典值。

dct_keys

擷取字典關鍵字列表。

dct_values

擷取字典值列表。

dct_get

擷取字典關鍵字的值。

表格函數

tab_parse_csv

從CSV格式的文本中構建表格。

tab_to_dict

從表格構建字典。

資源函數

res_local

從當前資料加工任務中拉取進階參數配置資訊。

res_rds_mysql

從RDS MySQL資料庫中拉取資料庫表內容或SQL執行結果,支援定期更新資料。

res_log_logstore_pull

從另一個Logstore中拉取資料,支援持續拉取資料。

res_oss_file

從OSS中擷取特定Bucket下的檔案內容,支援定期更新資料。