Data types in Devo
When raw data arrives to Devo and is grouped into tables, each row represents an event and each column represents a different type of data. Devo automatically assigns one of its recognized data types to each column. There are two ways of checking a column data type.
In the query window, hover over a column header and a green icon will appear on the left. Hover over the icon until the cursor changes shape and a contextual menu will appear. You can see the name of the column and data type below the name.
If you want to check all data types of all columns, select the Search column layout option in the toolbar. A window with all columns and data types will appear.
When performing query operations such as applying filters or creating new columns, you must take into account the data types of the columns you add as arguments, since each function requires specific types of data.
For example, say you want to get the regions corresponding to a set of IP addresses. You must create a new column using the Geolocated Region Name operation, and add an Ip type column as an argument. The created column will return the corresponding regions as sentences of characters (String data type).
The following table describes the available data types in Devo:
The string data type represents a sequence of characters.
"Hello user 25", "firstname.lastname@example.org"...
The integer data type represents mathematical integers, that is, numbers that can be zero, positive or negative values but no decimal values.
21, 0, -4...
The integer data type represents mathematical integers, that is, numbers that can be zero, positive or negative values but no decimal values. Bigints are values superior to int64.
The float data type represents a decimal (floating-point) number.
The boxar(int1) data type represents a byte array in the form of a hexadecimal string.
The boolean data type represents the values true and false.
The duration data type represents an amount of time that must be an integer number followed by a suffix: d (for days), h (for hours), m (for minutes) and s (for seconds). Milliseconds have no suffix and are simply represented with the corresponding integer number.
1d, 20m, 340...
The timestamp data type represents a date in 'yyyy-MM-dd HH:mm:ss.SSS' format.
The geocoord data type represents a valid geocoord, which may be either a set of sexagesimal coordinates based on latitude and longitude values (latlon), or a hash representation of coordinates (geohash).
40°24'46.3"N 3°41'43.8"W, ezjmguvj...
The ip data type represents IPv4 addresses in dot-decimal notation.
The ip6 data type represents IPv6 addresses.
The net4 data type represents an IPv4 network in x.x.x.x/s format.
The net6 data type represents an IPv6 network in x:x:x:x:x:x/s format.
The regexp data type represents a regular expression.
The Template (template) operation outputs values in this data type.
The distinct count data type represents an estimated count of distinct elements in a data stream.
The image data type represents a Base64 encoded image.
The To image (image) operation processes a Base64 enconded string and outputs its results in this data type.
This data type is not required as input for any other operation.
The mac data type represents a valid MAC address.
The namepattern data type represents a part of a table name that can be used as a wildcard to filter sets of names in set(name) format using the Any name matches (anymatches) operation. You can transform strings to name patterns using the Glob pattern on names (nameglob) operation.
The set(name) data type represents a set of table names. You can only get a column with this type of data after performing a global search. You will see a column called tables that returns a list of tables that contain the terms you looked for.
my.app.test, my.app.test2, demo.ecommerce.data...
This data type identifies content formatted in JSON syntax. This type is required as input for the Jq eval operation and is the output type for the jsonparse operation.
This data type identifies a jq filter which is required as input for the Jq eval operation. This data type is created using the Jq filter compile operation.
jq is a command-line JSON processor. Learn more here.