问题标签 [express-cassandra]

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 回答
201 浏览

express - 所有 cassandra 物化视图未配置表

所以我有以下设置,我在本地网络上有 8 台服务器,每台服务器都运行 cassandra。其中 2 个服务器是种子节点,其余的只是常规节点。如果我运行 nodetool status,一切都会正确显示并且所有节点都是 UN。

我有一个运行 express-cassandra 的 express.js 应用程序。它有很多表和物化视图(总共 70 个),我必须多次重新启动 express 服务器,以便用表填充 cassandra 键空间,否则它会在某个时候停止填充。创建表后,我可以正常访问所有标准表,但是当我尝试访问任何物化视图表时,我不断收到有关未配置表的错误 -InvalidRequest: Error from server: code=2200 [Invalid query] message="unconfigured table ...

此外,如果我运行我的应用程序,对物化视图的所有查询都会失败。

似乎数据库创建过程不断损坏(由于我必须重新启动快速服务器以确保所有表都已创建)。如果我只是启动 express.js 服务器并让它继续运行,它将停止在大约 20 个表处创建表(我让它运行了大约 2 个小时而没有创建任何表)。如果我重新启动它,它将再次创建几个表,然后再次停止。依此类推,直到我创建了所有表。

此外,当我尝试修复该密钥空间(由 express-cassandra 创建)时,我一直无法连接到其中一个节点,尽管 nodetool 状态显示它已启动。

0 投票
1 回答
260 浏览

node.js - 在使用带有多直流设置的 express cassandra 时需要帮助

你好堆栈溢出社区!

我需要一些帮助来找出在 nodejs 中使用 express cassandra orm 模型为我的多 dc(总 dc =2)cassandra 设置建立连接的正确方法。

我们目前仅使用 1 个 dc 和 express cassandra,因此我们只需提供 2 个种子节点 IP 地址作为 express cassandra 的联系点,如下所示

这里要注意的是,我们将 cassandraContactPoints 指定为仅包含现有 dc 的 2 个节点的数组。

由于我们正在使用单独的 DC 进行分析,我想知道我们是否应该在同一个数组中提供新 DC 的 IP 地址,即 cassandraContactPoints ?我们计划使用 LOCAL_QUORAM 并希望我们的分析应用程序仅使用分析 dc 进行所有读取和写入。

我已尝试阅读 express cassandra 和“cassandra 驱动程序”模块的源代码,但我无法找出解决方案>

这里的任何帮助将不胜感激!

0 投票
1 回答
48 浏览

express - ExpressJS 应用程序每秒接收大约 70 个请求 - Cassandra 性能缓慢

这不是与代码有关的问题,而是与服务器性能和我应该检查的事情有关的问题。所以我有一个 ExpressJS 服务器,它连接到一个 cassandra db(1 个种子节点和 1 个集群上的 2 个节点,所以总共 3 个节点)。API 与 cassandra db 种子节点在同一台服务器上运行。我在本地网络中总共有 3 台服务器。

所以结构看起来像这样 -

服务器 1 运行 API 和种子 cassandra 节点。服务器 2 运行 cassandra 节点。服务器 3 运行 cassandra 节点。

每台服务器都有 8GM 的 ram 和 2.5Ghz CPU。

默认情况下,每秒大约有 70 个请求,执行以下操作 -

1) 调用从 cassandra 的表中读取数据的函数(使用物化视图)。2) 从 cassandra db 读取另一个表(使用物化视图)。3) 将数据发布到 cassandra 中的第三个表。

调用的第二个函数非常相似,它使用物化视图进行 1 次读取和 1 次发布。

每秒调用的函数之间的比例差异大约是调用函数 1 的 30 次(执行 2 次读取和 1 次发布),以及调用大约 40 次函数 2(执行 1 次读取和 1 次发布)。

一切都会很好,但是请求的延迟会时不时地跳跃,有时大约需要 10 毫秒,但每 5-10 秒它会上升到 3-30 秒。cassandra 似乎也不稳定 - 在有 3-30 秒的请求时间期间,cassandra 似乎在某些请求上超时。

我应该检查的第一件事是什么?我需要额外的节点吗?如何确定是否有足够的节点来处理发送到 cassandra db 的数据量?我是否应该将 API 与 cassandra 节点分开 - 因此将 API 服务器保存在单独的服务器上,例如服务器 4?

0 投票
1 回答
342 浏览

cassandra - Cassandra SASI 索引或物化视图 - 性能提升

我目前正在优化我的应用程序,并且我想找出在以下情况下哪种方式会更快更好的性能。

我有一个有 4 个字段的表 - id, user, status, entryTime

我每 10 秒写入此端点大约 100 次,因此平均每秒写入 10 次。

主键是user,聚类键是entryTime and id

我有一个端点,我需要在其中检索entryTime特定用户之间的所有条目,例如,对于具有 ID 的用户1,其中entryTime大于2019-06-04T07:58:28.000Z和小于2019-06-04T08:58:28.000Z

另一个端点是,我必须在其中检索status特定用户的特定内容。

为第二个端点(我需要在其中检索状态)创建一个物化视图,使用不同的键,还是添加 SASI 索引更好?

由于表也经常更新,并且经常写入,根据我的阅读,写入需要大约 10% 的性能,但它是否适用于所有经常读/写的表?

是否有任何可供将来参考的检查点,我可以遵循这些检查点来确定我应该使用物化视图还是 SASI 索引?

0 投票
0 回答
185 浏览

cassandra-3.0 - 从 Express Cassandra 获取 **apollo.model.save.dberror**

我目前正在使用具有 3 个节点集群和一个一致性的Cassandra 3.11 ,以及 NodeJS express cassandra client 2.3.0。我正在使用saveAsync方法来存储模型数据。但是我收到一个错误:apollo.model.save.dberror我无法验证导致此错误的原因。大多数记录都会发生这种情况,只有少数记录通过。我正在插入从 kafka 主题读取的数据,并在经过几次验证后将其推送到 cassandra。数据速率约为每秒 200 次。

尝试在堆栈溢出中进行谷歌搜索和搜索,但无法获取任何详细信息。示例代码。

0 投票
2 回答
320 浏览

node.js - 为异步操作暂停 cassandra 流

我想在处理下一行之前暂停我的 cassandra 流以进行一些异步操作。

每一行都在一个可读的事件侦听器中接收。我试过使用 stream.pause 但它实际上并没有暂停流。我也在“数据”事件侦听器中尝试过同样的方法,但这也不起作用。也许会非常感谢您的见解和解决方案。这是我的代码。在可读和“等待”中使用 async 使用 await 实际上并不能阻止下一行在异步函数完成之前出现。

//下面的不行

0 投票
1 回答
173 浏览

node.js - 无法使用 timeuuid 作为主键执行时间序列查询

我的目标是在给定的时间范围内(fromDate < stats_date_id < toDate)对每个 DISTINCT provider_id 值计算 messages_sent 和 emails_sent 的总和,但不指定 provider_id。换句话说,我需要了解指定时间范围内的所有提供者,并将它们的messages_sent 和emails_sent 相加。

我有一个使用 express-cassandra 模式(在 Node.js 中)的 Cassandra 表,如下所示:

为了让它工作,我希望它就像执行以下操作一样简单:

然而,这抱怨需要过滤结果: Error during find query on DB -> ResponseError: Cannot execute this query as it might involve data filtering and thus may have unpredictable performance.

我猜你不能有一个主键并对其进行日期范围搜索?如果是这样,这种查询的正确方法是什么?

0 投票
1 回答
76 浏览

elasticsearch - Express-cassandra elassandra 按 geo_point 排序

我有以下 UDT:

在 cassandra 模型中定义了以下 geoloc:

和弹性搜索映射:

我可以插入带有 geo_point 位置的对象并在 elasticsearch 中查询它们(它们通常显示"geoloc":{"lon":34.855744,"lat":31.913353}

我得到以下异常:

0 投票
0 回答
125 浏览

uuid - 使用 Uuid 类型查询 express-cassandra

我正在尝试使用 id 查询 cassandra,但出现此错误

apollo.model.validator.invalidvalue:无效值:“{ id:[Uuid] }”字段:id(类型:uuid)

在我的代码中,我有:

我的模型:

0 投票
0 回答
44 浏览

node.js - 对于这个基于 Cassandra 时间序列的查询,为什么它只返回一个结果

我一直在努力理解 Cassandra 查询的工作方式,因为它们似乎没有达到我的预期。

这是我正在使用的当前表:

注意:我 100% 乐于修改甚至完全丢弃此表以获得以下结果。

我的查询可以描述为:

在使用 select 语句、group_by 和其他东西尝试了几种方法后,我总是返回一个客户,该客户似乎包含给定日期范围内所有客户的总和。

当前查询的示例,使用 express-cassandra npm 库,如下所示:

我还需要能够以每天 1k 到 100k 个条目的速度将数据插入到这个表中。

我假设我误解了 Cassandra 的一些相当基本的东西,导致这种行为发生。和以前一样,为了满足上述措辞查询的要求,我完全乐意重新编写甚至删除该表。

提前致谢。