问题标签 [cassandra-2.2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4204 浏览

cassandra - 如何在 Windows 7 64 位上创建本地多节点 Cassandra 集群?

我正在寻找一组指令来在 Window 7 64 位 PC 上创建本地多节点Cassandra 2.x 集群。

它最好使用CCM “Cassandra Cluster Manager”</a> 并允许使用 DataStax OpsCenter进行管理

我按照“<a href="http://www.datastax.com/2012/01/getting-started-with-apache-cassandra-on-windows-the-easy-way" rel="nofollow" 中的说明进行操作>在 Windows 上轻松使用 Apache Cassandra”,但它们适用于单节点集群。

编辑:我坚持使用 CCM 在每个节点上部署 OpsCenter 代理,有什么想法吗?

0 投票
1 回答
982 浏览

cassandra - 在 RHEL 中将 Cassandra 从 2.2 升级到 3.0

我有一个运行 Cassandra 2.2.3 的 RHEL 7.0 服务器,我尝试升级到 3.0。当我运行yum update它显示我有一个新版本的 Cassandra 进行更新,并将服务器升级到 2.2.4-1,但不是 3.0。

现在,如果我在 yum 中搜索 dsc30,我可以找到它,而且大概我也可以安装它,但是为什么从 2.2 到 3.0 没有自动升级呢?

我的服务器上有很多数据,不想对其进行试验。我有另一台运行 Ubuntu 14.04 的测试服务器,它从 2.2 升级到 3.0 就好了,但是在 RHEL 上我的服务器找不到升级到 3.0

谢谢

0 投票
1 回答
998 浏览

cassandra - 在 Cassandra 中定义分区键

我是第一次玩 Cassandra,我觉得我了解了基础知识和限制。例如,我正在使用以下模型来存储由标签收集的推文。

这对于我需要的查询类型非常有效:

但是,如果我理解正确,我可以使用单数“演示”分区键存储的帖子数量有一个上限,更重要的是,必须存储与“演示”分区键匹配的整个帖子集每个副本。如果我理解正确,我可能应该使用更随机或可变的分区键(可能是id帖子的),但我不知道使用什么不会改变查询的要求。

如果我id用作分区键(例如PRIMARY KEY (id, created))并在主题标签列上添加二级索引,则在运行查询时会出现以下错误:

我知道要使用 ORDER BY,分区键必须在 where 子句中出现,因此我最初的想法是使用主题标签。

我是不是想太多了,还是分区键有更好的候选者?

0 投票
2 回答
277 浏览

cassandra - CQL3“IF”是否使我的更新不是幂等的?

在我看来,如果重试,使用 IF 会使语句可能失败。因此,该语句不是幂等的。例如,给定下面的 CQL,如果它由于超时或系统问题而失败并且我重试它,那么它可能无法工作,因为另一个人可能在重试之间更新了版本。

Cassandra 中更新的最佳实践是使更新具有幂等性,但 IF 操作员直接反对这一点。我错过了什么吗?

0 投票
2 回答
1917 浏览

php - Cassandra:只选择最新的行

我使用下表:

表不会更新,只会添加新行。每次爬虫检查域时,都会添加新行。

我正在执行此选择:

但我想要的结果只是每个唯一“name3rd.name2nd.name1st”具有最新“更新”值的行。

如果我在标准 SQL 数据库中,我会使用带有 MAX 或 GROUP BY 的嵌套选择。但是,Cassandra 不支持此功能(Cassandra 中的MAX()、DISTINCT 和 group by)。但是我应该在 CQL 中做什么?

0 投票
3 回答
34392 浏览

cassandra - Cassandra 的批量限制是多少?

我有一个 Java 客户端,可以将(插入)记录批量推送到 Cassandra 集群。批处理中的元素都具有相同的行键,因此它们都将放置在同一个节点中。另外我不需要事务是原子的,所以我一直在使用未记录的批处理。

每批中 INSERT 命令的数量取决于不同的因素,但可以是 5 到 50000 之间的任何值。首先,我只是在一批中放入尽可能多的命令并提交。这扔了com.datastax.driver.core.exceptions.InvalidQueryException: Batch too large。然后我使用了每批 1000 个 INSERT 的上限,然后降至 300 个。我注意到我只是在随机猜测,不知道这个限制的确切来源,这可能会在未来造成麻烦。

我的问题是,这个限制是多少?我可以修改它吗?我怎么知道一个批次可以放置多少个元素?当我的批次“满”时?

0 投票
1 回答
544 浏览

php - Cassandra CQL:批量选择

嗨,我在 Cassandra 中有下表:

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

我需要的?

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

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

我对什么感到困惑?

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

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

我的问题

我可以将这些选择打包成一个批次吗?如何?

0 投票
1 回答
463 浏览

cassandra - Cassandra 批量隔离保证

我有一个关于 Cassandra 批量隔离的问题:

我们的集群由单个数据中心组成,复制因子为 3,在 LOCAL_QUORUM 中读取和写入。我们必须提供类似于“后”触发器的新闻提要,以通知客户端有关数据库中数据的 CRUD 事件。我们考虑在批处理中执行实际操作,并在另一个表(也在另一个分区中)上插入一个事件。异步地,某些进程会从事件表中读取事件并通过 MQ 发送它们。

因为我们写入的是不同的分区,批处理操作中不一定要维护操作顺序;是否有可能我们的事件被写入,并且我们的进程在我们的实际数据被持久化之前读取它?

如果我们的批次最终失败,会发生同样的情况吗?

问候,亚历杭德罗

0 投票
1 回答
1023 浏览

database-design - Cassandra 非规范化与规范化

非规范化现实

在我的数据库中,我有以下非常适合我的用例的非规范化表,并且我接收数据非常快......

但是,该表中有数十亿行,这对我们的硬件来说是个问题。因此,链接表设计中的每个备用字节对我们都有很大的好处。

标准化解决方案?

应用程序中链接表的平均选择包含十分之一/数百行。在最坏的情况下,选择包含数千行。因此,使用此表规范化问题可能是(恕我直言)明智的...

问题

如果我使用标准化链接和页表,我需要将它们加入应用程序。这不是问题,但是如何有效地从页表中选择相应的行呢?我觉得遍历链接表中的每一行结果并一一选择相应的页面行是无效的。

0 投票
0 回答
251 浏览

cassandra - Cassandra中的分布式分页

我在 cassandra 中搜索 pagination 并在这里找到了这个完美的主题:Results pagination in Cassandra (CQL)这个答案被大多数人接受。但我想在多台计算机上做同样的事情。我举个例子...

问题

假设我有三台计算机连接到同一个 cassandra DB。每台计算机都想从下表中取几行:

每台计算机只占用很少的行并为它们执行耗时的计算。对于固定的分区键(domain_name1st、domain_name2nd、domain_name3rd)和不同的集群键(位置),仍然可以有数千个结果。

现在问题来了......如何快速锁定几行与那台计算机1正在为其他计算机工作?

无法使用的解决方案

在标准 SQL 中,我会使用如下内容:

这将允许我执行以下操作:

  • 选择计算机 1 上的前 10 页并锁定它们(page_from=1,page_count=10)
  • 快速检查其他两台机器上的锁并获取未使用的页面进行计算
  • 在速度更快的计算机上获取并锁定更多页面
  • 处理完所有页面后删除给定分区键的所有锁

问题

但是,我不能在 Cassandra 中执行 LIMIT 20,10 并且我也不能这样做,因为我想在不同的计算机上进行分页。有没有机会如何快速分页浏览这些页面?