内容简介:翻了一下以前写的Cassandra相关的教程, 发现最开始是2016年写的博客了.也没想到坚持了这么久. 经过这么长一段时间使用Cassandra作为基础数据承载的基础架构, 有一些实战获得的经验.总而言之, Cassandra并不适合类似金融方向这种需要高可靠性\事务性的业务. 但是对数据分析, 确实有一些功能比较好用.
引言
翻了一下以前写的Cassandra相关的教程, 发现最开始是2016年写的博客了.
也没想到坚持了这么久. 经过这么长一段时间使用Cassandra作为基础数据承载的基础架构, 有一些实战获得的经验.
总而言之, Cassandra并不适合类似金融方向这种需要高可靠性\事务性的业务. 但是对数据分析, 确实有一些功能比较好用.
省心的重复数据处理
在批量导入数据到数据库之中的时候, 难免有重复导入的时候. 如果使用 MySQL 等等, 就需要事先按照时间或者其他条件, 先把历史数据删除.
而Cassandra并不需要特殊处理. 在导入之前, 只要设计好相应的主键, 在导入的时候, Cassandra会自动覆盖相应的记录. 不会存在多一份数据的问题
Insert == Update
我们在插入数据的时候, 经常会这种需求: 如果存在, 就更新, 如果不存在就插入
如果使用MySQL, 就只能自己先select一把再相应的insert或者update.
当然, 也能通过一些Workaound来解决. 比如 on update XXX key
的方式.
但是在Cassandra之中, 虽然 insert
与 update
的CQL长得完全不一样(都是标准SQL), 可是作用是一样的. 无论原来是否存在相应的数据, 使用 insert
或者 update
最后结果都是一样的.
直接塞入Json字符串
【个人认为, 这个feature非常非常的重要!】
这个feature跟MySQL 5.7 或者 MongoDB 直接塞入json不太一样.
在MySQL或者MongoDB之中, Json数据是某一个单元格的数据是json类型. 而Cassandra可以把一行的数据以JSON的方式直接插入, 让Cassandra自己相应的塞入对应的列之中.
举个例子:
cqlsh> INSERT INTO cycling.cyclist_category JSON '{
"category" : "GC",
"points" : 780,
"id" : "829aa84a-4bba-411f-a4fb-38167a987cda",
"lastname" : "SUTHERLAND" }';
结合上面提到的 insert == update
, 如果在更新的时候, 也可以转成 insert
的方式进行.
另外, 这种方式还有一个好处: 可以做成通用的插入函数. 这样无论是什么数据, 在塞入的时候变成相应的json字符串即可. 他们使用的 SQL 都是相同的. 不再需要单独编写SQL
代价就是: 批量插入速度可能会降低25%这样
text == varchar == string
我们在设计MySQL schema的时候, 还得考虑是 char
还是 varchar
还是 longtext
之类的.
在Cassandra, 这个设计就简化很多了: 只有 text
也不需要你考虑长度.
我想, 虽然性能没有那么机制, 但是Cassandra在设计之初, 就考虑的是拥有足够的硬盘. 另外在性能上面, 可能也没有那么机制, 不过好在用起来非常简单.
结语:
如果你要处理的数据量在10G~1000G这个级别, 我相信Cassandra会是比较好用的.
如果只是非常小的数据库, 纯文件服务器或者MySQL也够用了.
如果是超过1T的级别, 目前笔者还没有经验, 可以尝试Cassandra集群, 也可以尝试HBase / Hive等解决方案.
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入分析Java Web技术内幕(修订版)
许令波 / 电子工业出版社 / 2014-8-1 / CNY 79.00
《深入分析Java Web技术内幕(修订版)》新增了淘宝在无线端的应用实践,包括:CDN 动态加速、多终端化改造、 多终端Session 统一 ,以及在大流量的情况下,如何跨越性能、网络和一个地区的电力瓶颈等内容,并提供了比较完整的解决方案。 《深入分析Java Web技术内幕(修订版)》主要围绕Java Web 相关技术从三方面全面、深入地进行了阐述。首先介绍前端知识,即在JavaWeb ......一起来看看 《深入分析Java Web技术内幕(修订版)》 这本书的介绍吧!