内容简介:翻了一下以前写的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等解决方案.
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 数据分析,如何指导互联网产品的功能设计?
- 几种流行的大数据分析产品模型预测功能介绍
- 1行代码实现Python数据分析:图表美观清晰,自带对比功能丨开源
- 逆向分析Spotify.app并hook其功能获取数据
- 数据分析是什么,如何完善数据分析知识体系
- 大数据分析工程师入门(二十):数据分析方法
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Unity游戏设计与实现
[日]加藤政树 / 罗水东 / 人民邮电出版社 / 2015-2 / 79.00元
本书出自日本知名游戏公司万代南梦宫的资深开发人员之手,面向初级游戏开发人员,通过10个不同类型的游戏实例,展示了真正的游戏设计和实现过程。本书的重点并不在于讲解Unity的各种功能细节,而在于核心玩法的设计和实现思路。每个实例都从一个idea 开始,不断丰富,自然而然地推出各种概念,引导读者思考必要的数据结构和编程方法。掌握了这些思路,即便换成另外一种引擎,也可以轻松地开发出同类型的游戏。 ......一起来看看 《Unity游戏设计与实现》 这本书的介绍吧!
正则表达式在线测试
正则表达式在线测试
HEX HSV 转换工具
HEX HSV 互换工具