Cassandra:查询结果中缺少列

Cassandra: Missing column in query results

这里有一个奇怪的。

我有一个 Cassandra table,叫它 "test"。它有几列。这些是通过 Java 驱动程序查询的,使用简单的 "select * from test where uuid=foo".

这在本地有效,返回所有列。

然而,在生产环境中,一列被删除,尽管其中有数据(这表明该列可以写入)。

我查看了 Row 对象的 ColumnDefinitions,它确实不包含有问题的列。

为什么?谁有可行的理论?

如果您使用 'select *' 作为 PreparedStatement,您将需要在架构发生变化(添加或删除列)时重新准备语句。 Cassandra 在 2.1.3 之前不会在模式更改时更新它的准备语句缓存,因此这不适用于以前的版本。

参见: