[Cassandra教程] 几个针对数据分析好用的功能

栏目: 数据库 · 发布时间: 7年前

内容简介:翻了一下以前写的Cassandra相关的教程, 发现最开始是2016年写的博客了.也没想到坚持了这么久. 经过这么长一段时间使用Cassandra作为基础数据承载的基础架构, 有一些实战获得的经验.总而言之, Cassandra并不适合类似金融方向这种需要高可靠性\事务性的业务. 但是对数据分析, 确实有一些功能比较好用.

引言

翻了一下以前写的Cassandra相关的教程, 发现最开始是2016年写的博客了.

也没想到坚持了这么久. 经过这么长一段时间使用Cassandra作为基础数据承载的基础架构, 有一些实战获得的经验.

总而言之, Cassandra并不适合类似金融方向这种需要高可靠性\事务性的业务. 但是对数据分析, 确实有一些功能比较好用.

省心的重复数据处理

在批量导入数据到数据库之中的时候, 难免有重复导入的时候. 如果使用 MySQL 等等, 就需要事先按照时间或者其他条件, 先把历史数据删除.

而Cassandra并不需要特殊处理. 在导入之前, 只要设计好相应的主键, 在导入的时候, Cassandra会自动覆盖相应的记录. 不会存在多一份数据的问题

Insert == Update

我们在插入数据的时候, 经常会这种需求: 如果存在, 就更新, 如果不存在就插入

如果使用MySQL, 就只能自己先select一把再相应的insert或者update.

当然, 也能通过一些Workaound来解决. 比如 on update XXX key 的方式.

但是在Cassandra之中, 虽然 insertupdate 的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等解决方案.


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

代码之美

代码之美

Grey Wilson / 聂雪军 / 机械工业出版社 / 2008年09月 / 99.00元

《代码之美》介绍了人类在一个奋斗领域中的创造性和灵活性:计算机系统的开发领域。在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。 《代码之美》33章,有38位作者,每位作者贡献一章。每位作者都将自己心目中对于“美丽的代码”的认识浓缩在一章当中,张力十足。38位大牛,每个人对代码之美都有自......一起来看看 《代码之美》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具