问题标签 [cassandra-driver]

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

python - Amazon Keyspaces sync_table() 不会立即看到表

我是新来的cassandra-driver==3.25.0。我已经创建了一个模型Model并尝试同步它。问题:

  1. 我打电话sync_table
  2. 我看到表开始在 Keyspaces 中创建并且定义是正确的
  3. 但是从这行代码中sync_table引发了一个异常KeyError {__table_name__}table = cluster.metadata.keyspaces[ks_name].tables[raw_cf_name]
  4. 我可以sync_table再次打电话,一段时间后它工作正常

所以我假设它可能会从 Keyspaces 延迟,所以cassandra-driver在同步表上有某种等待,或者你能指出文档吗?

完全例外:

0 投票
1 回答
133 浏览

node.js - 节点中的 Cassandra 驱动程序包不会从 Cassandra 表中流式传输所有行

我正在使用 Cassandra-driver 节点包(4.6.3)。我目前正在尝试将数据从 Cassandra 迁移到 SQL。大约有 450 000 条记录,尝试使用诸如 Altryx 之类的 ETL 工具,但这不起作用,因为存在不受支持的数据类型,例如地图和列表。因此尝试使用节点 JS 调度程序进行迁移。但问题是 Cassandra 的驱动程序并没有流过所有的记录。下面是代码库。

当我检查 Cassandra DB 的查询(从用户中选择计数(*))时,计数与我在上述情况下得到的输出值不同。数字似乎不匹配。看起来它不会流式传输 Cassandra 中存在的所有行。知道为什么会这样吗?是包裹的问题吗?我很想有一个替代品。真的打破我的头来解决这个问题。

不知道为什么节点驱动程序会给出随机计数。1000 fetch size 的倍数可以正常工作,但是最后一批少于 1000 有点搞砸了。例如,如果我在 Cassandra 中有 9602 条记录,我使用节点 Cassandra 驱动程序流式传输的记录可能在 9588 左右。不知道为什么不考虑最后 14 条记录。

0 投票
0 回答
16 浏览

amazon-web-services - 与 AWS Keyspaces 一起使用时,Cassandra-Driver 不返回所有行

我有一个 AWS Lambda 函数(通过无服务器部署的 NodeJS 12.x),它应该从 AWS Keyspaces 表中返回一些记录。我正在使用 cassandra-driver (npm i cassandra-driver)。

当我通过 Lambda 函数运行查询时,它只返回 44 行(不正确,太少)。没有错误。

当我在 AWS 的 CQL 图形控制台(或 CQLsh)中运行 EXACT SAME 查询时,它返回所有 74 行(正确)

该表将“deviceid”(文本)作为主键,将“abstime”(bigint DESC)和“createdon”(bigint ASC)作为集群列。作为旁注,我将此设置用于其他没有问题的查询/表。任何想法,请帮助/谢谢。查询是这样的:

Lambda 中的重要代码是: