para descargar java cassandra hector cassandra-cli

descargar - en cassandra-cli cómo obtener todos los nombres de columna en una tabla y cómo obtenerlo usando hector en java?



descargar cassandra para windows (1)

Estoy tratando de obtener los nombres de las columnas, pero no pude obtener solo los nombres de las columnas.

En cli ejecuto el comando describe table nodes , devolvió el resultado:

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);

Como figura en esta pregunta , intento usar el siguiente comando en cli:

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

pero dio el error:

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

Entonces probé con:

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

Devolvió todas las siguientes cosas:

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

Como figura en esta publicación , intenté usar 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()); }

pero regresó sin resultados.

Quiero que la salida sea algo así como:

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

y resultado similar a través de Hector.

Versiones que estoy usando:

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


En cassandra 1.1 eso sí funcionaría, sin embargo, la familia de columnas schema_columnfamilies se ha modificado desde entonces.

Solicitud incorrecta: nombre indefinido column_name en la cláusula de selección

En Cassandra 1.2.x la información sobre las columnas vive en un espacio de claves separado llamado schema_columns con el siguiente esquema:

CREATE TABLE schema_columns ( keyspace_name text, columnfamily_name text, column_name text, component_index int, index_name text, index_options text, index_type text, validator text, PRIMARY KEY (keyspace_name, columnfamily_name, column_name) );

Pruebe algo en esta línea:

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

Documentación sobre los contenidos del espacio de teclado del sistema.