log_reduce_full_fl()
Funkce log_reduce_full_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ů je shodná s log_reduce_fl(). log_reduce_fl()
Výstupem je ale souhrnná tabulka vzorů, zatímco tato funkce vypíše úplnou tabulku obsahující vzor a parametry na každý řádek.
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|
invoke
log_reduce_full_fl(
reduce_col [,
pattern_col [ ,
parameters_col [ ,
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. |
pattern_col | string |
✔️ | Název sloupce řetězce, který má vzor naplnit. |
parameters_col | string |
✔️ | Název sloupce řetězce, který naplní parametry vzoru. |
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 zakázaný, nemá tento parametr žá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_full_fl=(tbl:(*), reduce_col:string, pattern_col:string, parameters_col: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', pattern_col, 'parameters_column', parameters_col,
'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', 'full');
let code = ```if 1:
from log_cluster import log_reduce
result = log_reduce.log_reduce(df, kargs)
```;
tbl
| evaluate python(typeof(*), code, kwargs)
};
// 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.
let log_reduce_full_fl=(tbl:(*), reduce_col:string, pattern_col:string, parameters_col: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', pattern_col, 'parameters_column', parameters_col,
'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', 'full');
let code = ```if 1:
from log_cluster import log_reduce
result = log_reduce.log_reduce(df, kargs)
```;
tbl
| evaluate python(typeof(*), code, kwargs)
};
//
// Finding common patterns in HDFS logs, a commonly used benchmark for log parsing
//
HDFS_log
| take 100000
| extend Patterns="", Parameters=""
| invoke log_reduce_full_fl(reduce_col="data", pattern_col="Patterns", parameters_col="Parameters")
| take 10
Výstup
data | Vzory | Parametry |
---|---|---|
081110 | 215858 | 15485 INFO dfs. DataNode$PacketResponder: Přijatý blok blk_5080254298708411681 velikosti 67108864 z /10.251.43.21 081110 <NUM><> INFO dfs. DataNode$PacketResponder: Přijatý blok blk_<NUM>> velikosti <z <IP> adresy {""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: Příjem bloku blk_-7037346755429293022 src: /10.251.43.21:45933 dest: /10.251.43.21:50010 081110 <ČÍSLO><ČÍSLO> INFO dfs. DataNode$DataXceiver: Příjem bloku 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: PacketResponder 2 pro blok blk_-7746692545918257727 ukončení 081110 <NUM><> INFO dfs. DataNode$PacketResponder: PacketResponder <NUM> for block blk_<NUM> ukončující "{""parameter_0": ""215858", ""parameter_1"": ""15496", ""parameter_2"": ""2", ""parameter_3": "-7746692545918257727"}" |
081110 | 215858 | 15496 INFO dfs. DataNode$PacketResponder: Přijatý blok blk_-7746692545918257727 velikosti 67108864 z /10.251.107.227 081110 <NUM><> INFO dfs. DataNode$PacketResponder: Přijatý blok blk_<NUM> velikosti <> z <IP> adresy {" 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: Příjem bloku blk_-8578644687709935034 src: /10.251.107.227:39600 dest: /10.251.107.227:50010 081110 <NUM><> INFO dfs. DataNode$DataXceiver: Příjem bloku 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: Příjem bloku blk_722881101738646364 src: /10.251.75.79:58213 dest: /10.251.75.79:50010 081110 <ČÍSLO><> INFO dfs. DataNode$DataXceiver: Příjem bloku 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: PacketResponder 2 pro blok blk_-7110736255599716271 ukončení 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: Přijatý blok blk_-7110736255599716271 velikosti 67108864 z /10.251.42.246 081110 <NUM><> INFO dfs. DataNode$PacketResponder: Přijatý blok blk_<NUM>> velikosti <z <IP> adresy {""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: Příjem bloku blk_7257432994295824826 src: /10.251.26.8:41803 dest: /10.251.26.8:50010 081110 <ČÍSLO><> INFO dfs. DataNode$DataXceiver: Příjem bloku 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: Příjem bloku blk_-7771332301119265281 src: /10.251.43.210:34258 dest: /10.251.43.210:50010 081110 <NUM><> INFO dfs. DataNode$DataXceiver: Příjem bloku 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"}" |
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