开发者社区> 好奇猿始人> 正文

阿里云HBase Ganos在海量实时轨迹中的应用(一)

简介: 场景需求 在移动对象轨迹监控与分析的项目中,收集了数十万的车辆信息,每个车辆会定时的上报当前位置、事件、状态等信息,每天约数亿条轨迹点,需要能够存储。且前端用户在查询时,要能快速返回目标船舶的信息。 入库需求: 轨迹数据,每日新增10亿条左右,包括时间点、经纬度坐标、对象当前的属性信息基本不涉及到数据的修改(不断的追加数据) 查询需求: 区域回放:根据时间和空间范围两个维度共同查询。
+关注继续查看

场景需求

在移动对象轨迹监控与分析的项目中,收集了数十万的车辆信息,每个车辆会定时的上报当前位置、事件、状态等信息,每天约数亿条轨迹点,需要能够存储。且前端用户在查询时,要能快速返回目标船舶的信息。

入库需求:

轨迹数据,每日新增10亿条左右,包括时间点、经纬度坐标、对象当前的属性信息
基本不涉及到数据的修改(不断的追加数据)

查询需求:

  • 区域回放:根据时间和空间范围两个维度共同查询。例如:查询东经110°~120°,北纬25°~35°空间范围内,2019.3.1~2019.3.10时间范围内的所有轨迹点。
  • 轨迹线查询:根据某个移动对象的id,查出某段时间内的轨迹。例如:查询编号为"205073000"的船舶在2019.3.1~2019.3.10时间范围内的所有轨迹点。

要求:

  • 要能支撑每日10亿量级的写入,要能承载千亿轨迹规模的存储
  • 时空查询(区域回放)要能在秒级响应,轨迹线查询要能在百毫秒级响应

技术调研

关系型数据库

现有的关系型数据库如Oracle、MySQL、PostgreSQL都提供了Spatial的插件,尤其是PG的空间引擎PostGIS,使用率较高,具有丰富的空间处理算法,适合做空间关系判断与分析等。但众所周知,关系型数据库的强项在于OLTP,即适合数据更新、查询等,但对于大规模数据的存储则需要分库分表等操作,操作相对繁琐,因此对于上述需求来说,暂不考虑关系型数据库。(这里提一下,除了阿里云PG Ganos外,都没有时空处理)

NoSQL数据库

NoSQL适合处理海量数据的存储与查询,如Cassandra、HBase、MongoDB、Redis等,都支持海量数据的水平扩展。但在时空方面都没有一个完善的方案,比如MongoDB、Redis虽然都提供了空间处理的算法,但总体来说只能实现Within等操作,即空间范围查询操作。

阿里云已经发布了基于HBase的时空引擎HBase Ganos(参考:https://help.aliyun.com/document_detail/87287.html?spm=a2c4g.11174283.6.619.3c693c2e29oyDM),不仅可以处理空间查询,还可以处理时空查询场景。因此,本文基于HBase Ganos时空引擎对上述场景进行测试。

实例规格

HBase Ganos具有高吞吐特点,本着节省的原则,我们以最小规格配置为基础(约2000元+/月,成本与HBase相同),来看看是否能够支撑上述需求。具体配置如下:

  • master节点:2核4G
  • core节点:4核8G(数量可动态扩展)
  • 磁盘:高效磁盘(500G,可动态扩展)

具体实施

访问接口

HBase Ganos支持RESTful和GeoTools两种接口访问形式,前者通过HTTP协议可以方便的使用任何一种编程语言访问;而GeoTools接口基于Java语言,较为通用。本文采用该接口方式,这里封装了一个Ganos Client工具,可以直接下载使用(附案例代码连接)

数据模型表

通过GanosSchemaUtil工具类创建SimpleFeature(Point类型),并添加了对象id(为其建立索引)、速度、事件、状态、时间(默认建立索引)等信息,具体如下:

GanosSchemaUtil ganosSchemaUtil = new GanosSchemaUtil();
ganosSchemaUtil.addField("objId", "String", true);  
ganosSchemaUtil.addField("speed", "Double", false);
ganosSchemaUtil.addField("event", "Integer", false);
ganosSchemaUtil.addField("status", "Integer", false);
ganosSchemaUtil.setGeometry("Point", null);
ganosSchemaUtil.setDate("dtg");
SimpleFeatureType sft  = ganosClient.createSFT(schemaName, ganosSchemaUtil.toString(),"zstd");
ganosClient.createSchema(sft);

数据构造

上述字段的值采用随机生成方式(按照真实数据规则模拟),数据构造方法为:

  • 时间窗口:2019-02-25 00:00:00~2019-03-05 00:00:00
  • 空间窗口:经度范围 115.37465076~120.37465076, 纬度范围:26.23923772~31.23923772
  • 移动对象数量(可理解为车、船的数量):100万
  • 其他属性数据:速度、状态、事件等,均采用随机生成方式

数据导入

启动10个线程并发写入
导入方法:

  • 启动10个线程写入,每次批量写入1000条。
  • 这1000条数据中,随机选取多个移动对象,同时随机生成该移动对象的时间点、空间位置以及其他属性信息。比如这1000条轨迹点可属于N个对象,每个对象的轨迹点个数也不相同。
    代码参考:

数据查询

  • 启动10个线程查询,查询场景包含两种:a、区域回放(时空查询);b、单条轨迹查询(id+时间)
  • 每次从一百万个移动对象中随机选取一条,同时随机选取查询的时间窗口,考察系统吞吐、RT等
    代码:参考

性能

  • 写入性能:存储层的IO可达8万+/s,在构建三张索引表的情况下,可理解为每秒能支撑3万个轨迹点的导入,完全能够满足一天10亿级的写入需求。

image

  • 查询性能:
    区域回放(时空查询):每次查询返回数据量在几百条左右,缓存为命中情况下,耗时在1秒钟以内;若缓存命中情况下,在100ms左右。

轨迹线查询:每次返回数据量在几百条左右,耗时在800ms以内。

总结

HBase Ganos不仅能够支持空间查询、还能够支持“时间+空间”的查询,以及轨迹线(时序)查询。在2个4核8G的节点配置下,能够支撑每日10亿量级的数据写入,且性能维持在秒级以下,适合海量轨迹的存储和查询场景。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云物联网学习笔记(4) 在阿里云做定位器,查看历史轨迹,后附视频链接
阿里云物联网平台物模型有个属性是“地理位置”,其实就是设备的坐标。以前其他项目做了个2g+北斗的定位器,最近改了一下代码,迁移到阿里云也成功了,最喜欢的就是阿里云的历史轨迹功能。
1315 0
重磅|阿里云HBase Ganos全新升级,推空间、时空、遥感一体化基础云服务
Ganos是阿里云时空PaaS服务的自研核心引擎。Ganos已作为云数据库时空引擎与数据库平台融合,建立了以自研云原生数据库POALRDB为基础,联合NoSQL大数据平台(Ali-HBASE和X-Pack Spark)的完整时空地理信息云化管理解决方案。
2465 0
重磅|阿里云HBase Ganos全新升级,推空间、时空、遥感一体化基础云服务
9.5日,阿里云数据库时空引擎HBase Ganos联合X-Pack Spark实现重磅升级,推出集空间、时空、遥感一体化V2.5新版本。
3739 0
即插即用 基于阿里云Ganos快速构建云上开源GIS方案
对于轻量级GIS应用,选择具备时空能力的云上数据库再搭配开源GIS软件,能够快速构建稳定、廉价、实用的GIS解决方案。
1763 0
平台篇-八年磨一剑,重新定义 HBase——HBase 2.0&阿里云 HBase 解读
八年磨一剑1.1 HBase 的前世今生 关系型数据库的发展已经经历了 40 多年的历史了,而 HBase 以及大数据这套东 西的历史大概从 2006 年被认为是大数据的发起时期到现在,也就是 13 年左右而已。
2867 0
阿里云时空数据库引擎HBase Ganos上线,场景、功能、优势全解析
2018年12月18日,伴随阿里云HBase全新发布X-Pack全托管NoSQL数据库平台,HBase Ganos时空数据库引擎正式上线。HBase Ganos以阿里云飞天操作系统为强大底座,结合云HBase新一代KV、时序、时空、图多模数据综合处理能力以及云上Spark大数据分析计算服务,为迎接在线时空全量大数据应用构筑PaaS(Platform-as-a-Service)平台能力。
5891 0
阿里云数据库时空引擎Ganos上线,为位置智能提供核心引擎
2018年12月10日,阿里云PostgreSQL数据库时空引擎Ganos正式上线,将为各类GIS地理空间数据以及时空型数据提供云上的高效存储、查询和分析计算服务。Ganos将数据库、GIS引擎和新型时空计算整合,利用云上GPU加速、OSS大规模存储能力,为更广泛领域建立基于位置智能提供基础核心能力。
5406 0
赋能时空云计算,阿里云数据库时空引擎Ganos上线
  随着移动互联网、位置感知技术、对地观测技术的快速发展时空信息已从传统GIS行业渗透到大众应用及各行各业。从静态POI兴趣点到APP位置信息从导航电子地图到车辆行驶轨迹从卫星影像到三维城市建模GIS地理空间信息以及时空信息以各种形态嵌入到数字化框架中并成为一种基础关键数据资源。
5939 0
八年磨一剑,重新定义HBase——HBase 2.0&阿里云HBase解读
2018年6月6日,阿里云ApsaraDB for HBase2.0正式发布!从2010年开始“试水”到2018年,拥有了3个PMC,6个Committer,拥有中国最多HBase Committer的公司之一的阿里巴巴是如何八年磨一剑,重新定义HBase的?本文中,阿里云技术专家所在就为你揭晓答案。
14363 0
+关注
好奇猿始人
专注于时空/时序数据库、GIS
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Elastic与阿里云合作宣传信息白皮书
立即下载
阿里云&信通院《Serverless数据库技术研究报告》
立即下载
降本增效,阿里云数据治理Workshop上海站
立即下载