php - Cassandra CQL : Batch select

标签 php cassandra cql cassandra-2.2 nosql

您好,我在 Cassandra 中有以下表格:

* ---------------------------------------------------------------------------
* Note:
* 'curr_pos' is always fixed, so we can put it into cluster key and order
* In each crawler iteration 'prev_pos', 'domain_*' are updated
* -------------------------------------------------------------------------
* Patterns:
* <domain_name3rd>.<domain_name2nd>.<domain_name1st>
* --------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS lp_registry.keyword_position (
    engine text,
    keyword text,
    updated timestamp,
    domain_name1st text,
    domain_name2nd text,
    domain_name3rd text,
    prev_pos int,
    curr_pos int,
    PRIMARY KEY ((engine, keyword), curr_pos)   
);

在顶级应用程序中,我有一个包含大约数百个关键字的列表。

我需要什么?

对于固定引擎和关键字列表,我想选择所有域及其位置。

更新:应用程序给出的结果将是每个引擎的 NxM 矩阵,其中包含 N 个用户定义的关键字和 M 个用户定义的域。每个单元格中都有特定关键字的域位置。

我对什么感到困惑?

我需要根据关键字列表的大小发布 N 个选择。换句话说,我需要迭代应用程序中的关键字,并在每次迭代中将选择发送到数据库。

我预计 N 不会大于 100,但我仍然认为这是太多查询。

我的问题

我可以将这些选择打包到一个批处理中吗?怎么办?

最佳答案

这并不是批量查询的问题,而是你的表设计的问题。

如果您描述的查询是应用程序的“核心”查询,那么您应该以单个查询的方式设计表,即。 引擎keyword 应该是集群键而不是分区键。

给出更具体的建议:如何获取引擎和关键字列表,是否有一些对它们进行逻辑分组?这可能是您表的分区键。

关于php - Cassandra CQL : Batch select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34703638/

相关文章:

java - 使用java从cassandra读取数据

php - 我的脚本没有在表中插入任何数据,无法显示错误

php - Elasticsearch 批量更新脚本非常慢

Cassandra:生成唯一 ID?

cassandra - 在 Cassandra 中更新表

ubuntu - 由于访问被拒绝异常,Cassandra 未启动

php - 如何使用谷歌地图根据距离对位置进行排序

php - MySQL查询: How to join multiple table with statment

cassandra - 更新 Cassandra 中的非规范化数据

c# - 连接到 AWS Managed Cassandra Service (MCS)