千家信息网

TableStore如何轻松实现轨迹管理与地理围栏

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这期内容当中小编将会给大家带来有关TableStore如何轻松实现轨迹管理与地理围栏,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、方案背景轨迹管理系统日常生活中
千家信息网最后更新 2025年01月23日TableStore如何轻松实现轨迹管理与地理围栏

这期内容当中小编将会给大家带来有关TableStore如何轻松实现轨迹管理与地理围栏,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一、方案背景

轨迹管理系统日常生活中使用非常普遍,如外卖派送轨迹、快递物流流转、车辆定位轨迹等。该场景与地理位置管理类似,核心点与瓶颈都在数据库的存储性能与查询能力,同时需要时间字段正序排列,保证轨迹点顺序;一方面,存储服务需要应对海量数据的低延迟存、读,另一方面,存储服务也要提供高效的多维度数据检索与排序。表格存储(TableStore)对于轨迹管理场景,依然可以胜任,完全具备实现轨迹管理系统的能力。
不妨来体验一下基于TableStore打造的【亿量级摩托车管理系统】样例;

需求场景

某城市市区出于安全考虑,限制摩托车进入一定的区域范围。某摩托车租赁公司,为了更好管理所辖摩托车的违章问题,对自己所辖摩托车安装定位系统,定时采集摩托车位置。摩托车租赁公司,可以通过轨迹管理平台,查询统计违章情况,也可作为依据,提醒违章的租赁用户,过多违章拉入黑名单;
查询场景:【2018年11月01日】编号【id00001】的摩托车行驶轨迹与违章情况查询;

样例如下:
注:该样例提供了【亿量级】轨迹数据。官网控制台地址:项目样例

cdn.com/d61994c78686ae667deffa8a58bf9f0777f8faac.gif">

样例内嵌在表格存储控制台中,用户可登录控制台体验系统(若为表格存储的新用户,需要点击开通服务后体验,开通免费,订单数据存储在公共实例中,体验不消耗用户存储、流量、Cu)。

表格存储(TableStore)方案

采用表格存储(TableStore)轻松搭建一套:亿量级摩托车管理系统。多元索引功能提供GEO检索、多维查询的能力,通过对时间的排序获取追踪设备的轨迹。同时,用户可随时创建索引然后完成自动同步,不用担心存量数据问题。
TableStore作为阿里云提供的一款全托管、零运维的分布式NoSql型数据存储服务,具有【海量数据存储】、【热点数据自动分片】、【海量数据多维检索】等功能,有效的地解决了GEO数据量大膨胀这一挑战;
SearchIndex功能在保证用户数据高可用的基础上,提供了数据多维度搜索、排序等能力。针对多种场景创建多种索引,实现多种模式的检索。用户可以仅在需要的时候创建、开通索引。由TableStore来保证数据同步的一致性,这极大的降低了用户的方案设计、服务运维、代码开发等工作量。

二、搭建准备

若您对于基于TableStore实现的【亿量级摩托车管理系统】体验不错,并希望开始自己系统的搭建之旅,只需按照如下步骤便可以着手搭建了:

1、开通表格存储

通过控制台开通表格存储服务,表格存储即开即用(后付费),采用按量付费方式,已为用户提供足够功能测试的免费额度。 表格存储官网控制台 、 免费额度说明 。

2、创建实例

通过控制台创建表格存储实例,选择支持多元索引的Region。(当前阶段SearchIndex功能尚未商业化,暂时开放北京,上海,杭州和深圳四地,其余地区将逐渐开放)

创建实例后,提交工单申请多元索引功能邀测(商业化后默认打开,不使用不收费)。

  • 邀测地址: 提工单 ,选择【表格存储】>【产品功能、特性咨询】>【创建工单】,申请内容如下:

  • 问题描述:请填写【申请SearchIndex邀测】

  • 机密信息:请填写【地域+实例名】,例:上海+myInstanceName

3、SDK下载

使用具有多元索引(SearchIndex)的SDK, 官网地址 ,暂时java、go、node.js三种SDK增加了新功能

java-SDK
    com.aliyun.openservices    tablestore    4.7.4
go-SDK
$ go get github.com/aliyun/aliyun-tablestore-go-sdk

4、表设计

店铺检索系统样例,仅简易使用一张店铺表,主要包含字段:店铺类型、店铺名称、店铺地理位置、店铺平均评分、人均消费消等。表设计如下:
表名:geo_track

列名数据类型索引类型字段说明
_id(主键列)String
MD5(mId + timestamp)避免热点
mIdStirng
摩托车编号
timestamplongLONG时间点(毫秒时间戳)
posStringGEO_POINT车辆位置:"30.132,120.082"(纬度,精度)
............

三、开始搭建(核心代码)

1、创建数据表

用户仅需在完成邀测的实例下创建"摩托车轨迹表":通过控制台创建、管理数据表(用户也可以通过SDK直接创建):其他表如租赁用户表、摩托车信息表等,根据需求创建:这里仅展示轨迹表,表名:geo_track

2、创建数据表索引

TableStore自动做全量、增量的索引数据同步:用户可以通过控制台创建索引、管理索引(也可以通过SDK创建索引)

3、数据导入

插入部分测试数据(控制台样例中插入了1.08亿条(70天)数据,用户自己可以通过控制台插入少量测试数据);

表名:geo_track

摩托车编号轨迹点md5(mId + timestamp)(主键)时间店铺位置
id00001f50d55bec347253c24dc9144dff3e3b7154110360000030.30094,120.01278

表名:moto_user

摩托车编号(主键)摩托车颜色摩托车品牌摩托车租赁用户
id00001银灰色H牌摩托车杨六

4、数据读取

数据读取分为两类:

主键读取(摩托车信息查询)

基于原生表格存储的主键列获取:getRow, getRange, batchGetRow等。主键读取用于索引(自动)反查,用户也可以提供主键(摩托车编号)单条查询的页面,查询速度极快。单主键查询方式不支持多维度检索;

索引读取(轨迹信息查询)

基于新SearchIndex功能Query:search接口。用户可以自由设计索引字段的多维度条件组合查询。通过设置选择不同的查询参数,构建不同的查询条件、不同排序方式;目前支持:精确查询、范围查询、前缀查询、匹配查询、通配符查询、短语匹配查询、分词字符串查询,并通过布尔与、或组合。
如【2018年11月01日,id00001号摩托车,行驶轨迹及违章查询】Query条件如下:

List mustQueries = new ArrayList();List polygonList = Arrays.asList(//地理围栏,禁摩区域    "30.262348,120.092127",    "30.311668,120.079761",    "30.332413,120.129371",    ...);String mId = "id00001";Long timeStart = [2018-11-01时间戳];Long timeEnd = [2018-11-02时间戳];GeoPolygonQuery geoPolygonQuery = new GeoPolygonQuery();geoPolygonQuery.setPoints(polygonList);geoPolygonQuery.setFieldName("pos");mustQueries.add(geoPolygonQuery);TermQuery termQuery = new TermQuery();termQuery.setFieldName("mId");termQuery.setTerm(ColumnValue.fromString(request.getmId()));mustQueries.add(termQuery);RangeQuery rangeQuery = new RangeQuery();rangeQuery.setFieldName("timestamp");rangeQuery.setFrom(ColumnValue.fromDouble(timeStart, true);rangeQuery.setTo(ColumnValue.fromDouble(timeEnd, false);mustQueries.add(rangeQuery);BoolQuery boolQuery = new BoolQuery();boolQuery.setMustQueries(mustQueries);

上述就是小编为大家分享的TableStore如何轻松实现轨迹管理与地理围栏了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

数据 摩托 摩托车 查询 存储 轨迹 用户 索引 管理 表格 控制台 控制 系统 功能 时间 实例 店铺 多维 服务 检索 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全行业 商业模式 如何建立高质量的客户数据库 统一软件开发过程视频教程 国外服务器节点订阅 梦幻西游手游新服务器怎么进 石家庄理工计算机网络安全专业 讯飞输入法软件开发 我的世界在服务器怎样建家最安全 怎么在数据库加唯一主键 服务器设置一次性密码 鹿泉软件开发项目管理 重庆市教育系统网络安全宣传周 房地产公司软件开发 微信数据库怎么添加 网络安全5g 概念 互联网大会十五项黑科技是 口碑好的存储服务器价格 创建空数据库 如何对数据库文件启用自动增长 襄阳定制软件开发多少钱 认识意识形态网络安全重要性 sql安全性链接服务器 温州电子网络技术市场价格 数据不能共享属于数据库技术 笃行网络商城软件开发 网络安全我知道教案幼儿园 北邮数据库技术与实验 富士康自动化软件开发技术员 互联网科技园杭州 延安5g软件开发
0