datastax

大家好,我是刘军民,我是阿里云数据库的产品经理,目前负责云数据库的产品规划以及相关工作。曾在2019年和多位小伙伴一起发起了中文社区,我希望有更多的小伙伴能加入到社区建设中,这样可以让Cassandra在中国变得生机勃勃大放异彩。


 我今天会分享很多Cassandra典型的应用场景,同时也会对社区进行年度的回顾。


我们刚开始接触Cassandra时,发现这是一个不错的产品,但问题是国内没有中文社区。所以我们联合了阿里云的小伙伴以及其他公司的开发者发起了一些建设工作,包括现在的钉钉群还有微信公众号。


现在,越来越多的公司已经加入进来了,尤其像DataStax的孔令子和邓为老师。他们在社区中做了很多的布道工作,非常感谢他们的付出。


 
社区大事件年度回顾
 
我们前年就在北京开展过线下的meet up。今年本来也想组织线下的meet up,但因为疫情的反复,所以最终改成了线上。

 

2020年我们也做了很多的技术直播,包括关于应用场景的。在去年4月份也邀请邓为老师做了一些关于DataStax的布道工作, 提到关于Cassandra数据库的特点,很多中国的开发者也是在这时候开始接触到Cassandra。


在7月份时,社区也搞了两次比较大的活动。活动包括两大部分,第一个是邓为老师的研习班课程。第二部分则是邀请到到阿里云的郭超、华为的吴太银先生,360的国浩、网龙公司的阙乃祯等讲师分享他们自己的应用场景,包括他们对Cassandra的看法。


然后8月份我们就讲了Cassandra4.0,其实我也刚刚看到群里面有很多同学在说4.0,好像大家都很期待,但是它一直没有发布。


但是目前看,2021年上半年应该是很有希望发布的。而且我们现在阿里云公司其实也在很紧密的关注4.0的一个动态。针对它的一些优秀的特性,我们也在积极的做一些测试和跟进。


9月份时,我就分享了一个Apache Cassandra的国际认证考试。其实我建议大家如果有时间的话,可以花一点时间去学习一下这个课程,然后做这个认证考试。因为你通过认证考试的话,不仅仅只是为了拿一个证,更主要的是这样你就可以比较系统性的学习Cassandra的理论知识。这样对Cassandra会有一个比较初步的认识,这我觉得是很有意义的。


11月份,我们组织了首次线上的圆桌会议,这也是孔令子包括邓为老师花了很多精力的一个事情。这里,有些嘉宾分享了自己当时选Cassandra的原因,在他们眼中的Cassandra有哪些优势和劣势。


最近一次,我们看到有些同学也会提到在K8S上部署Cassandra,我们在12月份做了一个这样的直播。


这些所有直播都可以在我们的社区的钉钉群、社区网站、b站上找到回放。


我们其实依然希望各个公司的这种开发人员和讲师来我们社区讲课,分享他们在某些的应用场景上面的心得,做一些类似于建模或者是各种各样的分享。我们很欢迎大家来联系我们做一个这样的技术直播。

 

 

 
社区的流行度情况
 

接下来是展望,其实Cassandra在宽表数据库领域其实已经连续9年霸榜了。大家可以看到这个数据库本身是一个非常好的非常优秀的数据库产品,它从2012年开始到现在流行一直都是第一的。所以大家可以看到它在国际上的地位,它其实是非常流行的一个数据库。


在社区里,包括前面有很多嘉宾做了分享。其实目前在国内Cassandra也有超大规模集群的应用,现在包括阿里云也在积极投身Cassandra云上产品的开发。


我个人觉得有如下4个方面是值得大家选Cassandra的数据库的:


  • 第一点就是Cassandra对我们开发者是非常易用的。它有CQL语法的支持,这其实就是一个简化版的SQL语句。如果是MySQL开发者切换到Cassanda上,其实不用花太多的精力,很快便可以上手。它还有表级TTL、行级TTL、列级TTL的支持,这可以简化我们数据的处理。


  • 第二点是高性能,大家可以去测一下数据库,你可以发现它数据库的性能表现是非常好的。


  • 第三点就是持续在线能力,它其实有一个非常好的功能。比如我在3副本QUORUM读写这种模式下,单节点故障和单节点下线其实对整个集群没有一个太大的影响,应用甚至都感知不到这个故障,这是它很好的在线能力。同时它还有原生的跨DC容灾的能力,这些都是非常好用的一些特性。


  • 最后就是它的海量扩展能力,单个节点就可以起配,它是没有任何起配门槛的。随着你整个集群慢慢扩大,单个集群可以扩大到几百上千节点的规模。


我觉得这一个很好的大数据的数据库。在2020年,AWS也加入了Cassandra玩家的阵列,它在4月份时发布了一个Amazon Keyspaces云产品,这其实就是一个Cassandra云产品。


所以现在大家可以看到,整个Cassandra的发展应该是呈现一个越来越成熟、越来越丰富的趋势。

 

 

 
中文社区发展展望
 
其实我希望和大家一起来立一个新年的 flag。
 

 

全球:


现在全球有数千万开发者,我们希望可以联手包括DataStax和其它的一些公司,在东南亚甚至是在欧美这些比较发达的一些国家建设生态、建设社区。这样能把更多国际上的一些优秀的案例,包括一些最佳实践,回流到中国区,然后给国内的开发者带来参考和便利。


包括海外的一些嘉宾,我们也希望社区里一些非常优秀的讲师能来中国区给我们国内的开发者做一些布道, 这是我们在全球区的期望。


国内:


在中国区,我们也希望把Cassabdra社区建设成一个开放性的社区,然后每个月都定期组织这种技术直播。


我们也希望在各个行业,包括整个的一些应用场景上面,有一个比较成熟的最佳实践来分享给大家。比如说我们的互联网、车联网、IoT场景、包括我们现在正在新兴的智能制造等行业,我们都希望有对应Cassandra的最佳实践。我们也希望能把这些案例同步到我们社区里面来,给大家做更多各种各样的参考。这样其实就可以指导我们的开发者更好地去用好Cassandra数据库。


我们希望在2021年能够把这些事情做的更完善。包括我们线下meet up,等疫情过去的话,我们依然想坚持把线下meet up活动一直做下去,然后从线上走到线下,和大家面对面做一些交流或讨论。 


因为我最近其实也没有时间去写博客了,但我也希望大家能够把自己的一些心得,包括把自己的一些在Cassandra上的一些应用实践,以博客的方式投稿到开发者社区来。然后给大家所有的这些周边的一些团队、同行去做一些这种交流,这我觉得是非常好的一个事情。


所以我们在2021年的话,我们依然会推动去做这些事情。


目前我们钉钉群有1500多号人。我们希望通过一年的努力,至少翻可以翻一倍。我们的微信公众号现在也有2800号人左右,我们也希望能够达到5000人,这是我个人的一些期望。


最后,我们也希望和中国区的Cassandra开发者,包括我们的一些领域行业专家一起联手去出一本书。那么这本书是属于我们中国开发者自己的Cassandra技术书籍。我们期望行业内*Cassandra技术的专家,甚至国际上的一些专家都能够加入进来,把这本书做成一个高质量的输出。   

 


 
Cassandra典型应用场景
 

现在让我们进入比较关键的一个话题,Cassandra到底在哪些场景可以使用。或者先让我们聊一下为什么像Cassandra或HBase这种宽表数据库会出现。


我觉得这也是因为数据的爆炸式增长,对数据的需求变得多样化。流量,包括现在各种APP、各种场景的丰富度,导致原先传统的SQL关系数据库很难覆盖所有的使用场景。


随着技术的发展,其实越到后面你就会发现除了要一个RDS之外,还需要一个NoSQL的大数据的数据库。我们Cassandra就是为了这种场景而诞生的。

 


 
云上典型应用场景
 

那它具体可以应用到哪些场景?下图中我将阿里云的一些客户做了一个大致的汇总。


汇总下来,我们发现主要的使用场景可以分在以下五个方面。


  • 第一方面依然是互联网,包括一些泛互联网的行业的公司。比如说搞一些电商或者是网站的,还有各种各样的应用。


  • 第二个场景,现在我们也发现越来越多的汽车公司,包括一些交通行业的车联网车载终端都会用到Cassandra数据库。还有一些视频监控的,不管是家用的,还是一些社会上的视频监控的公司。


  • 第三点的话,教育和泛娱乐这一块。也是因为今年的疫情,我们见证了越来越多的这种网上学习授课的公司的发展,它们其实也有很多场景可以用到我们数据库的。还有一些游戏,其实2020年的游戏也是爆炸式的一个增长,然后包括短视频网站,社交类的这种APP是吧。类似于这种场景,其实在阿里云Cassandra可能都有这种用户的存在。


  • 第四个场景就是现在比较火的IoT和智能制造。随着我们5g技术慢慢的推广,其实IoT和智能制造行业都会慢慢火爆起来。具体就是有些智能家居,包括定位设备。还有我们之前提到的终端,比如说手机、家庭摄像头、智能手表,这些其实都可以用到我们数据库。


  • 最后一个就是互联网金融,这一块主要是用在一些风控或者是BI场景来做画像。

 

上面的是我们用到的行业,下面是具体的应用场景。


  • 我们Cassandra一些用户主要是用Cassandra来储存元数据。比如说视频监控,其实大量的视频文件放在Cassandra是不合适的,你可以放到OSS或者NAS里面。但这个视频本身是有元数据的,比如说“这个视频是在什么时候录的?通过是哪个设备录制的?设备是属于哪个用户的?”类似于这种属性类的大量元数据是可以存到Cassandra中的,包括设备的用户信息。


  • 第二个是系统日志还有记录,比如说你登录到一个网站上面浏览了一个商品,那么就会有一个关于这个商品的浏览记录。还有比如系统里面可能有大量的日志,这些是可以存到Cassandra里面来的,比如账单报表以及商品的详情信息。


  • 第三就是设备的信息,包括一些轨迹数据,这其实就是我们前面提到过的那些交通行业,包括汽车行业,它其实是用来存这些数据的。


  • 还有第四块是Cassandra一个非常经典的场景,从一些Feeds流,比如说有一些这种聊天室的应用。那么聊天室里面有大量的这种聊天记录,类似的还有一些消息数据、点赞评论,这些其实都可以存到Cassandra里面来。


  • 最后一个场景就是风控,可以做一些用户的信息,包括一些画像,它其实都有用到Cassandra。


其实我们对Cassandra的特性的认识主要是高扩展和高并发的读写能力、零宕机时间(Always Online)、TTL特性,还有单节点起配。Cassandra是没有起配门槛的,很多有新兴应用场景的初创公司是非常喜欢这种数据库的。因为用起来非常简单,开发起来也非常简单,成本也非常低,并且没有起配的门槛。最后Cassandra还有一个特点就是多DC,大家也都很认可它原生的多DC的容灾能力。


总结起来的话就是Cassandra的起配门槛非常低,有开发简单、非常稳定、比较容易维护的特点。所以在国内其实也开始慢慢的变得流行起来。尤其是前面提到过的一些初创公司和有新兴应用场景的公司,他们其实是没有历史包袱的,而且这些公司的一些开发人员也更加open一些,当他们去选数据库时,也会优先去考虑这种优秀的数据库。所以我们就会发现Cassandra在这些公司中的接受度其实比那些传统行业的接受度会更高一些。

 


 
应用案例1:某金融风控
 
 
接下来就是一些具体的场景了,比如说金融风控和Spark的联合应用。比如说可以通过spark分析Cassandra里面的数据,然后做一些离/在线分析。类似于这种应用其实可以用到一些分工的场景。
 
从我们这类客户会反馈来说,他们欣赏Cassandra数据库的良好的水平拓展性,有原生的TTL以及零宕机时间。

 
应用案例2:用户画像、分析和推荐
 
第二包括Kafka、Spark Streaming/SQL和Crystal,这些其实也有客户慢慢地和Cassandra一起联合应用起来了。
 
这其实也是看中了Cassandra的高并发的写入以及强扩展等能力。

 
应用案例3:IoT物联网、车联网
 
第三点就是IoT物联网和车联网。他们其实也是看中了Cassandra完全在线的扩展能力以及高并发的写入。
 
IoT有一个特点:前端的终端设备非常庞大。这么庞大的设备量对后端数据库高并发写入的要求是非常高的,那这就是Cassandra的优势场景了。因为Cassandra主要就是为了应对这种高并发写入的数据库。
 

 
应用案例4:智能终端(智能手机手表、摄像头、车载终端等)
 
第四点是智能终端,比如说现在很多儿童手表有定位功能,包括家用摄像头以及车载终端。
 
其实这些终端都有一个共同的特点,它们的终端数量是非常庞大的,终端信息也非常庞大。所以这些场景其实也是有高并发写入的需求的,而Cassandra就非常适合于满足这种需求。

 
应用案例5:历史存储
 
还有用户会把Cassandra用于历史存储。比如说我有一些其它系统的日志,我就可以把它们存到Cassandra里做一个长期归档。然后这些大量的数据还可以用来和spark做分析,然后可以提供报表或者是数据挖掘的能力。

 
应用案例6:在线视频服务
 
第六个场景是现在国内慢慢开始出现的视频业务的应用,其实就是会用到Cassandra多逻辑DC的能力。
 
因为Cassandra本身可以多逻辑DC部署的,我们不需要通过额外的数据传输工具实现多逻辑DC的数据传输,那么我们就可以非常容易构建存算分离或读写分离的模式。
 
如果我有专门的生产逻辑DC,这些集群资源就可供我的生产系统来用。然后如果我的再扩一个逻辑DC出来,那么用这个DC的资源,我就可以专门去跑这种高并发分析任务。那么这样的话它就可以在两个逻辑DC之间实现每个DC里的工作负载对资源独占,但互不影响。这种用法其实是推荐的。

 
应用案例7:社交场景应用案例
 
第七个场景就是社交场景。我们现在国内的APP越来越多,大家可能在国内是非常有体感的,各各种各样的APP。它们其实都有这种类似于海量的帖子、文章、聊天,包括一些评论点赞。这些信息其实都可以用Cassandra就去做一个完美的实现。
 
还有第八点前面也提到过跨DC容灾,那么这里就不重复了。
 
 

相关文章: