関数 log_reduce_predict_full_fl()
は、ログ行などの半構造化テキスト列を解析し、各行に対して、事前トレーニング済みモデルのそれぞれのパターンと一致するか、一致するパターンが見つからなかった場合に異常を報告します。 パターンは、 log_reduce_train_fl()
によって生成された事前トレーニング済みモデルから取得されます。 この関数は log_reduce_predict_fl()に似ていますが、パターン要約テーブルを出力するlog_reduce_predict_fl()とは異なり、この関数は各行ごとにパターンとパラメーターを含む完全なテーブルを出力します。
前提条件
- Python プラグインは、クラスター 有効にする必要があります。 これは、関数で使用されるインライン Python に必要です。
- Python プラグインは、データベース 有効にする必要があります。 これは、関数で使用されるインライン Python に必要です。
構文
T |
invoke
log_reduce_predict_full_fl(
models_tbl,
model_name,
reduce_col,
pattern_col,
parameters_col [,
anomaly_str ])
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
models_tbl | テーブル | ✔️ | 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 ステートメントを使用して関数を定義。 権限は必要ありません。
重要
let ステートメント単独では実行できません。 その後に 表形式の式ステートメントが続く必要があります。 log_reduce_fl()
の動作例を実行するには、Exampleを参照してください。
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.
例
次の例では、 invoke 演算子 を使用して関数を実行します。
クエリ定義関数を使用するには、埋め込み関数定義の後に呼び出します。
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")
出力
data | パターン | パラメーター |
---|---|---|
081110 | 215858 | 15485 INFO dfs.DataNode$PacketResponder: /10.251.43.21 081110 <NUM><NUM> INFO dfs から67108864サイズのブロック blk_5080254298708411681を受信しました。DataNode$PacketResponder: <IP> {"blk_< 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: 受信ブロック 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: ブロック blk_-7746692545918257727 で終了する 081110 <NUM><NUM> INFO dfs の PacketResponder 2。DataNode$PacketResponder: PacketResponder <NUM> :ブロック blk_<NUM> 終端 {"parameter_0": "215858", "parameter_1": "15496", "parameter_2": "2", "parameter_3": "-7746692545918257727"} |
081110 | 215858 | 15496 INFO dfs.DataNode$PacketResponder: /10.blk_ 251.107.227 081110 <NUM><NUM> INFO dfs から67108864サイズのブロック7746692545918257727を受信しました。DataNode$PacketResponder: <IP> {"parameter_0": "215858"からサイズ <NUM> のブロック blk_<NUM>を受信しました。 "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 0811110 <NUM><NUM> INFO dfs.DataNode$DataXceiver: Receiving block 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 0811110 <NUM><NUM> INFO dfs.DataNode$DataXceiver: Receiving block 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: ブロック blk_-7110736255599716271 で終了する 081110 <NUM><NUM> INFO dfs の PacketResponder 2。DataNode$PacketResponder: PacketResponder <NUM> :ブロック blk_<NUM> 終了 {"parameter_0": "215858","parameter_1": "15517", "parameter_2": "2", "parameter_3": "-7110736255599716271"} |
081110 | 215858 | 15517 INFO dfs.DataNode$PacketResponder: /10.251.7110736255599716271 42.246 081110 <NUM><NUM> INFO dfs から67108864サイズのブロック blk_受信しました。DataNode$PacketResponder: <IP>> {"blk_< 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: 受信ブロック blk_7257432994295824826 src: /10.251.26.8:41803 dest: /10.251.26.8:50010 0811110 <NUM><NUM> INFO dfs.DataNode$DataXceiver: Receiving block 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: Receiving block 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"} |