【问题标题】:Cassandra driver querying with multiple keys使用多个键查询 Cassandra 驱动程序
【发布时间】:2019-05-17 14:57:59
【问题描述】:

我正在尝试从 C++ 应用程序查询 cassandra,并返回一组键的值。我正在使用此处描述的 datastax 驱动程序:http://datastax.github.io/cpp-driver/api/

cassandra 查询字符串是这样的:

SELECT value from my_table WHERE key IN (?);

如果我为每个参数数量准备一个单独的查询字符串,我可以使用 cass_statement_bind_string_n ,但是有没有一种方法可以使用一个字符串而不考虑我希望查询的键数量?

【问题讨论】:

    标签: c++ cassandra cassandra-2.0


    【解决方案1】:

    这里有几件事:

    1. 语法IN (?) 表示您始终只要求一项 - 您的列表只有一项;
    2. 如果要查询多个项目,则需要将语法更改为IN ?,并使用ass_statement_bind_collection_by_name 将其绑定到具有LIST 类型的值。 See doc on how you can create collection types;
    3. 使用IN 查询分区键实际上是反模式 - 它增加了执行查询的节点的负载,并使您的查询速度变慢,因为协调节点需要向其他节点发送请求,并等待结果,收集它们,然后发回。如果您为每个分区键发出单独的请求,并在您的应用程序中收集答案,速度会更快。

    【讨论】:

      猜你喜欢
      • 2015-11-05
      • 1970-01-01
      • 2015-03-26
      • 2023-03-11
      • 2014-03-31
      • 2021-01-04
      • 1970-01-01
      • 2018-05-12
      • 2017-08-17
      相关资源
      最近更新 更多