时空数据查询

对于时空数据库中的数据,数据查询功能提供了四个查询子模块:查询转换、实时状态、聚合统计、数据导出。

在数据查询页面左侧的目录区域中,选择时空数据源,页面右侧出现该数据源的查询页签,关于页签中四个查询子模块的分别介绍如下。

查询转换

查询转换的主要功能为从海量数据中查询一部分满足条件的数据,将数据中的某些列转换后进行展示(也可以仅做查询)。

查询转换的步骤如下:

  1. 配置基本查询条件:

  1. 展开“转换”区域,配置数据转换规则。

填写完成后,点击操作列列中的图标,该条转换规则配置完成。支持配置多条转换规则,点击操作列中的图标,下方会新出现一行空的转换配置。如需删除该转换规则,可点击操作列中的图标。

  1. 展开“采样”区域,配置采样参数。

采样是指按照此字段在数据集中拾取其中一部分作为查询结果返回。采样的最终返回结果受之前配置的结果数量限制。如果数据总量 * 采样率 > 结果数量,则最终返回的数量 = 结果数量;如果数据总量 * 采样率 结果数量,则数据总量 * 采样率 < 最终返回的数量 < 结果数量。

  1. 单击<查询>按钮,查看返回结果。

查询完成后,可以单击<重置>按钮,重置查询条件为默认值。

查询转换的查询结果会以两部分数据作为展示:表格、地图。点击“表格”可折叠表格展示结果,点击“地图”可折叠地图展示结果。在“地图”展示区域,将鼠标悬于地图数据之上,可以复现出该数据详情。

表-1 查询转换中函数说明

函数名称

参数位次

参数类型

参数描述

函数释义

Area

1

Geometry

地理位置属性

求几何体面积

Concatenate

1

String

属性名称

若填写属性名称,则返回属性值ToString后的值,若填写数字,返回数字本身,其他返回空

IEEEremainder

1

number

被除数

按照 IEEE 754 标准的规定,对两个参数进行余数运算

2

number

除数

PropertyExists

1

String

属性名称

判断属性是否存在

abs

1

Integer/String

运算数/属性名称

整型绝对值求值

abs_2

1

Long/String

运算数/属性名称

Long型绝对值求值

abs_3

1

Float/String

运算数/属性名称

浮点型绝对值求值

abs_4

1

Double/String

运算数/属性名称

双精度浮点值绝对值求值

acos

1

Float/String

运算数/属性名称

求反余弦值

area2

1

Geometry

地理位置属性

求几何体面积

asin

1

Float/String

运算数/属性名称

求反正弦值

atan

1

Float/String

运算数/属性名称

求反正切值

atan2

1

Float/String

X坐标值

返回以弧度表示的y/x的反正切

2

Float/String

Y坐标值

boundary

1

Geometry

空间属性

按照Geojson的形式返回区域边界信息

boundaryDimension

1

Geometry

空间属性

边界维度

buffer

1

Geometry

空间属性

计算在给定的几何距离内包含所有点的区域

2

number

距离属性

bufferWithSegments

1

Geometry

空间属性

使用指定的距离返回几何图形周围的缓冲区域,并使用指定数量的线段表示圆的象限。

2

number

距离属性

3

number

段数

ceil

1

number/String

属性或数字

数字类属性、数字向上舍入,向上取整

centroid

1

Geometry

空间属性

返回空间属性中心点,以Geojson返回

convexHull

1

Geometry

空间属性

计算出图像的凸包

cos

1

number

弧度值

根据弧度值求余弦值

dateDifference

1

Date

时间1

计算时间1与时间2的时差,结果为毫秒

2

Date

时间2

difference

1

Geometry

空间属性A

(A-AB)AB形状的差异分析就是A中包含而B中不包含的所有点的集合

2

Geometry

空间属性B

dimension

1

Geometry

空间属性

计算空间属性维度

distance

1

Geometry

空间属性A

计算空间属性A与空间属性B的距离

2

Geometry

空间属性B

endAngle

1

linestring

空间线型属性

取出圆弧的最终角度

endPoint

1

linestring

空间线型属性

取出线的最后一个点

equalTo

1

/

属性1

判断两个属性是否相同

2

/

属性2

equalsExact

1

Geometry

空间属性A

空间属性A和空间属性B是否完全相同

2

Geometry

空间属性B

exp

1

number

数值属性

exp()方法返回x的指数e^x

floor

1

Double

双精度浮点数

对浮点数向下取整

geomFromWKT

1

String

WKT字符串

WKT字符串转化为Geometry对象

geomLength

1

Geometry

空间属性

返回形状的长度/周长(在笛卡尔空间中计算)

geometryType

1

Geometry

空间属性

以字符串形式返回形状的类型

getX

1

Point

点型空间数据

获取数据经度(横坐标)

getY

1

Point

点型空间数据

获取数据维度(纵坐标)

greaterEqualThan

1

/

属性A

属性A大于等于属性B

2

/

属性B

greaterThan

1

/

属性A

属性A大于属性B

2

/

属性B

in10

1

/

属性值A

判断属性值A是否在属性值B1-B10列表中

2

/

属性值B1

3

/

属性值B2

4

/

属性值B3

5

/

属性值B4

6

/

属性值B5

7

/

属性值B6

8

/

属性值B7

9

/

属性值B8

10

/

属性值B9

11

/

属性值B10

in2

1

/

属性值A

判断属性值A是否在属性值B1B2中(in3in4in5in6in7in8in9功能相近,此处省略)

2

/

属性值B1

3

/

属性值B2

int2bbool

1

-

-

-

interiorPoint

1

Geometry

空间属性

求空间属性内点

intersection

1

Geometry

空间属性

计算空间属性交集

2

Geometry

空间属性

isNull

1

/

属性值

判断属性是否为空

isRing

1

Geometry

空间属性

判断对象属性是否为环形

isWithinDistance

1

Geometry

空间属性

判断两个几何体距离是否超出给定距离

2

Geometry

空间属性

3

Double

距离属性

length

1

String

字符串属性

计算字符串长度

lessEqualThan

1

number

属性A

属性A是否小于等于属性B

2

number

属性B

lessThan

1

number

属性A

属性A是否小于属性B

2

number

属性B

log

1

number

数字属性A

计算A的对数

max

1

number

数字属性A

计算AB中较大的值,max_2 长整型,max_3 单精度浮点数,max_4 整型,minmax类似

2

number

数字属性B

mincircle

1

Geometry

空间属性

获取该空间属性的最小覆盖圆

minrectangle

1

Geometry

空间属性

获取该空间属性的最小覆盖矩形

modulo

1

number

被除数

取模

2

number

除数

notEqualTo

1

/

属性A

判断属性A是否不等于属性B

2

/

属性B

numInteriorRing

1

Geometry

空间属性

空间属性(多边形)内边界数量

offset

1

number

经度偏移量

平移空间属性

2

number

维度偏移量

parseDouble

1

String

字符串属性A

将字符串转化为Double

parseInt

1

String

字符串属性A

将字符串转化为Int

parseLong

1

String

字符串属性A

将字符串转化为Long

pi

-

-

-

π

pointN

1

Geometry

空间属性

只支持LINESTRING,且如果输入的index大于linestring的长度,则不会有结果

2

Integer

位次索引n

pow

1

Double

base

baseexponent次方

2

Double

exponent

random

-

-

-

随机数生成(0-1

rint

1

String

Double类数字属性A

计算最接近A的整数

round

1

Number

数字属性

四舍五入

roundDouble

1

Double

数字属性

四舍五入

round_2

1

Number

数字属性

四舍五入结果为LONG

sin

1

Number

弧度值

根据弧度值求正弦值

sqrt

1

Number

数字属性

求解平方根

startPoint

1

LineString

线型空间数据

取线的其实点经纬度

strEndsWith

1

String

字符串Base

字符串Base是否已Postfix结尾

2

String

字符串Postfix

strEqualsIgnoreCase

1

String

字符串A

字符串A是否与字符串B相同忽略大小写

2

String

字符串B

strIndexOf

1

String

字符串A

字符串B在字符串A中首次出现的位置, 字符串需要带上’’单引号

2

String

字符串B

strLastIndexOf

1

String

字符串A

字符串B在字符串A中末次出现的位置, 字符串需要带上’’单引号

2

String

字符串B

strLength

1

String

字符串

字符串长度计算

strReplace

1

String

原字符串

将源字符串中的某些字符替换为新的字符

2

String

被替换字符串

3

String

替换字符串

4

boolean

是否全部替换

strStartsWith

1

String

源字符串

判断源字符串是否以字符串B开头

2

String

字符串B

strSubstring

1

String

字符串

字符串子串

2

integer

起始位置

3

integer

结束位置

strSubstringStart

1

String

字符串

字符串子串

2

integer

起始位置

strToLowerCase

1

String

字符串

将源字符串转化为小写

strToUpperCase

1

String

字符串

将源字符串转化为大写

strTrim

1

String

字符串

去除字符串两边空格

tan

1

Number

弧度值

用弧度计算正切值

toDegrees

1

Number

弧度值

将弧度值转化我角度

toRadians

1

Number

角度值

将角度转化为弧度

toWKT

1

Geometry

空间属性

将空间属性转化为WKT字符串

 

支持对时空数据执行如下操作:

新建

查询结束后会在表格按钮下出现<新建>按钮,点击新建,弹出新建弹框,可以选择往对应的存储集群中添加数据,集群来源于建表时添加的集群选项,数据添加的方式有两种:

键值对填写,按照对应字段要求填写完成即可,GeoJson需要按照GeoJson标准格式添加数据,标准格式在输入框占位符中有具体提示可参考输入,若有问题,可参考GeoJson官网对照输入。

两种添加方式可随意选择一种输入即可,输入完成以后点击<确认>可提交添加请求,若需要取消添加点击<取消>即可

查看

在列表展示中有些列因为数据过长,而被隐藏了部分,需要查看数据可将鼠标悬浮于其上,即可显示全部数据,也可以在操作栏点击<查看>,在弹框中可以查看该行所有数据详情展示

编辑

选中查询结果中的选中某一列,在操作栏点击<编辑>,在弹出框中,选择所需要编辑的属性,编辑后点击<确定>可提交更改,点击<取消>可取消编辑

删除

选中查询结果中的某一列,在操作栏点击<删除>,在弹出框中,点击<确定>可永久删除该数据,点击<取消>取消删除

实时状态

实时状态主要功能为从暂态数据(上报时空数据的对象的当前上报的数据)中查询一部分满足条件的数据,将数据中的某些列转换后作展示(也可以仅做查询),关于其操作与查询转换完全相同,在此不做赘述。

聚合统计

时空表聚合统计是使用CQL条件进行过滤,然后选择对应的聚合函数对结果数据进行统计分析,支持分组统计。统计的结果数据只包含统计结果,不包含原始数据,结果展示使用图表形式呈现。分组统计使用表格形式呈现结果。

操作步骤如下:

  1. 点击数据查询表列表的时空表,点击聚合统计标签进入聚合统计页面。

  1. 在时空表名下拉列表中选择对应需要统计的表。

  1. CQL中输入CQL查询语句(默认为INCLUDE,即全表查询)。

  1. 在聚合统计中分别填入:属性别名,下拉选择统计函数,按照格式填写参数,点击确认当前栏,如需要统计多个,点击+添加一行重复操作。

  1. 点击统计,等待结果。

表-2 统计分析

类型

说明

表达式

图形

count

数量

Count()

柱图

min/max

最小值/最大值

MinMax(field)

柱图

enumeration

枚举

Enumeration(field)

柱图

top-k

Top-k

TopK(field)

柱图, 堆叠

histogram

直方图

Histogram(field,number,min,max)

柱图

descriptivestats

描述性统计

DescriptiveStats(...attrs)

表格

GroupBy

统计数据

GroupBy(field, function(..args))

柱图

 

可以使用GroupBy根据分组值计算统计数据。

例如,GroupBy ("foo", MinMax("bar"))

Z3频率和直方图是特殊的统计数据,它们将对几何图形和日期创建的Z3值进行操作。

对于histogram统计:

对于DescriptiveStats(描述性)统计:属性只能为数字类型(IntDoubleLongFloat)。

表-3 参数说明

参数

取值类型

说明

解释

count

Long

统计结果数

DescriptiveStats(...fields)参数为可变数字。统计结果各个属性除去count均为数组,数组中统计结果顺序同参数顺序。

minimum

Double

最小值

maximum

Double

最大值

mean

Double

平均值

population_variance

Double

总体方差

population_standard_deviation

Double

总体标准差

population_skewness

Double

总体偏度

population_kurtosis

Double

总体峭度

population_excess_kurtosis

Double

总体过度峰度

sample_variance

Double

样本方差

sample_standard_deviation

Double

样本标准差

sample_skewness

Double

样本偏度

sample_kurtosis

Double

样本峰度

sample_excess_kurtosis

Double

样本过度峰度

population_covariance

Double

总体协方差

population_correlation

Double

总体相关度

sample_covariance

Double

样本协方差

sample_correlation

Double

样本相关度

 

数据导出

如果查询条件匹配到的结果数据量超过时空引擎限制,可以选择使用查询条件将结果数据导出到HDFS,导出任务是运行在YARN上的MR任务,任务的创建可以通过查询界面一键创建并提交一次性任务,直接由时空引擎管理,记录任务定义,运行状态,结果导出目录,可根据运行记录打开HDFS文件管理器查看导出的数据文件。

操作步骤如下:

  1. 点击数据查询表列表的时空表,点击数据导出标签进入数据导出页面。

  1. 选择需要导出的表名,填写查询CQL语句,查询字段中,勾选需要导出的字段,选则排序方式、排序字段、导出路径、文件格式及文件名,单击导出即可。

  1. 如果需要对字段转换,可在转换标签下添加转换函数,函数说明见查询转换页面。

  1. 页面最下方可查看当前表所有的导出任务,点击查询可刷新。当文件导出显示成功后,可点击查看文件从文件浏览框中下载文件至本地。

此处展示一次性导出任务的结束时间,在任务没有结束时,此处展示时间为任务状态最后监测的时间,用于对任务进行监控,可直观观察任务运行状态的变化情况。