目前随着移动互联网和物联网的广泛应用,90%以上的数据是和时间+空间相关的,而越来越多的数据应用场景与时间和空间信息密不可分。时间+空间维度的数据(我们称之为时空数据)是一种高维数据,需要更为高效的数据处理方式来处理,而普通的关系型数据库更适合于存储数值和字符类型数据,也缺少相关的时空算子。在实际应用场景上例如传感器网络、移动互联网、射频识别、全球定位系统等设备时刻输出时间和空间数据,数据量增长非常迅速,这对存储和管理时空数据带来了挑战,传统数据库很难应对以上场景。阿里云时空数据库能够存储、管理包括时间序列以及空间地理位置相关的数据,时空数据库具有时空数据模型、时空索引和时空算子,完全兼容SQL及SQL/MM标准,支持时空数据同业务数据一体化存储、无缝衔接,易于集成使用。
5月5日,阿里云时空数据库正式开始免费公测,公测期间我们提供了2core4g+100G云盘的版本供客户免费试用。
产品使用手册:https://help.aliyun.com/docum...
公测免费试用页面:https://common-buy.aliyun.com...
注意:需要用户先免费创建自己的VPC环境才能试用,详情参见下图,VPC创建也是完全免费的
产品优势
易用(标准SQL接口)
SQL是目前最通用的数据库访问语言,时空数据库基于标准PostgreSQL,支持JDBC/ODBC驱动访问。时空数据同其它业务数据一体化处理,兼容OGC空间计算函数;支持符合OGC规范的WKT和WKB格式数据输入和输出。
写入性能强劲
时空数据,插入是一个强需求,往往有大量设备上报轨迹、指标数据,因此对插入性能要求较高。阿里云时空数据库,单机不同规格下可以支持到数万到数十万的TPS写入。
高效分析能力
时空数据,除单条的查询、POI查询,更多的是其他的分析类需求。这对时空数据库的分析能力也是一个挑战。阿里云时空支持查询条件自动选择分区,高效空间索引,并行的聚合操作等提升分析性能。
自动扩展分区
业务对时空数据查询,往往都会对时间区间进行过滤,因此时空数据通常在分区时,会有一个时间或空间分区的概念。时空数据库支持自动扩展分区,减少用户的管理量,不需要人为的干预自动扩展分区。
功能丰富
具有丰富的时间和空间处理查询函数;支持点(POINT)、线(LINESTRING)、多边形(POLYGON)、多点(MULTIPOINT)、多线(MULTILINESTRING)、多多边形(MULTIPOLYGON)和几何对象集(GEOMETRYCOLLECTION)等几何类型存储。
自动保留策略
根据用户配置,自动删除过旧数据,极大降低用户使用成本,减少用户管理工作。
自动Failover
阿里云时空数据库提供全自动Failover机制,一旦所在硬件发生不可恢复的故障,会在非常短的时间内使用其他硬件替换故障硬件。这样可以减少因为不可控故障引发的服务中断时间。该Failover是全自动的,无需人工干预,用户也无需担心服务由于硬件故障造成的长时间不可用。
高可靠
时空数据库是一种高性能时空数据库,底层存储建立在阿里云高效云盘基础之上,高效云盘提供99.9999999%数据高可靠保障。可以保障时空数据库数据一旦写入,基本不会丢失。
生态
阿里云时空数据库在生态上非常易于同多种主流产品集成,比如地图引擎(如GeoServer和MapServer)、地图编辑系统(如QGIS和ArcGIS for Desktop)、数据分析与可视化产品(如Grafana、Zeppelin和Jupyter)、大数据分析平台(Spark),满足模块化集成需求,为时空数据管理提供有力支撑。
数据写入&查询
时空数据库写入和查询非常便利,读写采用标准SQL,用户可以通过JDBC/ODBC驱动操作数据库,进行读写操作。
用户也可以通过psql交互式终端向时空数据库写入数据,下面是几个简单的例子:
INSERT INTO tsdb_test VALUES (1001, '2019-03-11 16:34:15', 1002.2,
ST_SetSRID(ST_MakePoint(10.3,20.1),4326)
用户通过交互终端查询数据,可以如下:
SELECT time,uid,speed,dev_type,ST_AsText(position) FROM metrics
WHERE time >'2017-01-01 01:02:00' AND time < '2017-01-01 01:11:02' AND
ST_Contains(ST_SetSRID(ST_MakeBox2D(ST_Point(12.4, 25.5),ST_Point(13.0,26.1)),4326),position);
关于时空数据库的具体用法,可以参考阿里云时空数据库文档:开发指南
场景
地图服务
地图服务是一种非常广泛的应用,便于各类业务数据空间化、空间分析和可视化。这个场景介绍如何使用时空数据库搭建地图服务,并给出架构参考。
方案架构
时空数据库作为存储空间数据(如车辆定位数据)与空间查询引擎,提供后端支持。GeoServer(GeoServer是一款知名的开源地图服务引擎,支持OGC WFS、WMS、WPS等协议,易于部署,有大量的用户)作为地图服务引擎用于空间数据渲染和地图发布,前端客户端采用Leaflet或openlayers框架,同时支持PC/Android/iOS多种类型终端。地图发布的主要流程包括三步:第一步在时空数据库中导入业务数据后;第二步通过GeoServer关联数据库;第三步选择需要发布的图层,并对图层设定相应对式样。
人员监护
人员监护应用适用对儿童和老人监护,方便实时查看活动轨迹、健康指标(体温、血压、心跳等);并设定电子围栏(特定区域,比如学校、小区、公园等),当活动人员离开特定区域时触发告警信息。
方案架构
时空数据库存储时空和指标数据,并提供空间查询功能,提供后端支持。GeoServer作为地图服务引擎用于空间数据渲染和地图发布,前端客户端采用Leaflet或openlayers框架。电子围栏服务用于判断移动目标同电子围栏的空间关系,并触发告警信息。
车辆监控
车辆监控应用适用于查看车辆当前和历史轨迹,对车辆的行驶区域做限定,当脱离特定路线后能够报警;并对车辆传感器获取一些参数(比如车速、胎压、电池电压等)做实时监测。
方案架构
时空数据库作为存储轨迹及监测指标,提供空间及指标查询功能,提供后端支持。GeoServer作为地图服务引擎用于空间数据渲染、地图发布、时空数据入库,前端客户端采用Leaflet或openlayers框架。电子围栏服务用于判断移动目标同电子围栏的空间关系,并触发告警信息。电子围栏在这里起到过滤器,再地图服务器的WFS服务写入定位和传感器监测数据。
物流配送
物流配送应用适合于物流行业,提供导航规划功能,并对物流过程做全程监控。
方案架构
时空数据库作为存储与路径规划引擎,提供后端支持。GeoServer作为地图服务引擎用于空间数据渲染、地图发布、时空数据入库,前端客户端采用Leaflet或openlayers框架。在时空数据库存储路网数据,路网数据是做导航规划的基础;在客户端选择起始点和目的地后,由时空数据库计算最佳导航路线,经客户端确认后把导航路线推送给物流终端。时空数据库充当两个角色:轨迹数据存储和导航路径计算。从物流终端获取的轨迹数据通过地图服务器WFS服务存入时空数据库。
轨迹分析
轨迹分析用于计算轨迹之间的关系以及轨迹与专题地图之间的关系;轨迹分析可以用于分析道路拥堵时空特征、人员活动热点区域、异常行驶车辆等,适用业务场景非常广,比如可以用于商业选址、交通优化、公共安全等。
方案架构
地图服务器(GeoServer)接收轨迹输入,轨迹和其它监测数据存入时空数据库;轨迹关联计算用于轨迹聚合计算,识别轨迹之间的关系(如轨迹聚类)和轨迹与地图之间的关系(如以道路作为专题图,车辆轨迹的密集程度反应道路的拥堵情况)。轨迹关联计算涉及大量的时空查询需要利用时空数据库做加速处理。
总结
时空数据库通过融合时序和空间数据模型,来满足不同时空数据场景的要求,更贴近业务;提供多元化索引(空间索引和时序索引等)来满足不同类型场景条件查询需求;提供自动分片及自动删除过旧数据策略,来降低用户管理成本,提升便利性。同时还在稳定性、可靠性、运维上提供优化服务,让用户能够在融合的PostgreSQL生态下,更专注于自己的业务。