다음을 통해 공유


log_reduce_predict_full_fl()

이 함수 log_reduce_predict_full_fl() 는 로그 줄과 같은 반정형 텍스트 열을 구문 분석하고 각 줄에 대해 미리 학습된 모델의 해당 패턴과 일치하거나 일치하는 패턴이 없는 경우 변칙을 보고합니다. 패턴은 미리 학습된 모델에서 검색되며, 에 의해 log_reduce_train_fl()생성됩니다. 함수는 log_reduce_predict_fl()와 비슷하지만 패턴 요약 테이블을 출력하는 log_reduce_predict_fl()와 달리 이 함수는 각 줄당 패턴 및 매개 변수가 포함된 전체 테이블을 출력합니다.

필수 조건

구문

T invokelog_reduce_predict_full_fl(| models_tbl, model_name, reduce_col pattern_col, parameters_col , [, anomaly_str ])

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 Type 필수 설명
models_tbl table ✔️ 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 문을 사용하여 함수를 정의합니다. 사용 권한이 필요 없습니다.

Important

let 문자체적으로 실행할 수 없습니다. 그 뒤에 테이블 형식 식 문이 있어야 합니다. 작업 예제 log_reduce_fl()를 실행하려면 예제를 참조 하세요.

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.

예시

다음 예제에서는 호출 연산자를 사용하여 함수를 실행합니다.

쿼리 정의 함수를 사용하려면 포함된 함수 정의 후에 호출합니다.

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 <NUM NUM><> INFO dfs에서 67108864 크기의 블록 blk_5080254298708411681 수신했습니다. DataNode$PacketResponder: 수신된 블록 blk_<> IP> {"parameter_0"에서 <NUM 크기의 <NUM>: "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: 081110 <NUM NUM><> INFO dfs를 종료하는 블록 blk_-7746692545918257727 대한 PacketResponder 2입니다. DataNode$PacketResponder: <block blk_NUM>> terminating {"parameter_0<": "215858", "parameter_1": "15496", "parameter_2": "2", "parameter_3": "-7746692545918257727"}
081110 215858 15496 INFO dfs. DataNode$PacketResponder: /10.251.107.227 081110 <NUM NUM><> INFO dfs에서 67108864 크기의 블록 blk_ 7746692545918257727 수신되었습니다. DataNode$PacketResponder: 수신된 블록 blk_<> IP> {"parameter_0"에서 <NUM 크기의 <NUM>: "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: 081110 <NUM><> INFO dfs를 종료하는 블록 blk_-7110736255599716271 대한 PacketResponder 2입니다. DataNode$PacketResponder: <block blk_NUM>> terminating {"parameter_0<": "215858", "parameter_1": "15517", "parameter_2": "2", "parameter_3": "-7110736255599716271"}
081110 215858 15517 INFO dfs. DataNode$PacketResponder: /10.251.42.246 081110 <NUM NUM><> INFO dfs에서 67108864 크기의 블록 blk_ 7110736255599716271 수신되었습니다. DataNode$PacketResponder: 수신된 블록 blk_<> IP> {"parameter_0"에서 <NUM 크기의 <NUM>: "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"}

이 기능은 지원되지 않습니다.