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

原文链接

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

初始方案

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

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

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

存在问题

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

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

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

新的方案,刻不容缓!

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

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

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

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

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

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

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

写在最后

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

原文链接

时间: 2024-11-09 01:44:31

老司机带你用MaxCompute和表格存储玩转车联网数据的相关文章

十年建站老司机带你十分钟搭建网站

本文概要: 1. 域名 + 域名注册 + 域名备案 + 域名解析绑定 2. 服务器 + 虚拟主机 + windows服务器 + linux服务器 3. CMS建站系统 4. 总结 在如今互联网发展迅速猛进的大环境下,网站已经成为一个企业不可缺少的网络媒介.但网站开发行业鱼龙混杂,质量参差不齐,价格更是跨越区间大.尤其对于那些在建站方面不懂的小白来说,很容易被人坑,所以作为在网站开发行业摸爬滚打多年的草根老司机,通过本文向大家分享建站的经验与心得,避免不必要的弯路和成本损耗. Come on! 小

老司机带你用vagrant打造一站式python开发测试环境

前言 作为一个学习和使用Python的老司机,好像应该经常总结一点东西的,让新司机尽快上路,少走弯路,然后大家一起愉快的玩耍. 今天,咱们就使用vagrant配合xshell打造一站式Python开发测试环境. 目的 让你在Windows下,也能愉快的使用Linux环境调试Python. 适用人群:Python新手和希望在Windows下使用Linux环境调试Python的小伙伴们. 难度:super easy 最终效果:只用一个xshell终端(其他类似的都可以),启动ubuntu虚拟机,py

老司机带你在MySQL领域“大吉大利,晚上吃鸡”

老张superzs来更新博客啦,大家新年好啊,好久没有跟大家见面了.说句走心的话,很想你们!最近因为要出版自己的第一本书<MySQL王者晋级之路>一直在忙于宣传.实在抱歉,没能及时更博.今后还是会多奉献精彩文章! 最近绝地求生这个游戏太火了,当我问我的朋友们你们闲时在干嘛,基本上告诉我的答案都是在"吃鸡"啊!想必很多老铁们也玩,那一定应该知道绝地求生中有把枪叫AWM.此枪伤害裸132点,爆头330,即使三级头爆头必死,无防弹衣或者防弹衣有破损,一枪死.是这个游戏中威力最大的

Jmeter 老司机带你一小时学会Jmeter

Jmeter的安装   官网下载地址:http://jmeter.apache.org/download_jmeter.cgi 作为Java应用,是需要JDK环境的,因此需要下载安装JAVA,并且作必要的的环境变量配置. 一.bin目录 examples: 目录中有CSV样例 jmeter.bat/jmeter.sh  windows的启动文件/linux的启动文件,通过编辑可以修改Jmeter启动时候的JVM参数等等 jmeter.log jmeter运行日志文件 jmeter.propert

老司机带你攻破微信消息防撤回功能

前言: 微信聊天的时候,一疏忽竟然错过了什么,对方撤回了一条消息,一位小妹妹给你发了一张不可描述的照片,下一秒她又后悔选择了撤回.那么到哪去寻找撤回的消息呢?难道我们就不能做点什么? 就在昨天,我的一位好友壳子@ZKeeer 使用itchat库做了小脚本写了一篇文章:初学python--微信防撤回功能改进(一个用处不大的功能) - 知乎专栏,在得到壳子的授权之后,我对他的代码进行了修改,并把代码包装成了可执行的exe文件用来造福更多有需要的朋友们. 这个工具暂时我们教叫它:wMsg wMsg能实

老司机带你探知存储伸缩之道,赶紧上车,来不及了!

王炎,2013年加入腾讯架构平台部,从事分布式存储平台的开发和运营.目前负责冷数据存储的相关研发工作,主要应对云存储数据快速增长场景下,持续完善分级存储系统,优化总体存储成本. 一.概要 腾讯分布式文件存储(TFS)的数据量在短短数年时间里从0增加至EB级别,使用了几十万块磁盘,增长速度非常迅猛.另外,TFS承载的几乎都是互联网在线存储业务,需要在保证业务正常访问的情况下经常性快速扩容.在这种情况下,存储系统的伸缩性显得尤为重要,扩容过程的高效.稳定就成为必须要解决的问题. 下面介绍TFS平台实

初窥wordcloud之老司机带你定制词云图片

抓紧上车啦 #-*-coding:utf-8 -*- from os import path from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator #用来画词云的. import matplotlib.pyplot as plt #用来解析特殊的图片模板,numpy也可以的. from scipy.misc import imread #第一步读你要制作成词云的源文件,少年记得用'r'去读,手抖用了次'w+'结果文件让我清

躺好,老司机带你收割小米机器人

在第二期大米体验师活动期间,我们收到了许多大米云用户精心撰写的稿件. 内容大多是他们在工作.创业中和大米云发生的故事. 虽然没有离奇的事件,没有煽情的文字.但是,每每阅读稿件时,我们都会微微泪目,低头沉吟:原来,我们早已和这些用户并肩同行,即便没有会面,没有交谈,漫漫梦想之路,我们用最好的默契,搀扶着彼此,共同前行. 大米的产品宗旨是为创业者和开发者提供更好的云产品,同时希望有更多优秀体验师与大米一起改变云计算,让云计算在创业者们实现创业理想的过程中助力. 因此, 第三期大米云主机体验师活动如期

老司机带你认识IP一些基础的知识

入门对IP得一个简单认识ip地址 ip address 作用: 标识一个节点的网络地址! 地址组成{点分十进制}:-一共分为32个二位进制-转换为4个十位进制表示,以. 隔开 子网掩码:是用来区分网络位和主机位的 网关 是指一个网络连接到另外一个网络的关口 备用配置1专用的ip地址:169.254.0.1 --169.254.255.254 子网掩码:255.255.0.02用户手工配置:ping命令测试网络连通性ping 127.0.0.1IP分类:A类 1--127 B类 128---191