我们刚用datastax spark connector计算了一些统计数据 . 重复的查询在每次执行时都会返回不同的结果 .
背景:我们有约 . 3节点cassandra集群中的112K记录 . 该表具有名为 guid
的单个分区键 UUID
列,并且没有聚类键列 .
这是一个简单的 guid
提取器我定义来检查损失:
val guids = sc.cassandraTable[UUID]("keyspace","contracts").select("guid")
接下来,我多次将数据重复提取到本地馆藏
val gss = List.fill(20)(Set(guids.collect():_*))
val gsall = gss reduce (_ | _)
val lost = gss map (gsall &~ _ size)
结果 lost
是 List(5970, 7067, 6926, 6683, 5807, 7901, 7005, 6420, 6911, 6876, 7038, 7914, 6562, 6576, 6937, 7116, 7374, 6836, 7272, 7312)
所以我们每个查询都有 6,17±0,47%
数据丢失
这可能是cassandra,spark或连接器的问题吗?并且在每种情况下 - 是否存在一些防止这种情况的配置方式?
1 回答
我已经阅读了some docs并了解到可以而且应该为这种情况设定阅读能力水平 . 宣告后
我得到了稳定的结果 .