log_reduce_predict_full_fl()
适用于:✅Azure 数据资源管理器
函数 log_reduce_predict_full_fl()
会解析半结构化文本列(例如日志行)。对于每一行,它会与预训练模型中的相应模式匹配,否则会在未找到匹配模式的情况下报告异常。 这些模式是从 log_reduce_train_fl()
生成的预训练模型中检索的。 此函数类似于 log_reduce_predict_fl(),但与会输出模式汇总表的 log_reduce_predict_fl() 不同,此函数会输出一个每一行都包含模式和参数的完整表。
先决条件
- 必须在群集上启用 Python 插件。 这是函数中使用的内联 Python 所必需的。
语法
T |
invoke
log_reduce_predict_full_fl(
models_tbl,
model_name,
reduce_col,
pattern_col,
parameters_col [,
anomaly_str ])
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
models_tbl | 表 | ✔️ | 一个表,其中包含由 log_reduce_train_fl() 生成的模型。 表的架构应为 (name:string, timestamp:datetime, model:string)。 |
model_name | string |
✔️ | 将从 models_tbl 检索的模型的名称。 如果表中包含几个与模型名称匹配的模型,则使用最新的模型。 |
reduce_col | string |
✔️ | 函数所应用到的字符串列的名称。 |
pattern_col | string |
✔️ | 用于填充此模式的字符串列的名称。 |
parameters_col | string |
✔️ | 用于填充此模式的参数的字符串列的名称。 |
anomaly_str | string |
此字符串是在模型中没有匹配模式的行的输出。 默认值为“ANOMALY”。 |
函数定义
可以通过将函数的代码嵌入为查询定义的函数,或将其创建为数据库中的存储函数来定义函数,如下所示:
使用以下 let 语句定义函数。 不需要任何权限。
let log_reduce_predict_full_fl=(tbl:(*), models_tbl: (name:string, timestamp: datetime, model:string),
model_name:string, reduce_col:string, pattern_col:string, parameters_col:string,
anomaly_str: string = 'ANOMALY')
{
let model_str = toscalar(models_tbl | where name == model_name | top 1 by timestamp desc | project model);
let kwargs = bag_pack('logs_col', reduce_col, 'output_patterns_col', pattern_col,'output_parameters_col',
parameters_col, 'model', model_str, 'anomaly_str', anomaly_str, 'output_type', 'full');
let code = ```if 1:
from log_cluster import log_reduce_predict
result = log_reduce_predict.log_reduce_predict(df, kargs)
```;
tbl
| evaluate hint.distribution=per_node python(typeof(*), code, kwargs)
};
// Write your query to use the function here.
示例
以下示例使用 invoke 运算符运行函数。
若要使用查询定义的函数,请在嵌入的函数定义后调用它。
let log_reduce_predict_full_fl=(tbl:(*), models_tbl: (name:string, timestamp: datetime, model:string),
model_name:string, reduce_col:string, pattern_col:string, parameters_col:string,
anomaly_str: string = 'ANOMALY')
{
let model_str = toscalar(models_tbl | where name == model_name | top 1 by timestamp desc | project model);
let kwargs = bag_pack('logs_col', reduce_col, 'output_patterns_col', pattern_col,'output_parameters_col',
parameters_col, 'model', model_str, 'anomaly_str', anomaly_str, 'output_type', 'full');
let code = ```if 1:
from log_cluster import log_reduce_predict
result = log_reduce_predict.log_reduce_predict(df, kargs)
```;
tbl
| evaluate hint.distribution=per_node python(typeof(*), code, kwargs)
};
HDFS_log_100k
| extend Patterns='', Parameters=''
| take 10
| invoke log_reduce_predict_full_fl(models_tbl=ML_Models, model_name="HDFS_100K", reduce_col="data", pattern_col="Patterns", parameters_col="Parameters")
输出
数据 | 模式 | 参数 |
---|---|---|
081110 | 215858 | 15485 INFO dfs.DataNode$PacketResponder: 从 /10.251.43.21 081110 接收到大小为 67108864 的块 blk_5080254298708411681 <NUM><NUM> INFO dfs.DataNode$PacketResponder: 从 <IP> 接收到大小为 <NUM> 的块 blk_<NUM> {"parameter_0": "215858", "parameter_1": "15485", "parameter_2": "5080254298708411681", "parameter_3": "67108864", "parameter_4": "/10.251.43.21"} |
081110 | 215858 | 15494 INFO dfs.DataNode$DataXceiver:正在接收块 blk_-7037346755429293022 src: /10.251.43.21:45933 dest: /10.251.43.21:50010 081110 <NUM><NUM> INFO dfs.DataNode$DataXceiver: 正在接收块 blk_<NUM> src: <IP> dest: <IP> {"parameter_0": "215858", "parameter_1": "15494", "parameter_2": "-7037346755429293022", "parameter_3": "/10.251.43.21:45933", "parameter_4": "/10.251.43.21:50010"} |
081110 | 215858 | 15496 INFO dfs.DataNode$PacketResponder: 块 blk_-7746692545918257727 的 PacketResponder 2 正在终止 081110 <NUM><NUM> INFO dfs.DataNode$PacketResponder: 块 blk_<NUM> 的 PacketResponder <NUM> 正在终止 {"parameter_0": "215858", "parameter_1": "15496", "parameter_2": "2", "parameter_3": "-7746692545918257727"} |
081110 | 215858 | 15496 INFO dfs.DataNode$PacketResponder: 从 /10.251.107.227 081110 接收到大小为 67108864 的块 blk_-7746692545918257727 <NUM><NUM> INFO dfs.DataNode$PacketResponder: 从 <IP> 接收到大小为 <NUM> 的块 blk_<NUM> {"parameter_0": "215858", "parameter_1": "15496", "parameter_2": "-7746692545918257727", "parameter_3": "67108864", "parameter_4": "/10.251.107.227"} |
081110 | 215858 | 15511 INFO dfs.DataNode$DataXceiver: 正在接收块 blk_-8578644687709935034 src: /10.251.107.227:39600 dest: /10.251.107.227:50010 081110 <NUM><NUM> INFO dfs.DataNode$DataXceiver: 正在接收块 blk_<NUM> src: <IP> dest: <IP> {"parameter_0": "215858", "parameter_1": "15511", "parameter_2": "-8578644687709935034", "parameter_3": "/10.251.107.227:39600", "parameter_4": "/10.251.107.227:50010"} |
081110 | 215858 | 15514 INFO dfs.DataNode$DataXceiver:正在接收块 blk_722881101738646364 src: /10.251.75.79:58213 dest: /10.251.75.79:50010 081110 <NUM><NUM> INFO dfs.DataNode$DataXceiver: 正在接收块 blk_<NUM> src: <IP> dest: <IP> {"parameter_0": "215858", "parameter_1": "15514", "parameter_2": "722881101738646364", "parameter_3": "/10.251.75.79:58213", "parameter_4": "/10.251.75.79:50010"} |
081110 | 215858 | 15517 INFO dfs.DataNode$PacketResponder: 块 blk_-7110736255599716271 的 PacketResponder 2 正在终止 081110 <NUM><NUM> INFO dfs.DataNode$PacketResponder: 块 blk_<NUM> 的 PacketResponder <NUM> 正在终止 {"parameter_0": "215858", "parameter_1": "15517", "parameter_2": "2", "parameter_3": "-7110736255599716271"} |
081110 | 215858 | 15517 INFO dfs.DataNode$PacketResponder: 从 /10.251.42.246 081110 接收到大小为 67108864 的块 blk_-7110736255599716271 <NUM><NUM> INFO dfs.DataNode$PacketResponder: 从 <IP> 接收到大小为 <NUM> 的块 blk_<NUM> {"parameter_0": "215858", "parameter_1": "15517", "parameter_2": "-7110736255599716271", "parameter_3": "67108864", "parameter_4": "/10.251.42.246"} |
081110 | 215858 | 15533 INFO dfs.DataNode$DataXceiver: 正在接收块 blk_7257432994295824826 src: /10.251.26.8:41803 dest: /10.251.26.8:50010 081110 <NUM><NUM> INFO dfs.DataNode$DataXceiver: 正在接收块 blk_<NUM> src: <IP> dest: <IP> {"parameter_0": "215858", "parameter_1": "15533", "parameter_2": "7257432994295824826", "parameter_3": "/10.251.26.8:41803", "parameter_4": "/10.251.26.8:50010"} |
081110 | 215858 | 15533 INFO dfs.DataNode$DataXceiver:正在接收块 blk_-7771332301119265281 src: /10.251.43.210:34258 dest: /10.251.43.210:50010 081110 <NUM><NUM> INFO dfs.DataNode$DataXceiver: 正在接收块 blk_<NUM> src: <IP> dest: <IP> {"parameter_0": "215858", "parameter_1": "15533", "parameter_2": "-7771332301119265281", "parameter_3": "/10.251.43.210:34258", "parameter_4": "/10.251.43.210:50010"} |