druid.io - nested data









Search Preview

Druid |

druid.io

.io > druid.io

SEO audit: Content analysis

Language Error! No language localisation is found.
Title Druid |
Text / HTML ratio 44 %
Frame Excellent! The website does not use iFrame solutions.
Flash Excellent! The website does not have any flash contents.
Keywords cloud field JSON fields list type path jq root true column defined map metrica ignore_me dim2 metric discovered String Spec automatically
Keywords consistency
Keyword Content Title Description Headings
field 14
JSON 12
fields 9
list 7
type 5
path 5
Headings
H1 H2 H3 H4 H5 H6
1 1 0 0 0 0
Images We found 0 images on this web page.

SEO Keywords (Single)

Keyword Occurrence Density
field 14 0.70 %
JSON 12 0.60 %
fields 9 0.45 %
list 7 0.35 %
type 5 0.25 %
path 5 0.25 %
jq 5 0.25 %
root 5 0.25 %
true 5 0.25 %
column 5 0.25 %
defined 5 0.25 %
map 4 0.20 %
metrica 4 0.20 %
ignore_me 4 0.20 %
dim2 3 0.15 %
metric 3 0.15 %
discovered 3 0.15 %
String 3 0.15 %
Spec 3 0.15 %
automatically 3 0.15 %

SEO Keywords (Two Word)

Keyword Occurrence Density
is a 6 0.30 %
the field 6 0.30 %
will be 6 0.30 %
a map 4 0.20 %
the root 4 0.20 %
at the 4 0.20 %
for type 4 0.20 %
the JSON 3 0.15 %
a list 3 0.15 %
be automatically 3 0.15 %
list of 3 0.15 %
the example 3 0.15 %
type path 3 0.15 %
metric column 2 0.10 %
Long metric 2 0.10 %
in the 2 0.10 %
defined in 2 0.10 %
root level 2 0.10 %
example above 2 0.10 %
field is 2 0.10 %

SEO Keywords (Three Word)

Keyword Occurrence Density Possible Spam
at the root 4 0.20 % No
a list of 3 0.15 % No
for type path 3 0.15 % No
defined in the 2 0.10 % No
Type Description Required 2 0.10 % No
the example above 2 0.10 % No
the root level 2 0.10 % No
path or jq 2 0.10 % No
map or list 2 0.10 % No
a map or 2 0.10 % No
not a map 2 0.10 % No
is a map 2 0.10 % No
value is a 2 0.10 % No
is a list 2 0.10 % No
type path and 2 0.10 % No
defined because its 2 0.10 % No
no default == 2 0.10 % No
Field Type Description 2 0.10 % No
be automatically discovered 2 0.10 % No
will be automatically 2 0.10 % No

SEO Keywords (Four Word)

Keyword Occurrence Density Possible Spam
will be automatically discovered 2 0.10 % No
be explicitly defined because 2 0.10 % No
a map or list 2 0.10 % No
not a map or 2 0.10 % No
is a list of 2 0.10 % No
value is a map 2 0.10 % No
Field Type Description Required 2 0.10 % No
Spec Field Type Description 2 0.10 % No
explicitly defined because its 2 0.10 % No
for type path and 2 0.10 % No
at the root level 2 0.10 % No
fields referring to a 1 0.05 % No
example above dim1 dim2 1 0.05 % No
the example above dim1 1 0.05 % No
In the example above 1 0.05 % No
values In the example 1 0.05 % No
single values In the 1 0.05 % No
of single values In 1 0.05 % No
only autodetect fields at 1 0.05 % No
autodetect fields at the 1 0.05 % No

Druid.io Spined HTML


Druid | Technology Use Cases Powered By Docs Community Download MENU MENU Table of Contents JSON Flatten Spec Field Type Description Required useFieldDiscovery Boolean If true, interpret all fields with singular values (not a map or list) and unappetizing lists (lists of singular values) at the root level as columns. no (default == true) fields JSON Object variety Specifies the fields of interest and how they are accessed no (default == []) Defining the JSON Flatten Spec allows nested JSON fields to be flattened during ingestion time. Only the JSON ParseSpec supports flattening. 'fields' is a list of JSON Objects, describing the field names and how the fields are accessed: JSON Field Spec Field Type Description Required type String Type of the field, "root", "path" or "jq". yes name String This string will be used as the post name when the data has been ingested. yes expr String Defines an expression for accessing the field within the JSON object, using JsonPath notation for type "path", and jackson-jq for type "jq". This field is only used for type "path" and "jq", otherwise ignored. only for type "path" or "jq" Suppose the event JSON has the pursuit form: { "timestamp": "2015-09-12T12:10:53.155Z", "dim1": "qwerty", "dim2": "asdf", "dim3": "zxcv", "ignore_me": "ignore this", "metrica": 9999, "foo": {"bar": "abc"}, "foo.bar": "def", "nestmet": {"val": 42}, "hello": [1.0, 2.0, 3.0, 4.0, 5.0], "mixarray": [1.0, 2.0, 3.0, 4.0, {"last": 5}], "world": [{"hey": "there"}, {"tree": "apple"}], "thing": {"food": ["sandwich", "pizza"]} } The post "metrica" is a Long metric column, "hello" is an variety of Double metrics, and "nestmet.val" is a nested Long metric. All other columns are dimensions. To flatten this JSON, the parseSpec could be specified as follows: "parseSpec": { "format": "json", "flattenSpec": { "useFieldDiscovery": true, "fields": [ { "type": "root", "name": "dim1" }, "dim2", { "type": "path", "name": "foo.bar", "expr": "$.foo.bar" }, { "type": "root", "name": "foo.bar" }, { "type": "path", "name": "path-metric", "expr": "$.nestmet.val" }, { "type": "path", "name": "hello-0", "expr": "$.hello[0]" }, { "type": "path", "name": "hello-4", "expr": "$.hello[4]" }, { "type": "path", "name": "world-hey", "expr": "$.world[0].hey" }, { "type": "path", "name": "worldtree", "expr": "$.world[1].tree" }, { "type": "path", "name": "first-food", "expr": "$.thing.food[0]" }, { "type": "path", "name": "second-food", "expr": "$.thing.food[1]" }, { "type": "jq", "name": "first-food-by-jq", "expr": ".thing.food[1]" }, { "type": "jq", "name": "hello-total", "expr": ".hello | sum" } ] }, "dimensionsSpec" : { "dimensions" : [], "dimensionsExclusions": ["ignore_me"] }, "timestampSpec" : { "format" : "auto", "column" : "timestamp" } } Fields "dim3", "ignore_me", and "metrica" will be automatically discovered considering 'useFieldDiscovery' is true, so they have been omitted from the field spec list. "ignore_me" will be automatically discovered but excluded as specified by dimensionsExclusions. Aggregators should use the metric post names as specified in the flattenSpec. Using the example above: "metricsSpec" : [ { "type" : "longSum", "name" : "path-metric-sum", "fieldName" : "path-metric" }, { "type" : "doubleSum", "name" : "hello-0-sum", "fieldName" : "hello-0" }, { "type" : "longSum", "name" : "metrica-sum", "fieldName" : "metrica" } ] Note that: For convenience, when defining a root-level field, it is possible to pinpoint only the field name, as a string, shown with "dim2" above. Enabling 'useFieldDiscovery' will only autodetect fields at the root level with a single value (not a map or list), as well as fields referring to a list of single values. In the example above, "dim1", "dim2", "dim3", "ignore_me", "metrica", and "foo.bar" (at the root) would be automatically detected as columns. The "hello" field is a list of Doubles and will be autodiscovered, but note that the example ingests the individual list members as separate fields. The "world" field must be explicitly specified considering its value is a map. The "mixarray" field, while similar to "hello", must moreover be explicitly specified considering its last value is a map. Duplicate field definitions are not allowed, an exception will be thrown. If wheels field discovery is enabled, any discovered field with the same name as one once specified in the field specs will be skipped and not widow twice. The JSON input must be a JSON object at the root, not an array. e.g., {"valid": "true"} and {"valid":[1,2,3]} are supported but [{"invalid": "true"}] and [1,2,3] are not. http://jsonpath.herokuapp.com/ is useful for testing the path expressions. jackson-jq supports subset of ./jq syntax. Please refer jackson-jq document. Community ·  Download ·  Powered by Druid ·  FAQ ·  License  ·   ·  Except where otherwise noted, licensed under CC BY-SA 4.0