tokenize_fl()

使用 “版本 ”下拉列表切换服务。 了解有关导航的详细信息
适用于:✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

该函数 tokenize_fl()用户定义的函数(UDF), 用于将半结构化文本字符串(如日志行)标记到单独的列中。 它使用基于正则表达式的方法在非字母数字分隔符上拆分文本,同时保留句点、连字符、冒号、斜杠和等号等常见语义字符。

Syntax

T|invoketokenize_fl(text_col)

详细了解 语法约定

参数

Name 类型 必选 Description
text_col string ✔️ 包含要标记的文本的字符串列的名称。

函数定义

可以通过将函数的代码嵌入为查询定义的函数,或将其创建为数据库中的存储函数来定义函数,如下所示:

使用以下 let 语句定义函数。 不需要任何权限。

重要

let 语句不能独立运行。 它必须后跟一个表格表达式语句。 若要运行 tokenize_fl() 的工作示例,请参阅示例

let tokenize_fl=(tbl:(*), text_col:string)
{
    let universal_regex = @"[^\w\.\-:/=]+";             //  Universal Token Splitter
    tbl
    | serialize _rid=row_number()
    | join (tbl
    | extend _text = column_ifexists(text_col, '')
    | extend norm = replace_regex(_text, universal_regex, "$$$")
    | extend tokens = split(norm, "$$$")
    | serialize _rid=row_number()
    | mv-expand with_itemindex = i tokens
    | summarize cols = make_bag(bag_pack(strcat("col", tostring(i + 1)), tokens)) by _rid
    | evaluate bag_unpack(cols)
    ) on _rid
    | project-away _rid, _rid1
};
// Write your query to use the function here.

Example

以下示例使用 invoke 运算符运行函数。

若要使用查询定义的函数,请在嵌入的函数定义后调用它。

let tokenize_fl=(tbl:(*), text_col:string)
{
    let universal_regex = @"[^\w\.\-:/=]+";             //  Universal Token Splitter
    tbl
    | serialize _rid=row_number()
    | join (tbl
    | extend _text = column_ifexists(text_col, '')
    | extend norm = replace_regex(_text, universal_regex, "$$$")
    | extend tokens = split(norm, "$$$")
    | serialize _rid=row_number()
    | mv-expand with_itemindex = i tokens
    | summarize cols = make_bag(bag_pack(strcat("col", tostring(i + 1)), tokens)) by _rid
    | evaluate bag_unpack(cols)
    ) on _rid
    | project-away _rid, _rid1
};
let tbl = datatable(s:string)
[
  "INFO 2025-12-11T11:22:33Z device=cam01 temp=32.8C ip=10.0.0.5/24",
  "WARN user=adi path=/var/log/syslog error:disk-full id=aa:bb:cc:01",
];
tbl
| invoke tokenize_fl('s')

输出

s col1 col2 col3 col4 col5 col6
INFO 2025-12-11T11:22:33Z device=cam01 temp=32.8C ip=10.0.0.5/24 信息 2025-12-11T11:22:33Z device=cam01 temp=32.8C ip=10.0.0.5/24
WARN user=adi path=/var/log/syslog error:disk-full id=aa:bb:cc:01 WARN user=adi path=/var/log/syslog error:disk-full id=aa:bb:cc:01