Partilhar via


log_reduce_predict_full_fl()

Aplica-se a: ✅Microsoft FabricAzure 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.

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"}