cassandra - 如何检查 Cassandra 表是否存在

标签 cassandra cql

有没有一种简单的方法来检查表(列族)是否在 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/

相关文章:

cassandra - 想要了解表格直方图的输出

cassandra - 清除 Cassandra 中的所有行的列

arrays - 如何在cassandra中存储多维数组

php - 如何获取 cassandra(php) 中主键的最后一个值?

python - 如何让 pycassaShell 在 Windows 中工作?

http - 在 Apache Cassandra 中存储和显示图像文件

java - Cassandra 集群性能不佳

Cassandra:错误:代码=2200 [无效查询]消息=“主键列不能限制为前一列”

mongodb - 有没有可以有效检测重复项的NoSQL数据库?