cassandra-cli comment obtenir tous les noms de colonne dans un tableau et comment obtenir de l'aide hector en java?

Je vais essayer d'obtenir les noms de colonne, mais ne pouvait pas obtenir de façon à obtenir uniquement des noms de colonne.

Dans la cli, je l'ai exécuté la commande describe table nodes, il a renvoyé le résultat:

CREATE TABLE nodes (
  key text PRIMARY KEY,
  id text,
  scores text,
  topic1 text,
  topic2 text,
  topic3 text,
  topic4 text,
  topics text
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.000000 AND
  gc_grace_seconds=864000 AND
  read_repair_chance=0.100000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'SnappyCompressor'};

CREATE INDEX idx_nodes_id ON nodes (id);

Comme donné dans ce question, j'essaie utilisant la commande suivante dans l'interface de ligne:

SELECT column_name FROM system.schema_columnfamilies WHERE keyspace_name = 'ianew' AND columnfamily_name = 'nodes';

mais il a donné l'erreur:

Bad Request: Undefined name column_name in selection clause
Perhaps you meant to use CQL 2? Try using the -2 option when starting cqlsh.

Puis j'ai essayé avec:

SELECT * FROM system.schema_columnfamilies WHERE keyspace_name = 'ianew' AND columnfamily_name = 'nodes';

Il a renvoyé toutes les choses suivantes:

    keyspace_name | columnfamily_name | bloom_filter_fp_chance | caching   | column_aliases | comment | compaction_strategy_class                                       | compaction_strategy_options | comparator                               | compression_parameters                                                      | default_read_consistency | default_validator                        | default_write_consistency | gc_grace_seconds | id   | key_alias | key_aliases | key_validator                            | local_read_repair_chance | max_compaction_threshold | min_compaction_threshold | populate_io_cache_on_flush | read_repair_chance | replicate_on_write | subcomparator | type     | value_alias
---------------+-------------------+------------------------+-----------+----------------+---------+-----------------------------------------------------------------+-----------------------------+------------------------------------------+-----------------------------------------------------------------------------+--------------------------+------------------------------------------+---------------------------+------------------+------+-----------+-------------+------------------------------------------+--------------------------+--------------------------+--------------------------+----------------------------+--------------------+--------------------+---------------+----------+-------------
         ianew |             nodes |                   null | KEYS_ONLY |             [] |         | org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy |                          {} | org.apache.cassandra.db.marshal.UTF8Type | {"sstable_compression":"org.apache.cassandra.io.compress.SnappyCompressor"} |                     null | org.apache.cassandra.db.marshal.UTF8Type |                      null |           864000 | null |      null |          [] | org.apache.cassandra.db.marshal.UTF8Type |                        0 |                       32 |                        4 |                      False |                0.1 |               True |          null | Standard |        null

Comme donné dans ce post, j'ai essayé d'utiliser hector en java:

SliceQuery<String, String, String> query = HFactory.createSliceQuery(keyspace, StringSerializer.get(), StringSerializer.get(),  StringSerializer.get());
query.setColumnFamily(columnFamilyName);
query.setKey("key");
query.setRange(null, null, false, Integer.MAX_VALUE);

ColumnSliceIterator<String, String, String> iterator = new ColumnSliceIterator<String, String, String>(query, null, "\uFFFF", false);

while (iterator.hasNext()) {
    HColumnImpl<String, String> column = (HColumnImpl<String, String>) iterator.next();
    System.out.println("Column name = " + column.getName() + "; Column value = " + column.getValue());
    colNames.add(column.getName());
}

mais elle est revenue avec pas de résultats.

Je veux de sortie pour être quelque chose comme:

TABLE nodes:
Columns: key text PRIMARY KEY, id text, scores text, topic1 text, topic2 text, topic3 text, topic4 text, topics text

et résultat similaire par Hector.

Les Versions que j'utilise:

[cqlsh 2.3.0 | Cassandra 1.2.4 | CQL spec 3.0.0 | Thrift protocol 19.35.0]

OriginalL'auteur N D Thokare | 2013-08-22