mirror of https://github.com/apache/druid.git
3.0 KiB
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 |