Kv
Filter plugin : Kv
- Author: InterestingLab
 - Homepage: https://interestinglab.github.io/seatunnel-docs
 - Version: 1.0.0
 
Description
Extract all Key-Values of the specified string field with configured field_split, which are often used to parse the url parameter.
Options
| name | type | required | default value | 
|---|---|---|---|
| default_values | array | no | [] | 
| exclude_fields | array | no | [] | 
| field_prefix | string | no | |
| field_split | string | no | & | 
| include_fields | array | no | [] | 
| source_field | string | no | raw_message | 
| target_field | string | no | __root__ | 
| value_split | string | no | = | 
default_values [array]
Default values can be set by default_values by key=defalut_value(key and value are separated by =).
Multiple default values are specified as follows: default_values = ["mykey1=123", "mykey2=seatunnel"]
exclude_fields [array]
Fields in the exclude_fields will be abandoned.
field_prefix [string]
A string to prepend to all of the extracted keys.
field_split [string]
A string of characters to use as single-character field delimiters for parsing key-value pairs.
include_fields [array]
An array specifying the parsed keys which should be added to the event.
source_field [string]
Source field.
target_field [string]
All extracted fields will be put into target_field.
value_split [string]
A non-empty string of characters to use as single-character value delimiters for parsing key-value pairs.
Examples
With
target_fieldkv {
source_field = "message"
target_field = "kv_map"
field_split = "&"
value_split = "="
}- Input
 
+-----------------+
|message |
+-----------------+
|name=ricky&age=23|
|name=gary&age=28 |
+-----------------+- Output
 
+-----------------+-----------------------------+
|message |kv_map |
+-----------------+-----------------------------+
|name=ricky&age=23|Map(name -> ricky, age -> 23)|
|name=gary&age=28 |Map(name -> gary, age -> 28) |
+-----------------+-----------------------------+
Without
target_fieldkv {
source_field = "message"
field_split = "&"
value_split = "="
}- Input
 
+-----------------+
|message |
+-----------------+
|name=ricky&age=23|
|name=gary&age=28 |
+-----------------+- Output
 
+-----------------+---+-----+
|message |age|name |
+-----------------+---+-----+
|name=ricky&age=23|23 |ricky|
|name=gary&age=28 |28 |gary |
+-----------------+---+-----+