Gian Merlino 42590ae64b
Refresh query docs. (#9704)
* Refresh query docs.

Larger changes:

- New doc: querying/datasource.md describes the various kinds of
datasources you can use, and has examples for both SQL and native.
- New doc: querying/query-execution.md describes how native queries
are executed at a high level. It doesn't go into the details of specific
query engines or how queries run at a per-segment level. But I think it
would be good to add or link that content here in the future.
- Refreshed doc: querying/sql.md updated to refer to joins, reformatted
a bit, added a new "Query translation" section that explains how
queries are translated from SQL to native, and removed configuration
details (moved to configuration/index.md).
- Refreshed doc: querying/joins.md updated to refer to join datasources.

Smaller changes:

- Add helpful banners to the top of query documentation pages telling
people whether a given page describes SQL, native, or both.
- Add SQL metrics to operations/metrics.md.
- Add some color and cross-links in various places.
- Add native query component docs to the sidebar, and renamed them so
they look nicer.
- Remove Select query from the sidebar.
- Fix Broker SQL configs in configuration/index.md. Remove them from
querying/sql.md.
- Combined querying/searchquery.md and querying/searchqueryspec.md.

* Updates.

* Fix numbering.

* Fix glitches.

* Add new words to spellcheck file.

* Assorted changes.

* Further adjustments.

* Add missing punctuation.
2020-04-15 16:12:20 -07:00

3.0 KiB

id title
geo Spatial filters

Apache Druid supports two query languages: Druid SQL and native queries. This document describes functionality that is only available in the native language.

Apache Druid supports filtering specially spatially indexed columns based on an origin and a bound.

Spatial indexing

In any of the data specs, there is the option of providing spatial dimensions. For example, for a JSON data spec, spatial dimensions can be specified as follows:

{
	"type": "hadoop",
	"dataSchema": {
		"dataSource": "DatasourceName",
		"parser": {
			"type": "string",
			"parseSpec": {
				"format": "json",
				"timestampSpec": {
					"column": "timestamp",
					"format": "auto"
				},
				"dimensionsSpec": {
					"dimensions": [],
					"spatialDimensions": [{
						"dimName": "coordinates",
						"dims": ["lat", "long"]
					}]
				}
			}
		}
	}
}

Spatial filters

property description required?
dimName The name of the spatial dimension. A spatial dimension may be constructed from multiple other dimensions or it may already exist as part of an event. If a spatial dimension already exists, it must be an array of coordinate values. yes
dims A list of dimension names that comprise a spatial dimension. no

The grammar for a spatial filter is as follows:

"filter" : {
    "type": "spatial",
    "dimension": "spatialDim",
    "bound": {
        "type": "rectangular",
        "minCoords": [10.0, 20.0],
        "maxCoords": [30.0, 40.0]
    }
}

Bound types

rectangular

property description required?
minCoords List of minimum dimension coordinates for coordinates [x, y, z, …] yes
maxCoords List of maximum dimension coordinates for coordinates [x, y, z, …] yes

radius

property description required?
coords Origin coordinates in the form [x, y, z, …] yes
radius The float radius value yes

polygon

property description required?
abscissa Horizontal coordinate for corners of the polygon yes
ordinate Vertical coordinate for corners of the polygon yes