Я хочу, чтобы преобразовать строку cassandra keyspace/columnfamily в строку JSON. Мой текущий код (фрагменты):Как получить имя столбца ключа в пространстве ключей Cassandra/columnfamily с помощью Hector?
RangeSlicesQuery<K, N, V> rangeSlicesQuery = HFactory
.createRangeSlicesQuery(this.keyspace, this.kSerializer, this.nSerializer, this.vSerializer)
.setColumnFamily(this.columnFamily)
.setRange(null, null, false, 100)
.setRowCount(1000);
this.results = this.rangeSlicesQuery.execute();
this.resultRows = this.results.get();
this.resultRowsIterator = this.resultRows.iterator();
Row<K, N, V> row = this.resultRowsIterator.next();
Из строки, я могу получить все имена столбцов/значения легко (я использую API Jackson JSON для создания JSON):
List<HColumn<N, V>> columns = row.getColumnSlice().getColumns();
for(HColumn<N, V> column : columns) {
node.put(column.getName().toString(), column.getValue().toString());
}
System.out.println(node.toString());
Мой вопрос есть, как мне получить имя столбца ключа? Я знаю, что могу получить ключ значения строки, выполнив:
row.getKey();
Но я не нашел какой-либо способ получить имя ключевого столбца, например, что-то вроде row.getKeyColumnName()
. Я попытался взглянуть на KeySpaceDefinition, ColumnFamilyDefinition, ColumnDefinition и ColumnFamilyTemplate. Ни один из них, похоже, не обладает этой способностью (хотя, возможно, есть запрос, который можно запустить против шаблона?)
Строки обозначаются их ключами и столбцами по их именам. Возможно, вы могли бы уточнить, что вы подразумеваете под названием «ключевой столбец»? –
Название столбца, содержащего значения KEY. Например, это может быть «id», или это может быть «UUID» - он отсутствует в значениях HColumn, сгенерированных моими командами. –