log_reduce_predict_fl()
この関数 log_reduce_predict_fl()
は、ログ行などの半構造化テキスト列を解析し、各行に対して、事前トレーニング済みモデルのそれぞれのパターンと一致するか、一致するパターンが見つからなかった場合に異常を報告します。 関数の出力は log_reduce_fl()に似ていますが、パターンは 、log_reduce_train_fl()によって生成された事前トレーニング済みモデルから取得されます。
前提条件
- クラスターで Python プラグインを有効にする必要があります。 これは、 関数で使用されるインライン Python に必要です。
- データベースで Python プラグイン を有効にする必要があります。 これは、 関数で使用されるインライン Python に必要です。
構文
T|
invoke
log_reduce_predict_fl(
,
models_tbl,
model_namereduce_col [,
anomaly_str ])
構文規則について詳しく知る。
パラメーター
名前 | 型 | 必須 | 説明 |
---|---|---|---|
models_tbl | table | ✔️ | log_reduce_train_fl()によって生成されたモデルを含むテーブル。 テーブルのスキーマは (name:string, timestamp: datetime, model:string) にする必要があります。 |
model_name | string |
✔️ | models_tblから取得されるモデルの名前。 テーブルにモデル名に一致するモデルが少ない場合は、最新のモデルが使用されます。 |
reduce_col | string |
✔️ | 関数が適用される文字列列の名前。 |
anomaly_str | string |
この文字列は、モデル内で一致するパターンがない行に対して出力されます。 既定値は "ANOMALY" です。 |
関数の定義
関数を定義するには、次のようにコードをクエリ定義関数として埋め込むか、データベースに格納された関数として作成します。
次の let ステートメントを使用して関数を定義します。 権限は必要ありません。
重要
let ステートメントを単独で実行することはできません。 その後に 表形式の式ステートメントを指定する必要があります。 の動作例 log_reduce_fl()
を実行するには、「 例」を参照してください。
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.
例
次の例では、 invoke 演算子 を使用して関数を実行します。
クエリ定義関数を使用するには、埋め込み関数定義の後で呼び出します。
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")
出力
Count | LogReduce | 例 |
---|---|---|
239 | 081110 | <NUM INFO DFS の値><を入力> します。DataNode$DataXceiver: 受信ブロック blk_<NUM> src: <IP> dest: <IP> 081110 215858 15494 INFO dfs。DataNode$DataXceiver: 受信ブロック blk_-7037346755429293022 src: /10.251.43.21:45933 dest: /10.251.43.21:50010 |
231 | 081110 | <NUM INFO DFS の値><を入力>します。DataNode$PacketResponder: IP 081110 215858< 15485 INFO dfs から <NUM> サイズ<のブロック blk_NUM> を受信しました。>DataNode$PacketResponder: /10.251.43.21 から67108864サイズの受信ブロック blk_5080254298708411681 |
230 | 081110 | <NUM INFO DFS の値><を入力>します。DataNode$PacketResponder: ブロック blk_<NUM> 終端 081110 215858 15496 INFO dfs の PacketResponder <NUM>。DataNode$PacketResponder: Block blk_-7746692545918257727 終了用 PacketResponder 2 |
218 | 081110 | <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 がblk_5080254298708411681 サイズに追加67108864 |
79 | 081110 | <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 INFO DFS の値><を入力>します。DataBlockScanner: *> 081110 215859 13 INFO dfs の検証に成功しました<。DataBlockScanner: blk_-7244926816084627474の検証に成功しました |
この機能はサポートされていません。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示