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
Vous devez vous connecter pour publier un commentaire.
Cassandra 1.1 ce serait en effet le travail, mais la
schema_columnfamilies
colonne de la famille a été modifié depuis.Cassandra 1.2.x informations sur les colonnes vit dans un autre espace appelé schema_columns avec le schéma suivant:
Essayer quelque chose le long de ces lignes:
Documentation sur ce que le contenu de l'espace de clé système.
SELECT column_aliases FROM system.schema_columnfamilies WHERE keyspace_name = 'ianew' AND columnfamily_name = 'nodes';
, Cette retourné le résultat :column_aliases ---------------- []
Je vais modifier la question. Nous sommes en fait après la schema_columns FC plutôt que de schema_columnfamilies: datastax.com/dev/blog/the-data-dictionary-in-cassandra-1-2
merci @Lyuben , c'est bon.. maintenant, j'ai obtenu le résultat à l'aide de
SELECT column_name FROM system.schema_columnfamilies WHERE keyspace_name = 'ianew' AND columnfamily_name = 'nodes';
mais il est à moitié résolu la question. Comment pouvons-nous faire cela à l'aide de hector en java?
OriginalL'auteur Lyuben Todorov