log_reduce_predict_fl()
De functie log_reduce_predict_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 uitvoer van de functie is vergelijkbaar met log_reduce_fl(), hoewel de patronen worden opgehaald uit een vooraf getraind model dat is gegenereerd door log_reduce_train_fl().
Vereisten
- De Python-invoegtoepassing moet zijn ingeschakeld op het cluster. Dit is vereist voor de inline Python die in de functie wordt gebruikt.
- De Python-invoegtoepassing moet zijn ingeschakeld voor de database. Dit is vereist voor de inline Python die in de functie wordt gebruikt.
Syntax
T|
invoke
log_reduce_predict_fl(
,
models_tbl,
model_namereduce_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. |
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_fl=(tbl:(*), models_tbl: (name:string, timestamp: datetime, model:string),
model_name:string, reduce_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', 'LogReduce','output_parameters_col', '',
'model', model_str, 'anomaly_str', anomaly_str, 'output_type', 'summary');
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(Count:int, LogReduce:string, example:string), 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_fl=(tbl:(*), models_tbl: (name:string, timestamp: datetime, model:string),
model_name:string, reduce_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', 'LogReduce','output_parameters_col', '',
'model', model_str, 'anomaly_str', anomaly_str, 'output_type', 'summary');
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(Count:int, LogReduce:string, example:string), code, kwargs)
};
HDFS_log_100k
| take 1000
| invoke log_reduce_predict_fl(models_tbl=ML_Models, model_name="HDFS_100K", reduce_col="data")
Uitvoer
Count | LogReduce | Voorbeeld |
---|---|---|
239 | 081110 | <NUM><NUM> INFO dfs. DataNode$DataXceiver: Ontvangen van blok blk_<NUM> src: <IP> dest: <IP> 081110 215858 15494 INFO dfs. DataNode$DataXceiver: Ontvangen van blok blk_-7037346755429293022 src: /10.251.43.21:45933 dest: /10.251.43.21:50010 |
231 | 081110 | <NUM><NUM> INFO dfs. DataNode$PacketResponder: Ontvangen blok blk_<NUM> van grootte <NUM> van <IP> 081110 215858 15485 INFO dfs. DataNode$PacketResponder: Ontvangen blok blk_5080254298708411681 van grootte 67108864 van /10.251.43.21 |
230 | 081110 | <NUM><NUM> INFO dfs. DataNode$PacketResponder: PacketResponder <NUM> for block blk_<NUM> terminating 081110 215858 15496 INFO dfs. DataNode$PacketResponder: PacketResponder 2 voor het beëindigen van blok blk_-7746692545918257727 |
218 | 081110 | <NUM><NUM> INFO dfs. FSNamesystem: BLOCK* NameSystem.addStoredBlock: blockMap updated: <IP> is added to blk_<NUM> size <NUM> 081110 215858 27 INFO dfs. FSNamesystem: BLOCK* NameSystem.addStoredBlock: blockMap updated: 10.250.11.85:50010 is added to blk_5080254298708411681 size 67108864 |
79 | 081110 | <NUM><NUM> INFO dfs. FSNamesystem: BLOCK* NameSystem.allocateBlock: <>. <> 081110 215858 26 INFO dfs. FSNamesystem: BLOCK* NameSystem.allocateBlock: /user/root/rand3/_temporary/task_200811101024_0005_m_001805_0/part-01805. blk-7037346755429293022 |
3 | 081110 | <NUM><NUM> INFO dfs. DataBlockScanner: Verificatie is geslaagd voor <*> 081110 215859 13 INFO dfs. DataBlockScanner: verificatie is geslaagd voor blk_-7244926816084627474 |
Deze functie wordt niet ondersteund.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor