当存在巨大的墓碑时,为什么使用 cqlsh 查询读取失败

Why read fails with cqlsh query when huge tombstones is present

当我在那个特定的 table 上执行 spark 作业(读取)时,我有一个 table 和巨大的 tombstones.So,它给出了没有任何问题的结果。但是我使用 cqlsh 执行了相同的查询,它给了我错误,因为 table.

中存在巨大的墓碑

Cassandra failure during read query at consistency one(1 replica needed but o replicas responded ,1 failed

我知道墓碑不应该在那里,我可以 运行 修复以避免它们,但除此之外,为什么 spark 成功而 cqlsh 失败。他们都使用相同的会话和查询。

spark-cassandra 连接器如何工作?它与 cqlsh 不同吗? 请告诉我。

谢谢。

Spark Cassandra Connector 在某些方面与 cqlsh 不同。

  • 它使用 Java 驱动程序而不是 python 驱动程序
  • 它有明显更宽松的重试政策
  • 它通过将请求分成几部分来完整 table 扫描

这些项目中的任何一项都可能有助于解释为什么它可以在 SCC 而不是在 CQLSH 中工作。