log_reduce_predict_full_fl()
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer
A função log_reduce_predict_full_fl()
analisa colunas textuais semiestruturadas, como linhas de log, e para cada linha corresponde ao respectivo padrão de um modelo pré-treinado ou relata uma anomalia se nenhum padrão correspondente for encontrado. Os padrões são recuperados de um modelo pré-treinado, gerado por log_reduce_train_fl()
. A função é semelhante a log_reduce_predict_fl(), mas ao contrário de log_reduce_predict_fl() que gera uma tabela de resumo de padrões, esta função gera uma tabela completa contendo o padrão e os parâmetros por cada linha.
Pré-requisitos
- O plug-in Python deve ser habilitado no cluster. Isso é necessário para o Python embutido usado na função.
- O plug-in Python deve estar habilitado no banco de dados. Isso é necessário para o Python embutido usado na função.
Sintaxe
T log_reduce_predict_full_fl(
|
invoke
models_tbl ,
model_name ,
reduce_col,
pattern_col ,
parameters_col [,
anomaly_str ])
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
models_tbl | tabela | ✔️ | Uma tabela que contém modelos gerados por log_reduce_train_fl(). O esquema da tabela deve ser (name:string, timestamp: datetime, model:string). |
model_name | string |
✔️ | O nome do modelo que será recuperado do models_tbl. Se a tabela contiver poucos modelos que correspondam ao nome do modelo, o mais recente será usado. |
reduce_col | string |
✔️ | O nome da coluna de cadeia de caracteres à qual a função é aplicada. |
pattern_col | string |
✔️ | O nome da coluna de cadeia de caracteres para preencher o padrão. |
parameters_col | string |
✔️ | O nome da coluna de cadeia de caracteres para preencher os parâmetros do padrão. |
anomaly_str | string |
Essa sequência é gerada para linhas que não têm padrão correspondente no modelo. O valor padrão é "ANOMALY". |
Definição de função
Você pode definir a função inserindo seu código como uma função definida por consulta ou criando-a como uma função armazenada em seu banco de dados, da seguinte maneira:
Defina a função usando a instrução let a seguir. Nenhuma permissão é necessária.
Importante
Uma instrução let não pode ser executada sozinha. Ele deve ser seguido por uma instrução de expressão tabular. Para executar um exemplo funcional de log_reduce_fl()
, consulte Exemplo.
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.
Exemplo
O exemplo a seguir usa o operador invoke para executar a função.
Para usar uma função definida por consulta, invoque-a após a definição da função inserida.
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")
Saída
data | Padrões | Parâmetros |
---|---|---|
081110 | 215858 | 15485 INFO dfs. DataNode$PacketResponder: Recebeu blk_5080254298708411681 de bloco de tamanho 67108864 de /10.251.43.21 081110 <NUM><NUM> INFO dfs. DataNode$PacketResponder: Bloco recebido blk_<NUM> de tamanho <NUM> do <IP> {"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: Bloco de recebimento blk_-7037346755429293022 src: /10.251.43.21:45933 dest: /10.251.43.21:50010 081110 <NUM><NUM> INFO dfs. DataNode$DataXceiver: Bloco de recebimento 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: PacketResponder 2 para o bloco blk_-7746692545918257727 terminando 081110 <NUM><NUM> INFO dfs. DataNode$PacketResponder: NUM do PacketResponder <para o bloco blk_<NUM> terminando {"parameter_0": "215858", "parameter_1": "15496", "parameter_2": "2", "parameter_3": "-7746692545918257727"}> |
081110 | 215858 | 15496 INFO dfs. DataNode$PacketResponder: Bloco recebido blk_-7746692545918257727 de tamanho 67108864 de /10.251.107.227 081110 <NUM><NUM> INFO dfs. DataNode$PacketResponder: Bloco recebido blk_<NUM> de tamanho <NUM> do <IP> {"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: Bloco de recebimento blk_-8578644687709935034 src: /10.251.107.227:39600 dest: /10.251.107.227:50010 081110 <NUM><NUM> INFO dfs. DataNode$DataXceiver: Bloco de recebimento 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: Bloco de recebimento blk_722881101738646364 src: /10.251.75.79:58213 dest: /10.251.75.79:50010 081110 <NUM><NUM> INFO dfs. DataNode$DataXceiver: Bloco de recebimento 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: PacketResponder 2 para o bloco blk_-7110736255599716271 terminando 081110 <NUM><NUM> INFO dfs. DataNode$PacketResponder: NUM do PacketResponder <para o bloco blk_<NUM> terminando {"parameter_0": "215858", "parameter_1": "15517", "parameter_2": "2", "parameter_3": "-7110736255599716271"}> |
081110 | 215858 | 15517 INFO dfs. DataNode$PacketResponder: Bloco recebido blk_-7110736255599716271 de tamanho 67108864 de /10.251.42.246 081110 <NUM><NUM> INFO dfs. DataNode$PacketResponder: Bloco recebido blk_<NUM> de tamanho <NUM> do <IP> {"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: Bloco de recebimento blk_7257432994295824826 src: /10.251.26.8:41803 dest: /10.251.26.8:50010 081110 <NUM><NUM> INFO dfs. DataNode$DataXceiver: Bloco de recebimento 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: Bloco de recebimento blk_-7771332301119265281 src: /10.251.43.210:34258 dest: /10.251.43.210:50010 081110 <NUM><NUM> INFO dfs. DataNode$DataXceiver: Bloco de recebimento 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"} |