log_reduce_predict_full_fl()
Funkcja log_reduce_predict_full_fl()
analizuje częściowo ustrukturyzowane kolumny tekstowe, takie jak wiersze dziennika, i dla każdego wiersza pasuje do odpowiedniego wzorca z wstępnie wytrenowanego modelu lub zgłasza anomalię, jeśli nie znaleziono pasującego wzorca. Wzorce są pobierane z wstępnie wytrenowanego modelu wygenerowanego przez program log_reduce_train_fl()
. Funkcja jest podobna do log_reduce_predict_fl(),ale w przeciwieństwie do log_reduce_predict_fl(), która generuje tabelę podsumowania wzorców, ta funkcja generuje pełną tabelę zawierającą wzorzec i parametry dla każdego wiersza.
Wymagania wstępne
- Wtyczka języka Python musi być włączona w klastrze. Jest to wymagane dla wbudowanego języka Python używanego w funkcji.
- Wtyczka języka Python musi być włączona w bazie danych. Jest to wymagane dla wbudowanego języka Python używanego w funkcji.
Składnia
T|
invoke
log_reduce_predict_full_fl(
,
models_tblModel_name,
,
reduce_col,
pattern_colparameters_col [,
anomaly_str ])
Dowiedz się więcej o konwencjach składniowych.
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
models_tbl | tabela | ✔️ | Tabela zawierająca modele generowane przez log_reduce_train_fl(). Schemat tabeli powinien mieć wartość (name:string, timestamp: datetime, model:string). |
Model_name | string |
✔️ | Nazwa modelu, który zostanie pobrany z models_tbl. Jeśli tabela zawiera kilka modeli pasujących do nazwy modelu, jest używana najnowsza. |
reduce_col | string |
✔️ | Nazwa kolumny ciągu, do których jest stosowana funkcja. |
pattern_col | string |
✔️ | Nazwa kolumny ciągu do wypełnienia wzorca. |
parameters_col | string |
✔️ | Nazwa kolumny ciągu do wypełnienia parametrów wzorca. |
anomaly_str | string |
Ten ciąg jest wynikiem dla wierszy, które nie mają dopasowanego wzorca w modelu. Wartość domyślna to "ANOMALY". |
Definicja funkcji
Funkcję można zdefiniować, osadzając kod jako funkcję zdefiniowaną przez zapytanie lub tworząc ją jako funkcję przechowywaną w bazie danych w następujący sposób:
Zdefiniuj funkcję przy użyciu następującej instrukcji let. Nie są wymagane żadne uprawnienia.
Ważne
Instrukcja let nie może być uruchamiana samodzielnie. Należy po nim wykonać instrukcję wyrażenia tabelarycznego. Aby uruchomić działający przykład programu log_reduce_fl()
, zobacz Przykład.
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.
Przykład
W poniższym przykładzie użyto operatora invoke do uruchomienia funkcji.
Aby użyć funkcji zdefiniowanej przez zapytanie, wywołaj ją po osadzonej definicji funkcji.
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")
Dane wyjściowe
dane | Wzorce | Parametry |
---|---|---|
081110 | 215858 | 15485 INFO dfs. DataNode$PacketResponder: Odebrano blok blk_5080254298708411681 rozmiaru 67108864 z /10.251.43.21 081110 <NUM><> INFO dfs. DataNode$PacketResponder: Odebrano blok blk_<NUM rozmiaru <NUM>> z <adresu 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: odbieranie bloku blk_-7037346755429293022 src: /10.251.43.21:45933 dest: /10.251.43.21:50010 081110 <NUM><> INFOs. DataNode$DataXceiver: odbieranie bloku blk_<NUM> src: <dest IP>: 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 dla bloków blk_-7746692545918257727 zakończenia 081110 <NUM><> INFO dfs. DataNode$PacketResponder: PacketResponder <NUM> dla bloku blk_<NUM> kończącego {"parameter_0": "215858", "parameter_1": "15496", "parameter_2": "2", "parameter_3": "-7746692545918257727"} |
081110 | 215858 | 15496 INFO dfs. DataNode$PacketResponder: Odebrano blok blk_-7746692545918257727 rozmiaru 67108864 z /10.251.107.227 081110 <NUM><> INFO dfs. DataNode$PacketResponder: Odebrano blok blk_<NUM rozmiaru <NUM>> z <adresu 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: Odbieranie bloku blk_-8578644687709935034 src: /10.251.107.227:39600 dest: /10.251.107.227:50010 081110 <NUM><> INFO dfs. DataNode$DataXceiver: odbieranie bloku blk_<NUM> src: <dest IP>: 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: Odbieranie bloku blk_722881101738646364 src: /10.251.75.79:58213 dest: /10.251.75.79:50010 081110 <NUM><> INFO dfs. DataNode$DataXceiver: odbieranie bloku blk_<NUM> src: <dest IP>: 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 dla blokowych blk_-7110736255599716271 zakończenia 081110 <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: Odebrano blok blk_ 7110736255599716271 rozmiaru 67108864 z /10.251.42.246 081110 <NUM><> INFO dfs. DataNode$PacketResponder: Odebrano blok blk_<NUM rozmiaru <NUM>> z <adresu 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: odbieranie bloku blk_7257432994295824826 src: /10.251.26.8:41803 dest: /10.251.26.8:50010 081110 <NUM><> INFO dfs. DataNode$DataXceiver: odbieranie bloku blk_<NUM> src: <dest IP>: 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: odbieranie bloku blk_-7771332301119265281 src: /10.251.43.210:34258 dest: /10.251.43.210:50010 081110 <NUM><> INFO dfs. DataNode$DataXceiver: odbieranie bloku blk_<NUM> src: <dest IP>: <IP> {"parameter_0": "215858", "parameter_1": "15533", "parameter_2": "-7771332301119265281", "parameter_3": "/10.251.43.210:34258", "parameter_4": "/10.251.43.210:50010"} |
Ta funkcja nie jest obsługiwana.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla