Thrift,CQL3还是什么?

3

最近我注意到Cassandra和DataStax正在更加推崇CQL3。甚至发布了一个新的Java驱动程序,这个驱动程序完全不使用Thrift。

如果您不使用“紧凑存储”,则无法在应用程序中使用Thrift。因此,我相信Thrift正在从Cassandra中淡出。

我的问题是,对于一个新的应用程序,我该选择使用CQL3吗?然而,我仍然更喜欢Thrift,因为我想知道底层发生了什么,另一方面,我不想使用正在逐渐消失并成为传统的东西。您有何建议?

2个回答

3

我的公司最近也经历了同样的思考过程,并最终选择使用CQL3而非Thrift。

尽管使用CQL3会增加一层抽象,导致透明度稍有不足,但是它与SQL语句类似的编写方式使得代码更易读、更直观。此外,相比于cassandra-cli,我们发现cqlsh接口更加用户友好,便于调试和常规数据库维护(cqlsh中的自动完成功能非常棒!)。

一旦你理解了基础数据结构以及CQL3如何表示这些数据,那么额外的抽象层实际上就微不足道了。


CQL3到底如何从Thrift用户的角度来表示我的数据?还有,我也担心CQL3可能会在我毫不知情的情况下生成非常宽的行(限制是20亿)! - Salamander
1
我发现这篇文章对于理解CQL3如何表示底层数据结构非常有用:http://www.datastax.com/dev/blog/thrift-to-cql3 - beterthanlife

0
Datastax鼓励开发者在新应用中使用cql3。从Thrift to CQL3 Guide中可以看到:
“我们认为CQL3是比thrift API更简单、更好的Cassandra API。因此,我们鼓励新项目/应用使用CQL3(尽管请记住,CQL3还没有最终确定,所以这个说法只有在Cassandra 1.2中才完全有效)。但是,thrift API并不会消失。”
除非有很多人要求,否则Thrift将不会获得新功能,因此可以放心地说,对于新应用程序来说,CQL3是更好的选择(当然也有例外...如果您需要底层,则需要使用thrift)。我的唯一痛点是datastax的驱动程序尚不支持SSL,但这在计划中,并希望很快成为一个承诺的功能。

你说“如果你需要低级别,你需要使用Thrift”,那么你所说的低级别是什么意思?抱歉,如果这个问题很愚蠢,我是Cassandra的新手,正在尝试编写一个从Cassandra读取数据的MapReduce。 - Shri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接