NodeJS 在Amazon Keyspaces上使用ALLOW FILTERING运行SELECT查询不会返回任何数据

guykilcj  于 2022-12-03  发布在  Node.js
关注(0)|答案(1)|浏览(72)

我们已经使用aws keyspace服务和cassandra-driver for node实现了cassandra。客户端工作正常,我们能够对数据执行创建和更新操作。但是,使用客户端运行一个简单的cql查询不会返回任何数据(空行)。
当我在AWS Jmeter 板上的cql编辑器上运行完全相同的查询时,它工作得很好,确实返回了所需的数据。
查询:
SELECT * FROM <TABLE_NAME> WHERE product_id = '<PRODUCT_ID>' ALLOW FILTERING
在aws Jmeter 板上的cql编辑器上运行相同的查询工作正常。

7gcisfzg

7gcisfzg1#

我注意到您在查询中使用了ALLOW FILTERING子句,这表明product_id不是表的分区键。
如果您查询的表没有分区键,请求的协调器必须联系集群中的所有节点以获取请求的数据。很有可能查询在等待所有节点的响应时超时,因此不会返回任何数据。
我怀疑它能在cqlsh中工作,因为它的超时时间比Node.js驱动程序的默认超时时间要高。
您需要查看应用程序日志,并从Node.js驱动程序中查找警告或错误以获取线索。
👉 请将鼠标悬停在上面的cassandra标记上并单击Watch标记,以支持Apache Cassandra社区。🙏谢谢!

相关问题