【问题标题】:Thrift, CQL3 or what?Thrift、CQL3 还是什么?
【发布时间】:2013-05-04 18:40:19
【问题描述】:

最近我注意到 Cassandra 和 DataStax 正在更多地推动 CQL3。甚至发布了一个新的 java 驱动程序,这个根本不使用 Thrift。 如果您不打算使用“紧凑型存储”,您将无法在您的应用程序中使用 Thrift。因此,我相信 Thrift 正在从 Cassandra 中淡出。

我的问题是,对于一个新应用程序,我应该使用 CQL3 吗?但是,我仍然更喜欢节俭,因为我想知道下面发生了什么,另一方面,我不想使用正在淡出并成为遗产的东西。你有什么推荐的?

【问题讨论】:

    标签: cassandra cql datastax-java-driver


    【解决方案1】:

    我的公司最近经历了同样的思考过程,最终使用 CQL3 而不是节俭。

    尽管 CQL3 的附加抽象层略微缺乏透明度,但在我看来,编写 SQL 样式语句的简便性和熟悉性使代码更具可读性和直观性。此外,我们发现 cqlsh 界面比 cassandra-cli 在调试和一般数据库维护方面更加用户友好(自动完成在 cqlsh 中非常棒!)。

    一旦您了解了底层数据结构以及 CQL3 如何表示该数据,额外的抽象层实际上就变得无关紧要了。

    【讨论】:

    • 关于 CQL3 如何真正代表我的数据的更多信息(从节俭用户的角度来看)?另外,我还担心 CQL3 可能会在我不知道的情况下尝试生成非常宽的行(限制为 20 亿)?!
    • 我发现这篇文章对于理解 CQL3 如何表示底层数据结构非常有用:datastax.com/dev/blog/thrift-to-cql3
    【解决方案2】:

    Datastax 鼓励开发人员将 cql3 用于更新的应用程序。来自Thrift to CQL3 Guide

    ...我们相信 CQL3 是一个比 Thrift API 更简单且整体更好的 Cassandra API。因此,鼓励新项目/应用程序使用 CQL3(尽管请记住 CQL3 还不是最终版本,因此该声明仅在 Cassandra 1.2 中完全有效)。但是 thrift API 不会去任何地方。

    Thrift 不会获得更新的功能(除非它们被大量请求),所以可以肯定地说 CQL3 是新应用程序的更好选择(当然也有例外……如果您需要低级,则需要 Thrift) .我唯一的痛苦是 datastax 的驱动程序还不支持 SSL,但它正在开发中,希望很快成为一个承诺的功能。

    【讨论】:

    • 你说“如果你需要低级,你需要节俭”你所说的低级是什么意思,对不起,如果它是愚蠢的,我是 Cassandra 的新手,并试图编写一个 mapreduce 来读取数据卡桑德拉。
    猜你喜欢
    • 1970-01-01
    • 2013-05-07
    • 2013-07-08
    • 2014-01-06
    • 2013-03-21
    • 2013-05-22
    • 2021-08-06
    • 2014-02-01
    • 1970-01-01
    相关资源
    最近更新 更多