log_reduce_train_fl()
Funkce log_reduce_train_fl()
najde běžné vzory v částečně strukturovaných textových sloupcích, jako jsou čáry protokolu, a shlukuje čá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ý vypíše souhrnnou tabulku vzorů, tato funkce vypíše 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é řádky 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.
- Modul plug-in Pythonu musí být v databázi povolený. To se vyžaduje pro vložený Python použitý ve funkci.
Syntaxe
T log_reduce_train_fl(
invoke
|
reduce_col ,
model_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 naleznete v části Další informace o algoritmu .
Name | Type | Pož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 Logramu. 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 náhradních symbolů, které se mají prohledávat v každém vstupním řádku, a nahrazeno příslušným odpovídajícím symbolem. 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 jsou custom_regexes předzálohovány, připojovat nebo nahrazovat výchozí. Výchozí hodnota je prepend. | |
oddělovače | dynamic |
Dynamické pole obsahující řetězce oddělovače. Výchozí hodnota je dynamic([" "]) definování mezery jako jediného oddělovače 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 vyprazdnění zakázané, nemá tento parametr žádný vliv. | |
tree_depth | int |
Zvýšení tree_depth zlepšuje modul runtime algoritmu vyprázdnění, ale může snížit jeho přesnost. Výchozí hodnota je 4. Pokud je vyprazdnění zakázané, nemá tento parametr žádný vliv. | |
trigram_th | int |
Snížení trigram_th zvyšuje pravděpodobnost, že Logram nahradí tokeny zástupnými cardy. 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 cardy. Výchozí hodnota je 15. Pokud je Logram, pak tento parametr nemá žádný vliv. |
Definice funkce
Funkci můžete definovat vložením jejího kódu jako funkce definovanou dotazem nebo vytvořením jako uložené funkce v databázi 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 nemůže běžet samostatně. Musí následovat příkaz tabulkového výrazu. Pokud chcete spustit funkční příklad, podívejte se na příkladlog_reduce_fl()
.
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, vyvoláte 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
ExtentId | OriginalSize | ExtentSize | Komprimace | IndexSize | RowCount |
---|---|---|---|---|---|
3734a525-cc08-44b9-a992-72de97b32414 | 10383 | 11546 | 10834 | 712 | 0 |
Tato funkce není podporovaná.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro