【问题标题】:About Java Cassandra Client, which one is better? How about CQL? [closed]关于Java Cassandra Client,哪个更好? CQL怎么样? [关闭]
【发布时间】:2018-01-02 04:45:39
【问题描述】:

我正在尝试使用 Hive 作为数据库来开发应用程序,然后我还找到了 noSQL 解决方案作为它的替代方案。

现在决定使用 Cassandra 进行开发,我的下一个问题是我应该使用什么客户端?哪个更好,Hector - 纯 Java 解决方案,还是 Kundera 与 JPA 之类的开发?

我更喜欢赫克托,但我对昆德拉很好奇。有人用昆德拉吗?哪个更好?


我对 CQL(Cassandra 查询语言)很好奇。它可以与 Hector 集成吗?

【问题讨论】:

    标签: cassandra kundera


    【解决方案1】:

    Hector 正在慢慢向 CQL 集成迈进。第一步已经完成,但由于 API 不稳定的经验,开发人员似乎推迟了新版本的发布。 CQL API 相当新,因为它应该几乎等同于 SQL 语法。我使用 CRUD 操作做了一些基本步骤,以验证可以通过 CQL 写入和读取数据。

    尽管如此,CQL JAR 目前还不能像标准 JDBC 驱动程序那样开箱即用,并且遗漏了一些重要的特性方面。看看或多或少难以理解的 thrift API 和不太简单的 hector API,我相信 CQL 将在 0.8.1 和 1.0 版本中成为 Cassandra 的最先进的访问 API ,thrift 将在一段时间内保持原生的原始访问权限。

    两个 API 之间的竞争与 Hector 的决定无关。 Hector 本身提供了额外的服务,比如集群中的故障和连接处理。 thrift 和 CQL 都没有解决这些功能。

    我真的不相信所有其他的 O/R 映射器,甚至那些声称提供成熟 JPA 的。我无法想象这应该如何工作。

    【讨论】:

      【解决方案2】:

      回答您关于客户端的问题 - Hector 本质上提供对 Cassandra 原生 API(列、列族、行等)的访问,而 Kundera 旨在隐藏这些细节并提供对象-数据库映射。

      因此,Kundera 可能更容易将一系列 Java 对象快速持久化到 Cassandra - 但可能无法提供有效的映射,可能会失去一些 noSQL 方法提供的性能。

      Hector 希望您适应 Cassandra 数据模型 - 这将是一项艰巨的工作,但可能会提供更高的性能。

      【讨论】:

      • 感谢您的回复,它真的让我大开眼界,我想我会尝试更深入地了解 Hector,并将在我的应用程序中使用它..顺便说一句,CQL 怎么样?那是另一个客户端 API 吗?它可以与 Hector 集成吗?谢谢..:D
      • 请注意,Kundera 使用 Solandra 实现索引,这对于全文搜索以外的任何内容都是错误的方法。
      【解决方案3】:

      现在有一个新客户端 Astyanax,由 Netflix 于 2012 年 1 月发布。

      "Astyanax 是一个 Java Cassandra 客户端。它借鉴了许多概念 Hector 但在连接池实现以及 客户端 API。主要的设计考虑之一是提供一个 连接池和 Cassandra API 之间的干净抽象,所以 每个都可以单独定制和改进。 Astyanax 提供 一个流畅的 API 引导调用者缩小查询范围 列的关键以及为更复杂的用例提供查询 我们遇到的。 Astyanax 的运营优势超过 Hector 包括更低的延迟、减少的延迟方差和更好的 错误处理。”

      Astyanax 的源代码托管在 Github:https://github.com/Netflix/astyanax

      【讨论】:

        【解决方案4】:

        有关在 Cassandra 和 Hector 中使用 CQL 的详细信息,请参阅: https://github.com/rantav/hector/wiki/Using-CQL

        以下邮件列表线程很好地讨论了我们将 CQL 作为 API 的用途: http://groups.google.com/group/hector-users/browse_thread/thread/540dc9c3908fbb44/f5ee488f2178e2f4

        【讨论】:

          【解决方案5】:

          为了完整起见,我认为Pelops 库也应该被提及。 Hector 似乎是最常用的,但 Pelops 有一个更简单的 API。 Pelops 不支持 CQL。

          虽然来自 Ruby,但我发现两者都非常冗长和命令式。

          【讨论】:

            【解决方案6】:

            Kundera 不再依赖 Solandra 进行索引方法。它现在使您能够使用 Cassandra 提供的二级索引支持,并且它为您提供了一种通过 OPP 运行 jpa 查询(如范围查询等)的方法。我们正在努力启用原生 CQL 支持。

            看看: http://mevivs.wordpress.com/2012/02/13/how-to-crud-and-jpa-association-handling-using-kundera/

            了解更多详情。

            -Vivek

            【讨论】:

              【解决方案7】:

              没有与hector同级的java客户端,hector是最好的,hector端有工作支持cql。我本月在 github 上看到了 hector 的 cql 提交,但不知道它的最终状态。您可以向赫克托用户群http://groups.google.com/group/hector-users

              在 hector 中还有一个非常简单的对象映射器 https://github.com/rantav/hector/wiki/Hector-Object-Mapper-%28HOM%29

              我最好的,

              塞尔达伊尔马克

              【讨论】:

              • 感谢您的回答,它真的很清楚并回答了我的问题..谢谢..
              【解决方案8】:

              Kundera2.0.4 发布:

              此版本的主要变化:

              • 跨数据存储持久性(通过 nosql 轻松迁移现有 mysql 应用)
              • 支持关系数据库(例如 Mysql 等)
              • 将 solandra 替换为基于 lucene 的索引。
              • 添加了对双向关联的支持。
              • 性能改进修复。

              我们进行了测试,在 6 分钟内完成了 100 万次正确索引的插入。

              维韦克

              【讨论】:

                【解决方案9】:

                我还没有尝试 Hector,但我参与了最新的 Kundera 2.0.1 版本。我建议你试一试。自成立以来,它发生了重大变化,您可以看到添加了许多新功能并修复了错误。目前它支持 JPA 1.0 和 Cassandra 0.7.6,但我们计划很快添加对 Cassandra 0.8 和 JPA 2.0 的支持。这里有一个很好的例子:https://github.com/impetus-opensource/Kundera/wiki/Getting-started 可以帮助您入门。

                【讨论】:

                  【解决方案10】:

                  Astyanax api 生成人类可读的代码,并且确实包含连接池。

                  【讨论】:

                    【解决方案11】:

                    对 cassandra 的 CQL 支持已集成到 kundera 2.0.6(尚未发布)中。它现在允许将 CQL 作为 nativequery 执行。

                    -Vivek

                    【讨论】:

                      猜你喜欢
                      • 2014-07-26
                      • 2022-08-08
                      • 1970-01-01
                      • 1970-01-01
                      • 2011-07-02
                      • 2011-03-06
                      • 2011-03-19
                      • 2011-01-05
                      • 2014-09-06
                      相关资源
                      最近更新 更多