Sdílet prostřednictvím


log_reduce_train_fl()

Funkce log_reduce_train_fl() najde běžné vzory v částečně strukturovaných textových sloupcích, jako jsou například čáry protokolu, a seskupuje čáry podle extrahovaných vzorů. Algoritmus funkce a většina parametrů jsou identické s log_reduce_fl(), ale na rozdíl od log_reduce_fl(), která výstupem souhrnné tabulky vzorů, tato funkce výstupem serializovaný model. Model může použít funkce log_reduce_predict_fl()/log_reduce_predict_full_fl() k predikci odpovídajícího vzoru pro nové čáry protokolu.

Požadavky

  • Modul plug-in Pythonu musí být v clusteru povolený. To se vyžaduje pro vložený Python použitý ve funkci .
  • V databázi musí být povolený modul plug-in Pythonu. To se vyžaduje pro vložený Python použitý ve funkci .

Syntax

T|invokelog_reduce_train_fl(, reduce_colmodel_name [,use_logram [,use_drain [,custom_regexes [,custom_regexes_policy [,oddělovače [,similarity_th [,tree_depth [,trigram_th [,bigram_th ]]]]]]]]])

Přečtěte si další informace o konvencích syntaxe.

Parametry

Následující popis parametrů je souhrn. Další informace najdete v části Další informace o algoritmu .

Název Typ Vyžadováno Popis
reduce_col string ✔️ Název sloupce řetězce, na který se funkce použije.
model_name string ✔️ Název výstupního modelu.
use_logram bool Povolte nebo zakažte algoritmus Logram. Výchozí hodnota je true.
use_drain bool Povolte nebo zakažte algoritmus vyprázdnění. Výchozí hodnota je true.
custom_regexes dynamic Dynamické pole obsahující dvojice regulárních výrazů a symbolů pro nahrazení, které mají být prohledány v každém vstupním řádku a nahrazeny odpovídajícími symboly. Výchozí hodnota je dynamic([]). Výchozí tabulka regulárních výrazů nahrazuje čísla, IP adresy a identifikátory GUID.
custom_regexes_policy string Buď 'prepend', 'append' nebo 'replace'. Určuje, jestli se custom_regexes mají předpřidět, připojit nebo nahradit výchozí. Výchozí hodnota je "předpend".
Oddělovače dynamic Dynamické pole obsahující oddělovací řetězce. Výchozí hodnota je dynamic([" "]), definující mezeru jako jediný oddělovač znaků.
similarity_th real Prahová hodnota podobnosti, kterou používá algoritmus odtoku. Zvýšení similarity_th vede ke zpřesnění clusterů. Výchozí hodnota je 0,5. Pokud je možnost Drain zakázaná, nemá tento parametr žádný vliv.
tree_depth int Zvýšení tree_depth zlepšuje běh algoritmu Drain, ale může snížit jeho přesnost. Výchozí hodnota je 4. Pokud je možnost Drain zakázaná, nemá tento parametr žádný vliv.
trigram_th int Snížením trigram_th se zvyšuje pravděpodobnost, že Logram nahradí tokeny zástupnými znakůýmimich služby . Výchozí hodnota je 10. Pokud je Logram zakázaný, nemá tento parametr žádný vliv.
bigram_th int Snížení bigram_th zvyšuje pravděpodobnost, že Logram nahradí tokeny zástupnými ýmimi sadou. Výchozí hodnota je 15. Pokud je Logram zakázaný, nemá tento parametr žádný vliv.

Definice funkce

Funkci můžete definovat vložením jejího kódu jako funkce definované dotazem nebo jejím vytvořením jako uložené funkce v databázi, a to následujícím způsobem:

Definujte funkci pomocí následujícího příkazu let. Nejsou vyžadována žádná oprávnění.

Důležité

Příkaz let nelze spustit samostatně. Musí za ním následovat příkaz tabulkového výrazu. Pokud chcete spustit funkční příklad , podívejte se na log_reduce_fl()příklad.

let log_reduce_train_fl=(tbl:(*), reduce_col:string, model_name:string,
              use_logram:bool=True, use_drain:bool=True, custom_regexes: dynamic = dynamic([]), custom_regexes_policy: string = 'prepend',
              delimiters:dynamic = dynamic(' '), similarity_th:double=0.5, tree_depth:int = 4, trigram_th:int=10, bigram_th:int=15)
{
    let default_regex_table = pack_array('(/|)([0-9]+\\.){3}[0-9]+(:[0-9]+|)(:|)', '<IP>', 
                                         '([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})', '<GUID>', 
                                         '(?<=[^A-Za-z0-9])(\\-?\\+?\\d+)(?=[^A-Za-z0-9])|[0-9]+$', '<NUM>');
    let kwargs = bag_pack('reduced_column', reduce_col, 'delimiters', delimiters,'output_column', 'LogReduce', 'parameters_column', '', 
                          'trigram_th', trigram_th, 'bigram_th', bigram_th, 'default_regexes', default_regex_table, 
                          'custom_regexes', custom_regexes, 'custom_regexes_policy', custom_regexes_policy, 'tree_depth', tree_depth, 'similarity_th', similarity_th, 
                          'use_drain', use_drain, 'use_logram', use_logram, 'save_regex_tuples_in_output', True, 'regex_tuples_column', 'RegexesColumn', 
                          'output_type', 'model');
    let code = ```if 1:
        from log_cluster import log_reduce
        result = log_reduce.log_reduce(df, kargs)
    ```;
    tbl
    | extend LogReduce=''
    | evaluate python(typeof(model:string), code, kwargs)
    | project name=model_name, timestamp=now(), model
};
// Write your query to use the function here.

Příklad

Následující příklad používá operátor invoke ke spuštění funkce.

Pokud chcete použít funkci definovanou dotazem, vyvolejte ji po definici vložené funkce.

//
// Finding common patterns in HDFS logs, export and store the trained model in ML_Models table
//
.set-or-append ML_Models <|
//
let log_reduce_train_fl=(tbl:(*), reduce_col:string, model_name:string,
              use_logram:bool=True, use_drain:bool=True, custom_regexes: dynamic = dynamic([]), custom_regexes_policy: string = 'prepend',
              delimiters:dynamic = dynamic(' '), similarity_th:double=0.5, tree_depth:int = 4, trigram_th:int=10, bigram_th:int=15)
{
    let default_regex_table = pack_array('(/|)([0-9]+\\.){3}[0-9]+(:[0-9]+|)(:|)', '<IP>', 
                                         '([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})', '<GUID>', 
                                         '(?<=[^A-Za-z0-9])(\\-?\\+?\\d+)(?=[^A-Za-z0-9])|[0-9]+$', '<NUM>');
    let kwargs = bag_pack('reduced_column', reduce_col, 'delimiters', delimiters,'output_column', 'LogReduce', 'parameters_column', '', 
                          'trigram_th', trigram_th, 'bigram_th', bigram_th, 'default_regexes', default_regex_table, 
                          'custom_regexes', custom_regexes, 'custom_regexes_policy', custom_regexes_policy, 'tree_depth', tree_depth, 'similarity_th', similarity_th, 
                          'use_drain', use_drain, 'use_logram', use_logram, 'save_regex_tuples_in_output', True, 'regex_tuples_column', 'RegexesColumn', 
                          'output_type', 'model');
    let code = ```if 1:
        from log_cluster import log_reduce
        result = log_reduce.log_reduce(df, kargs)
    ```;
    tbl
    | extend LogReduce=''
    | evaluate python(typeof(model:string), code, kwargs)
    | project name=model_name, timestamp=now(), model
};
HDFS_log_100k
| take 100000
| invoke log_reduce_train_fl(reduce_col="data", model_name="HDFS_100K")

Výstup

Id rozsahu Původní velikost Velikost rozsahu CompressedSize Velikost indexu Rowcount
3734a525-cc08-44b9-a992-72de97b32414 10383 11546 10834 712 1

Tato funkce není podporovaná.