2

当您cqlsh与 Cassandra 一起使用时,您可以进行describe查询以获取表的信息,例如:

DESCRIBE TABLE emp;

它会给你类似的东西:

CREATE TABLE emp (
  empid int PRIMARY KEY,
  deptid int,
  description text
) ...
....

那么如何使用 Astyanax 对 CQL 的支持来查询这个。我可以用这个查询简单的SELECT语句:

OperationResult<CqlResult<String, String>> result
            = keyspace.prepareQuery(empColumnFamily)
              .withCql("Select * from emp;")
              .execute();

但这不适用于DESCRIBE陈述。

PD:我真的这样做是为了获取DATA TYPES表格,稍后解析它并获取例如int, int, text,所以如果你有不同的方法来获取这些,那可能会很棒。

此查询select column, validator from system.schema_columns;不起作用,因为它不返回复合键。

4

1 回答 1

5

DESCRIBE不是 CQL 规范的一部分(既不是CQL2也不是CQL3)。如果您想完全重建DESCRIBE您可以查看 cqlsh 实现(查找print_recreate_columnfamily)。

您还可以从以下位置获取更多元信息system.schema_columnfamilies

select keyspace_name, columnfamily_name, key_validator from schema_columnfamilies;

于 2013-08-28T03:25:20.803 回答