上云无忧 > 文档中心 > 百度智能云时序时空数据库TSDB - 时空服务
时序时空数据库TSDB
百度智能云时序时空数据库TSDB - 时空服务

文档简介:
TSDB目前已支持时空服务,帮助用户更高效的处理与空间地理位置相关的数据。 使用说明: TSDB目前的SQL查询接口已支持多种与空间地理位置相关的函数,包括二维计算和球面计算。借助这类函数的强大能力,用户可以使用SQL方便地对空间地理位置相关的数据进行计算、分析,挖掘数据价值。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

TSDB目前已支持时空服务,帮助用户更高效的处理与空间地理位置相关的数据。

使用说明

TSDB目前的SQL查询接口已支持多种与空间地理位置相关的函数,包括二维计算和球面计算。借助这类函数的强大能力,用户可以使用SQL方便地对空间地理位置相关的数据进行计算、分析,挖掘数据价值。

场景一:判断某个设备编号为ABC123的设备是否在某块特定区域内

下图表示TSDB存储的设备位置数据:每个设备的位置信息分别用x_value和y_value两个域(field)来存储,x_value和y_value表示设备在二维坐标系中的坐标;同时用licenseID(Tag)来代表设备号。 可以将这些数据看成一个二维表(如下图),针对此二维表可以通过构造空间函数来使用时空服务。 

举例: 判断设备ID为ABC123的设备是否在某个特定区域(不包含边界);假定这块区域是由(200, 200), (400, 200), (400, 400),(200, 400)四个点围绕组成的四边形。

SQL语句:

select * from DeviceLocation where ST_Contains(ST_GeometryFromText('POLYGON ((200 200,400 200,400 400,200 400,200 200))'), ST_Point(x_value,y_value)) and LicenseID = ‘ABC123’

返回得到以下数据,证明设备ID为ABC123的设备在时间为1523973720000时在以上指定区域内。 

场景二:计算某个车辆在移动的轨迹中,是否经过一块以某个点为中心,一定半径以内的区域

TSDB的时空服务同时支持球面距离的计算,车辆位置和轨迹通常都是通过GPS信息来定位,所以真实的轨迹需要通过球面计算来计算。参考上例,我们可以将上述示例中的x_value和y_value用真实的经度(longitude)和纬度(latitude)来代替表示车辆的实际位置: 

举例: 计算某个车辆在移动的轨迹中,是否经过一块以点(40.17222,80.175)为中心,半径为200m以内的区域。 SQL语句:

select * from VehicleLocation where LicenseID=’京AFR673’and ST_Distance(to_spherical_geography(ST_Point(longitude, latitude)),to_spherical_geography(ST_Point(40.17222, 80.175))) <= 200

返回得到以下数据,证明车牌为京AFR673的车在会时间点为1523973720000时经过以上特定区域。 

实际应用

车辆监测

时序数据库用以存储时间、空间数据,借助时空服务,可以实时监测车辆当前行驶路线,在异常情况下,比如车辆脱离既定路线后,能够及时报警;有需要时还能够查看车辆历史行驶轨迹。在检修车作业场景下,判断检修车是否在指定区域内作业;检修车辆的行驶是否偏离预定轨迹;离某个站点最近的救援车是哪一辆等,从而实现车辆的全局优化调控。

轨迹分析

时序数据库用以存储时间、空间数据,借助时空服务,可以计算分析各类轨迹之间的关系,例如分析归纳人流最易聚集的热点区域,特定道路在哪些时间段车辆最多会造成堵塞,在特定区域是否有异常人员、车辆进入。轨迹分析可以应用在非常广泛多样的业务场景中,诸如社区安全、按需选址(如写字楼、医院、商场)、交通分流。

时空服务函数参考

关于SQL语句的使用参考,请参见支持SQL查询。

时空服务构造函数

  • ST_Point

声明

Geometry ST_Point (double X, double Y)

作用

根据指定的坐标值(X, Y)返回一个点(Point)类型的几何(Geometry)对象。

示例

ST_Point(1.0,2.0)

返回一个点(Point)类型的几何(Geometry)对象,其横纵坐标分别为1.0和2.0。

  • ST_LineFromText

声明

Geometry ST_LineFromText (varchar WKT)

作用

从Well-Known Text (WKT) 的字符串表达式中返回一个线段(LineString)类型的几何(Geometry)对象。

示例

ST_LineFromText('LINESTRING(1.0 1.5,1.0 0.5)')

返回一个起点为(1.0,1.5),终点为(1.0,0.5)的线段(LineString)类型的几何(Geometry)对象,

  • ST_Polygon

声明 Geometry ST_Polygon (varchar WKT) 作用

从Well-Known Text (WKT) 的字符串表达式中返回一个多边形(Polygon)类型的几何(Geometry)对象。

示例

ST_Polygon('POLYGON ((1 1,1 4,4 4,4 1))')

返回一个由(1,1)、(1,4)、(4,4)、(4,1)四个点组成的多边形(Polygon)类型的几何(Geometry)对象。

  • ST_GeometryFromText

声明

Geometry ST_GeometryFromText (varchar WKT)

作用

从Well-Known Text (WKT) 的字符串表达式中返回一个几何(Geometry)对象。

示例

ST_GeometryFromText('POLYGON ((0 0,1 0,1 1,0 1,0 0))')

返回一个由(0,0)、(0,1)、(1,1)、(1,0)四个点组成的多边形(Polygon)类型的几何(Geometry)对象。

  • to_spherical_geography

声明

SphericalGeography to_spherical_geography (Geometry geometry)

作用

把一个几何(Geometry)对象转换为一个球面几何(SphericalGeography)对象。

示例

to_spherical_geography(ST_Point(40.172, 80.175))

返回一个球面几何对象,标识地球上位于东经40.172度,北纬80.175度的点。【-180,0】为西经,【0,180】为东经;【-90,0】为南纬,【0,90】为北纬。

时空服务关系函数

  • ST_Contains

声明

boolean ST_Contains (Geometry A, Geometry B)

作用

如果不存在Geometry B中的点落在Geometry A外,且Geometry B内部至少有一个点落在Geometry A内,,返回true,否则返回false。

示例

ST_Contains(ST_Polygon('POLYGON ((0 0,1 0,1 1,0 1))'), ST_Point(0.5,0.5))=true

点(0.5,0.5)完全落在由(0,0)、(0,1)、(1,1)、(1,0)四个点组成的多边形内,所以返回true。

  • ST_Equals

声明

boolean ST_Equals(Geometry A, Geometry B)

作用

如果几何(Geometry)对象A和几何(Geometry)对象B代表的是同一个对象,返回true,否则返回false。

示例

ST_Equals(ST_GeometryFromText('POLYGON ((1 1, 1 3, 3 3, 3 1))'), ST_GeometryFromText('POLYGON ((3 3,3 1,1 1,1 3))')=true

由于上述两个多边形完全重合,所以返回true。

  • ST_Intersects

声明

boolean ST_Intersects (Geometry A, Geometry B)

作用

如果几何(Geometry)对象A和几何(Geometry)对象B在二维空间上相交,返回true,否则返回false。

示例

ST_Intersects(ST_GeometryFromText('POLYGON((1 1, 1 3, 3 3, 3 1))'), ST_GeometryFromText('POLYGON ((4 4, 4 5, 5 5, 5 4))'))=false

由于这两个矩形没有相交,所以返回false。

  • ST_Overlaps

声明

boolean ST_Overlaps (Geometry A, Geometry B)

作用

如果几何(Geometry)对象A和几何(Geometry)对象B有部分重叠,且其中一个并不完全包含另一个,返回true,否则返回false。

示例

ST_Overlaps(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))'), ST_GeometryFromText('LINESTRING (1 1, 4 4)'))=false

由于起点为(1,1),终点为(4,4)的线段被完全包含于由(1,1)、(1,4)、(4,4)、(4,1)四个点组成的多边形内,所以即使两者有相交,ST_Overlaps仍返回false。

时空服务访问函数

  • ST_Area

声明

double ST_Area (Geometry A)

作用

返回多边形(Polygon)类型的几何(Geometry)对象A二维空间下的面积。

示例

ST_Area(ST_GeometryFromText('POLYGON ((2 2, 2 6, 6 6, 6 2))'))=16.0

返回由(2,2)、(2,6)、(6,6)、(6,2)四个点组成的多边形的面积为16.0。

  • ST_Area

声明

double ST_Area (SphericalGeometry A)

作用

返回多边形(Polygon)类型的球面几何(SphericalGeometry)对象A在地球球面上的面积。

示例

ST_Area(to_spherical_geography(ST_Polygon('POLYGON ((0 0,0 90,90 0))')))=6.375825913974858E13

返回由地球球面上的三个点(0,0)、(0,90)、(90,0)组成的多边形的球面面积为6.375825913974858E13平方米。这里地球半径=6371.01千米。

  • ST_Distance

声明

double ST_Distance (Geometry A, Geometry B)

作用

返回几何(Geometry)对象A和几何(Geometry)对象B在二维空间下的笛卡尔最短距离。

示例

ST_Distance(ST_Point(50, 100), ST_Point(150, 150))= 111.80339887498948

返回上述两个点(50,100)和(150,150)之间的笛卡尔最短距离为111.80339887498948。

  • ST_Distance

声明

double ST_Distance (SphericalGeometry A, SphericalGeometry B)

作用

返回球面几何(SphericalGeometry)对象A和球面几何(SphericalGeometry)对象B在地球球面上的最短距离,单位米。

示例

ST_Distance(to_spherical_geography(ST_Point(40.175, 80.175)), to_spherical_geography(ST_Point(40.5, 80.5)))= 36643.77019025462

返回地球上两个点(40.175, 80.175)和(40.5, 80.5)之间的球面距离为36643.77019025462米。这里地球半径=6371.01千米。

  • ST_Length

声明

double ST_Length (LineString A)

作用

返回线段(LineString)类型的几何(Geometry)对象A在二维空间下的长度。

示例

ST_Length(ST_GeometryFromText('LINESTRING (0 0, 2 2)'))= 2.8284271247461903

返回起点为(0,0),终点为(2,2)的线段的长度为2.8284271247461903。

  • ST_X

声明

double ST_X (Point A)

作用

返回点(Point)类型的几何(Geometry)对象A的横(X轴)坐标。

示例

ST_X(ST_GeometryFromText('POINT (1 2)'))=1.0

返回点(1,2)的横(X轴)坐标为1.0.

  • ST_Y

声明

double ST_Y (Point A)

作用

返回点(Point)类型的几何(Geometry)对象A的纵(Y轴)坐标。

示例

ST_Y(ST_GeometryFromText('POINT (1 2)'))=2.0

返回点(1,2)的纵(Y轴)坐标为2.0.

相似文档
  • 介绍: TSDB支持SQL的查询接口,可以通过SQL语言实现对TSDB数据的筛选和查询。利用SQL的强大能力,用户即可以熟悉方便地对数据进行操作,也可以充分利用SQL函数的计算能力,挖掘数据价值。
  • 介绍: TSDB现已正式支持Mysql协议,可为用户提供更加便捷的SQL使用体验。用户可通过控制台创建Mysql协议账号后,利用Mysql JDBC、以及支持Mysql JDBC的各类工具查询访问TSDB数据。
  • Tsdb storage handler: TSDB对接hive是通过实现一个TSDB的HiveStorageHandler,支持对tsdb数据的读取。 Jar下载地址:https://sdk.bce.baidu.com/console-sdk/hive-tsdb-handler_all.jar 如果是本地hive集群,请下载jar到本地;如果使用bmr,则上传到bos或者直接使用地址bos://iot-tsdb/hive-tsdb-handler_all.jar 支持的hive 1.2.0,jdk 1.7。
  • 1 BMR spark sql: 1.1 Spark-tsdb-connector TSDB对接spark sql是通过实现org.apache.spark.rdd.RDD(即Resilient Distributed Dataset)和一些相关的接口,方便用户通过spark来查询TSDB的数据。
  • 各种物联网设备通过百度智能云天工物联网平台接入上云,设备的状态数据实时高效写入到时序数据库中。您可以: 通过时序数据库的数据API接口读取实时数据; 利用时序数据库查询快的优势对数据进行各种聚合运算得到数据报表;
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部