文档章节

老司机带你用MaxCompute和表格存储玩转车联网数据

 撒嘻嘻
发布于 2017/06/02 15:26
字数 1382
阅读 3
收藏 0

原文链接

“自动驾驶汽车”在近两年频频出现于各大科技新闻头条,自2012年谷歌获得美国首个自动驾驶汽车许可证以来,国外各大知名汽车厂商如奔驰、沃尔沃、大众、通用、丰田、日产、特斯拉等也纷纷宣布自己的自动驾驶汽车验证开发计划。自动驾驶依托于人工智能技术的发展,而对于一个人工智能平台来说,重要的不光是算法和平台,更重要的是数据!今天我们暂且不聊自动驾驶,我们先聊聊最基础的车联网数据的存储与处理。

 

  初始方案

 

出于对两客一危监管的需要,车联网很早就开始起步,彼时大家的车联网方案都长这个样子:

 

1f8760e401bab1a6a76105eed086097ce17704fc

 

将车辆上传的数据进行编码解析,存储到对应的数据库中。由于车辆种类的不同,所上传的传感器数据也会有所区别。为了避免修改表结构对服务造成的影响,采用的是将传感器数据进行分类,分别存储到不同的数据库的方法,也就是图中的数据库层分为了轨迹库、温度库、油量库等。这样的好处是新增一批新类型的传感器时,不需要数据停库维护,不会影响在线应用,但是对数据采集解析程序需要升级更新,大大增加了维护的代价。

 

另外一方面,随着近几年私家车的爆发式增长,车联网也迎来了更多的机遇和挑战。百万在网车辆,几十万的在线车辆都让车联网系统时时刻刻在经受着挑战。

 

 

  存在问题

 

首先就是并发问题。SQLServer的单机并发是有限制的,我们只能在已经分库分表的基础上再对数据进行按时间或者车辆类型的二次分库分表,这大大增加了前后端系统开发和维护的复杂性。同时,为了应对早晚高峰高的不像话的在线率,我们又对像轨迹、油量等通用的基础数据做了数据库的主备读写分离,避免数据采集高峰影响其他的在线业务,这个时候,这个架构已经非常非常复杂了。

 

不仅仅是在线业务,由于多层次的分库分表,我们的报表分析程序中跨表跨库的Join查询让经验丰富的DBA也头疼痛不已。

 

而为了保持在这个行业的竞争力,降低成本是非常有效的一个法宝。我们采用的最直接的手段就是在夜深人静的时候小心翼翼的删除掉过期的数据。

 

  新的方案,刻不容缓!

 

 

我们开始寻找基于云计算的分布式数据解决方案,直到我们看到了下面的一张图。

 

f191ee80d1fa0c7b8f83e255b53a76e239e8a073

 

表格存储(OTS)是阿里云最近推出的一款自研分布式 NoSQL 数据库,其schema free的特性很适合属性列变化较为频繁的数据存储。车载设备更新和迭代的速度也在不断加快,车联网的业务模式也在不断在变化,表格存储这种弱结构的数据模式与当前车联网数据的需求非常契合。所有车辆的数据均可以存储在一张大表里,新的车载设备上线也不需要修改表结构了。

 

于是,我们将原来的方案替换成:

 

0e55d0cb4d03336427b6d55e3b90aea5e77c672b

 

经过测试,百万车辆50%的在线率的时候,读写的性能都没有出现明显的变化,而且表格存储是一款全托管的服务,也大大减轻了我们运维上的代价。

 

表格存储的数据生命周期功能可谓是数据管理的神器,我们将不同数据存储时长要求的数据存储在一张大表中,设置好过期时间,过期的数据会自动被删除掉,不仅仅很方便的控制了成本,更降低了人工操作的风险。

 

对于报表分析,我们将原来在SQLServer上的SQL分析语句迁移到了MaxCompute(就是阿里云以前的ODPS)https://www.aliyun.com/product/odps上,在MaxCompute上关联好TableStore上的外表,定期执行,既方便,又省钱。这一样以来无需维护数据分析程序,并且按量付费的模式可以最大限度节省成本。

 

粗略算了下,使用表格存储的成本,一辆车不停的跑一年,存储与读写分析的成本也只有1块5,比买瓶饮料还便宜,比最初使用的方案中单车年成本低了一个数量级。

 

写在最后

 

选择上云是我们一个非常大的挑战,一度担心云上的稳定性会导致我们业务的失灵,然而事实证明我们的选择是正确的,云确确实实带来了很多便利,节省了很多成本,让我们可以更聚焦在业务逻辑上,技术架构也能快速迭代,为我们保持一定的行业竞争力提供了有力保障。

本文转载自:http://click.aliyun.com/m/22335/

粉丝 0
博文 120
码字总数 0
作品 0
私信 提问
北京云栖大会 Tech Insight 爆场论坛-云数据·大计算:快速搭建互联网在线运营分析平台

阿里巴巴集团首席技术官王坚在《在线》一书中指出“大数据“的叫法应该叫‘在线数据’。‘在线’远比‘大’更能揭示本质。数据不在线,体量再大,价值也有限。数据在线,即数据实时更新、数据...

小二辛苑
2017/12/19
0
0
表格存储降价啦,来看看可以省多少钱!

作为一款完全自研的分布式NoSQL数据库服务,表格存储在性能、稳定性、功能等方便不断的迭代优化(性能白皮书了解一下),而单机性能的提高也意味着使用单价的降低,于是乎: 表格存储读写费用...

表格存储
2018/05/23
0
0
阿里巴巴大数据计算平台MaxCompute(原名ODPS)全套攻略(持续更新20171127)

概况介绍 大数据计算服务(MaxCompute,原名ODPS,产品地址:https://www.aliyun.com/product/odps)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方...

隐林
2017/05/05
0
0
带你玩转Logview: MaxCompute Logview参数详解和问题排查

摘要:Logview是MaxCompute Job提交后查看和Debug任务的工具。通过Logview可看到一个Job的运行状态、运行结果以及运行细节和每个步骤的进度。当Job提交到MaxCompute后,会生成Logview的链接,...

阿里云云栖社区
2018/09/07
0
0
所见不凡,带你探秘独角兽背后的大数据力量 | MaxCompute杭州Meetup报名中

阿里云MaxCompute X 众安保险 X 亲宝宝 X 中金易云 X 蚂蚁金服 邀您共赴杭州大数据计算线下Meetup 现在报名>> 双11的热度还未退却,大数据力量强势来袭。 是什么拖住了大数据开发者的后腿?集...

晋恒
2018/11/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

python学习10.04:Python list列表使用技巧及注意事项

前面章节介绍了很多关于 list 列表的操作函数,细心的读者可能会发现,有很多操作函数的功能非常相似。例如,增加元素功能的函数有 append() 和 extend(),删除元素功能的有 clear()、 remo...

太空堡垒185
33分钟前
4
0
新手插画学习的方法?教你如何自学?

插画学习的方法?教你如何自学? 从小喜欢画一些漫画头像随笔画,但是其实没有基础。个人偏好小清新手绘风的插画(如下图),每每看到都希望自己能画出这样的作品。 我其实很想说画这种美术功...

huihuajiaocheng
38分钟前
5
0
面试总结

一、2019.10.15日上午交子大道中海国际艾迪泰科面试总结 1、领导比较有亲合力,就是办公环境没有隔挡,不是很喜欢办公环境 2、成都这边人员太少,感觉不到规模 3、离家太远 1、实现clone(); ...

gtandsn
49分钟前
5
0
CentOS 7 部署 tesseract-ocr

官方地址 github yum-config-manager --add-repo https://download.opensuse.org/repositories/home:/Alexander_Pozdnyakov/CentOS_7/ 若提示 yum-config-manager: command not found 执行以......

阿白
50分钟前
3
0
JAVA比较器中comparator的使用

一个专用的比较器Comparator Comparator是一个专用的比较器,当一个不支持自比较或者自比较函数不能满足要求时,可写一个比较器来完成两个对象之间大小的比较。Comparator体现了一种策略模式...

daxiongdi
50分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部