|
谈一谈NewSQL, 说来汗颜了,一开始以为我们作的项目是一个伪NOSQL,没想到是NEWSQL。
大概说说我们项目,是一个交通车辆实时通信监控的项目,在某大省会城市几乎所有装有摄像头的路口或路段都会进行拍照和监控,大致的作用
是能在第一时间找到被通缉的车辆,和查找到在路上的每一辆车的通行轨迹。
原来使用ORACLE 在通行量不大时,加上数据只需保持3个月,压力还是可以勉强承受的,但是随着现在车辆高速增长,无法满足需求,
我们开始把这一部分迁到大数据平台,上,使用HBASE记录数据,使用HDFS存储 图片 ,
一开始简单的功能 实现没有问题 ,使用 SPRINGDATA的 框架对于 JAVA开发人员 来说 不是 很难。但是到了大数据量上一侧,发现没有做索引的HBASE 比ORACLE 还要慢,于是找索引方案 ,
两种选择要么 使用自建 索引算法,像华为这样的大公司一样,自己做索引算法,同收下的码农一说
都不高兴,平时除了敲些重复性的代码以外,多少年没有做算法了,
另外一种方法,是使用hbase的coprocessor机制进行 查询的并行化和做些类似的索引的东西,这个总体说还行,总感觉每加一个字段都要该代码,代价太大了。
后来我们开始尝试JDBC的方案 ,使用比较给力的SALEFORCE的一个 phoenix框架,还真管用,前端的代码无需大改,后端只需要更新JAR包就可,最主要封装了索引功能,索引数据几乎要占、1/3的region Server,不过只要性能上去了,就OK,非常好使,基本上可以满足需求,但是有个问题就是 开源,有BUG 得向 github上提 issue,还好该项目很活跃,几乎每天都有更新 。
不知道我说的这些东西是不是 NEWSQL,
但是基本上可以肯定,整个架构下来,可以利用SQL的特性与原有框架集成(不能进行复杂的JOIN和 一些嵌套查询),又可以利用hadoop计算平台。
但是有几个问题我们也在思考(纯属个人瞎掰,不要当真)
1.这样的架构是否同 CAP理论,相违背?
我觉得不是,在使用的过程了确实有无法查询到最新数据的情况,但是这个对我们业务影响不大,只要最终一致性即可。CAP并不是绝对的,可以根据业务来确定,C 占多少%,P 又占多少。
2.在做JDBC的SQL 解析,到NOSQL API的映射的消耗,
这个相对于整个QUREY的消耗来说,真是微乎其微,还有些淘宝的哥们,在做分布式的类似NEWSQL,比较酷,不知道在生产上到了那一步。
3. 觉得讨论NOSQL,SQL 相比讨论 NEWSQL 没有多少意义,在业务上的需求和团队的类型,自然而然的事,至于有多少理论基础,可以说一点也没有,所有大规模 吹嘘NEWSQL的人, 都是炒作罢了,不要当真! |
|