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

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

内容简介:翻了一下以前写的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等解决方案.


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

查看所有标签

猜你喜欢:

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

黑客攻防技术宝典(第2版)

黑客攻防技术宝典(第2版)

[英] Dafydd Stuttard、[英] Marcus Pinto / 石华耀、傅志红 / 人民邮电出版社 / 2012-6-26 / 99.00元

内容简介: Web应用无处不在,安全隐患如影随形。承载着丰富功能与用途的Web应用程序中布满了各种漏洞,攻击者能够利用这些漏洞盗取用户资料,实施诈骗,破坏其他系统等。近年来,一些公司的网络系统频频遭受攻击,导致用户信息泄露,造成不良影响。因此,如何确保Web应用程序的安全,已成为摆在人们眼前亟待解决的问题。 本书是Web安全领域专家的经验结晶,系统阐述了如何针对Web应用程序展开攻击与......一起来看看 《黑客攻防技术宝典(第2版)》 这本书的介绍吧!

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

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试