Delen via


log_reduce_predict_full_fl()

De functie log_reduce_predict_full_fl() parseert semi-gestructureerde tekstkolommen, zoals logboekregels, en voor elke regel komt deze overeen met het respectieve patroon van een vooraf getraind model of rapporteert een anomalie als er geen overeenkomend patroon is gevonden. De patronen worden opgehaald uit een vooraf getraind model, dat wordt gegenereerd door log_reduce_train_fl(). De functie is vergelijkbaar met log_reduce_predict_fl(), maar in tegenstelling tot log_reduce_predict_fl() die een patronenoverzichtstabel uitvoert, voert deze functie een volledige tabel uit met het patroon en de parameters per regel.

Vereisten

  • De Python-invoegtoepassing moet zijn ingeschakeld op het cluster. Dit is vereist voor de inline Python die in de functie wordt gebruikt.

Syntax

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

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
models_tbl tabel ✔️ Een tabel met modellen die zijn gegenereerd door log_reduce_train_fl(). Het schema van de tabel moet (name:string, timestamp: datetime, model:string) zijn.
model_name string ✔️ De naam van het model dat wordt opgehaald uit models_tbl. Als de tabel enkele modellen bevat die overeenkomen met de modelnaam, wordt de meest recente gebruikt.
reduce_col string ✔️ De naam van de tekenreekskolom waarop de functie wordt toegepast.
pattern_col string ✔️ De naam van de tekenreekskolom om het patroon te vullen.
parameters_col string ✔️ De naam van de tekenreekskolom om de parameters van het patroon te vullen.
anomaly_str string Deze tekenreeks is uitvoer voor regels die geen overeenkomend patroon in het model hebben. De standaardwaarde is 'ANOMALIE'.

Functiedefinitie

U kunt de functie als volgt definiëren door de code in te sluiten als een door een query gedefinieerde functie of door deze te maken als een opgeslagen functie in uw database:

Definieer de functie met behulp van de volgende let-instructie. Er zijn geen machtigingen vereist.

Belangrijk

Een let-instructie kan niet zelfstandig worden uitgevoerd. Deze moet worden gevolgd door een tabellaire expressie-instructie. Zie Voorbeeld als u een werkend voorbeeld van log_reduce_fl()wilt uitvoeren.

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.

Voorbeeld

In het volgende voorbeeld wordt de operator aanroepen gebruikt om de functie uit te voeren.

Als u een querygedefinieerde functie wilt gebruiken, roept u deze aan na de definitie van de ingesloten functie.

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

Uitvoer

gegevens Patronen Parameters
081110 215858 15485 INFO dfs. DataNode$PacketResponder: Ontvangen blok blk_5080254298708411681 van grootte 67108864 van /10.251.43.21 081110 <NUM><NUM> INFO dfs. DataNode$PacketResponder: Received block blk_<NUM> of size <NUM> from <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: Ontvangend blok blk_-7037346755429293022 src: /10.251.43.21:45933 dest: /10.251.43.21:50010 081110 <NUM><NUM> INFO dfs. DataNode$DataXceiver: Ontvangen van blok 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 voor blok blk_-7746692545918257727 die 081110 <NUM><NUM> INFO dfs beëindigen. DataNode$PacketResponder: PacketResponder <NUM> for block blk_<NUM> terminating {"parameter_0": "215858", "parameter_1": "15496", "parameter_2": "2", "parameter_3": "-7746692545918257727"}
081110 215858 15496 INFO dfs. DataNode$PacketResponder: Ontvangen blok blk_-7746692545918257727 van grootte 67108864 van /10.251.107.227 081110 <NUM><NUM> INFO dfs. DataNode$PacketResponder: Received block blk_<NUM> of size <NUM> from <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: Ontvangen van blok blk_-8578644687709935034 src: /10.251.107.227:39600 dest: /10.251.107.227:50010 081110 <NUM><NUM> INFO dfs. DataNode$DataXceiver: Ontvangen van blok 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: Ontvangen van blok blk_722881101738646364 src: /10.251.75.79:58213 dest: /10.251.75.79:50010 081110 <NUM><NUM> INFO dfs. DataNode$DataXceiver: Ontvangen van blok 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 voor blok blk_-7110736255599716271 eindigend 081110 <NUM><NUM> INFO dfs. DataNode$PacketResponder: PacketResponder <NUM> for block blk_<NUM> terminating {"parameter_0": "215858", "parameter_1": "15517", "parameter_2": "2", "parameter_3": "-7110736255599716271"}
081110 215858 15517 INFO dfs. DataNode$PacketResponder: Ontvangen blok blk_-7110736255599716271 van grootte 67108864 van /10.251.42.246 081110 <NUM><NUM> INFO dfs. DataNode$PacketResponder: Received block blk_<NUM> of size <NUM> from <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: Ontvangen van blok blk_7257432994295824826 src: /10.251.26.8:41803 dest: /10.251.26.8:50010 081110 <NUM><NUM> INFO dfs. DataNode$DataXceiver: Ontvangen blok 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: Ontvangen van blok blk_-7771332301119265281 src: /10.251.43.210:34258 dest: /10.251.43.210:50010 081110 <NUM><NUM> INFO dfs. DataNode$DataXceiver: Ontvangen van blok 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"}

Deze functie wordt niet ondersteund.