【问题标题】:How to execute a "'describe" CQL query with Astyanax如何使用 Astyanax 执行“描述”CQL 查询
【发布时间】:2013-11-27 03:27:52
【问题描述】:

当您将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; 不起作用,因为它不返回复合键。

【问题讨论】:

    标签: java cassandra cql astyanax cql3


    【解决方案1】:

    DESCRIBE 不是 CQL 规范的一部分(CQL2CQL3 都不是)。如果您想完全重构DESCRIBE,您可以查看cqlsh implementation(查找print_recreate_columnfamily)。

    您还可以从system.schema_columnfamilies 获得更多元信息:

    select keyspace_name, columnfamily_name, key_validator from schema_columnfamilies;

    【讨论】:

    • 完美,这就是我最终所做的。
    猜你喜欢
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 2013-02-08
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    相关资源
    最近更新 更多