最近我注意到Cassandra和DataStax正在更加推崇CQL3。甚至发布了一个新的Java驱动程序,这个驱动程序完全不使用Thrift。
如果您不使用“紧凑存储”,则无法在应用程序中使用Thrift。因此,我相信Thrift正在从Cassandra中淡出。
我的问题是,对于一个新的应用程序,我该选择使用CQL3吗?然而,我仍然更喜欢Thrift,因为我想知道底层发生了什么,另一方面,我不想使用正在逐渐消失并成为传统的东西。您有何建议?
最近我注意到Cassandra和DataStax正在更加推崇CQL3。甚至发布了一个新的Java驱动程序,这个驱动程序完全不使用Thrift。
如果您不使用“紧凑存储”,则无法在应用程序中使用Thrift。因此,我相信Thrift正在从Cassandra中淡出。
我的问题是,对于一个新的应用程序,我该选择使用CQL3吗?然而,我仍然更喜欢Thrift,因为我想知道底层发生了什么,另一方面,我不想使用正在逐渐消失并成为传统的东西。您有何建议?
我的公司最近也经历了同样的思考过程,并最终选择使用CQL3而非Thrift。
尽管使用CQL3会增加一层抽象,导致透明度稍有不足,但是它与SQL语句类似的编写方式使得代码更易读、更直观。此外,相比于cassandra-cli,我们发现cqlsh接口更加用户友好,便于调试和常规数据库维护(cqlsh中的自动完成功能非常棒!)。
一旦你理解了基础数据结构以及CQL3如何表示这些数据,那么额外的抽象层实际上就微不足道了。