Loading

DISSECT

Stack Serverless

DISSECT enables you to extract structured data out of a string.

Syntax

DISSECT input "pattern" [APPEND_SEPARATOR="<separator>"]

Parameters

input
The column that contains the string you want to structure. If the column has multiple values, DISSECT will process each value.
pattern
A dissect pattern. If a field name conflicts with an existing column, the existing column is dropped. If a field name is used more than once, only the rightmost duplicate creates a column.
<separator>
A string used as the separator between appended values, when using the append modifier.

Description

DISSECT enables you to extract structured data out of a string. DISSECT matches the string against a delimiter-based pattern, and extracts the specified keys as columns.

Refer to Process data with DISSECT for the syntax of dissect patterns.

Examples

The following example parses a string that contains a timestamp, some text, and an IP address:

ROW a = "2023-01-23T12:15:00.000Z - some text - 127.0.0.1"
| DISSECT a """%{date} - %{msg} - %{ip}"""
| KEEP date, msg, ip
date:keyword msg:keyword ip:keyword
2023-01-23T12:15:00.000Z some text 127.0.0.1

By default, DISSECT outputs keyword string columns. To convert to another type, use Type conversion functions:

ROW a = "2023-01-23T12:15:00.000Z - some text - 127.0.0.1"
| DISSECT a """%{date} - %{msg} - %{ip}"""
| KEEP date, msg, ip
| EVAL date = TO_DATETIME(date)
msg:keyword ip:keyword date:date
some text 127.0.0.1 2023-01-23T12:15:00.000Z