2.6 KiB
2.6 KiB
空间过滤器(Spatial Filters)
[!WARNING] Apache Druid支持两种查询语言: Druid SQL 和 原生查询。该文档描述的功能仅仅在原生查询中可用。
Apache Druid支持基于原点和边界过滤特殊的空间索引列。
空间索引
在任意的数据spec中,有一种可以提供空间维度的选项。例如,在JSON数据中,空间维度可以如下描述:
{
"type": "hadoop",
"dataSchema": {
"dataSource": "DatasourceName",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp",
"format": "auto"
},
"dimensionsSpec": {
"dimensions": [],
"spatialDimensions": [{
"dimName": "coordinates",
"dims": ["lat", "long"]
}]
}
}
}
}
}
空间过滤器
属性 | 描述 | 是否必须 |
---|---|---|
dimName |
空间维度的名称。一个空间维度可以从多个其他维度构建,或者它可能已经作为一个事件的一部分存在。如果空间维度已经存在,则它必须是一个坐标值数组。 | 是 |
dims |
构成空间维度的维度名称列表。 | 否 |
空间过滤器的语法如下:
"filter" : {
"type": "spatial",
"dimension": "spatialDim",
"bound": {
"type": "rectangular",
"minCoords": [10.0, 20.0],
"maxCoords": [30.0, 40.0]
}
}
边界类型(Bound Types)
rectangular
属性 | 描述 | 是否必须 |
---|---|---|
minCoords |
对于坐标[x, y, z, …]的最小维度坐标 | 是 |
maxCoords |
对于坐标[x, y, z, …]的最大维度坐标 | 是 |
radius
属性 | 描述 | 是否必须 |
---|---|---|
coords |
对于坐标 [x, y, z, …]的起始坐标值 | 是 |
radius |
浮点型弧度值 | 是 |
polygon
属性 | 描述 | 是否必须 |
---|---|---|
abscissa |
多边形角点的水平坐标 | 是 |
ordinate |
多边形角点的垂直坐标 | 是 |