有没有一种简单的方法来检查表(列族)是否在 Cassandra 中使用 CQL(或 API,也许使用 com.datastax.driver)定义?
现在我倾向于执行SELECT 1 FROM table
并检查异常,但也许有更好的方法?
最佳答案
从 1.1 开始,您应该能够查询 system
键空间、schema_columnfamilies
列族。如果您知道要检查哪个键空间,则此 CQL 应列出键空间中的所有列族:
SELECT columnfamily_name
FROM schema_columnfamilies WHERE keyspace_name='myKeyspaceName';
描述此功能的报告位于:https://issues.apache.org/jira/browse/CASSANDRA-2477
尽管如此,他们确实注意到一些系统列名称在 1.1 和 1.2 之间发生了变化。因此,您可能需要稍微调整一下才能获得所需的结果。
编辑 20160523 - Cassandra 3.x 更新:
请注意,对于 Cassandra 3.0 及更高版本,您需要对上述查询进行一些调整:
SELECT table_name
FROM system_schema.tables WHERE keyspace_name='myKeyspaceName';
关于cassandra - 如何检查 Cassandra 表是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16016946/