Получить все столбцы строки в Cassandra с помощью клиента Hector
Я хочу получить все столбцы строки в Кассандре с помощью Гектора. После некоторых исследований в Интернете я получил несколько примеров кодов, но для этого требуется имя диапазона или столбца, например,
SliceQuery<String,String,String> query = HFactory.createSliceQuery(keyspace, ss, ss, ss);
query.setColumnFamily("MyColumnFamily").setKey("S001").setRange(null, null, false, 100);
QueryResult<ColumnSlice<String,String>> result = query.execute();
for (HColumn<String, String> column : result.get().getColumns()) {
System.out.println(column.getName() +"::"+ column.getValue());
}
здесь мне нужно установить диапазон в методе setRange (), который извлекает столбцы в этом диапазоне. Мы также можем установить начало и конец в этом методе, но это также даст столбцов определенного диапазона. Если я не устанавливаю диапазон, мне нужно дать имена столбцов как массив.
есть ли способ получить все столбцы определенной строки? Я не хочу устанавливать имена диапазонов или столбцов, мне просто нужны все столбцы строки. потому что в моем приложении столбцы не предопределены.
или есть ли способ получить общее количество столбцов строки, чтобы я мог установить его в методе setRange ()?
спасибо.
1 ответов
способ сделать это для нескольких небольших строк-использовать метод setRange() именно так, как он используется в Примере, который вы вставили. Если вы установите начальные и конечные параметры диапазона в значение null, то диапазон для выборки - это вся строка.
единственное, что вам нужно учитывать в этот момент, это предел. В вставленном примере ограничение равно 100, поэтому запрос не будет возвращать более 100 столбцов. Вы можете установить ограничение на очень большое число (больше, чем возможное количество столбцов будет) если вы хотите всегда получать все столбцы в строке, но это не вообще хорошая идея.
вместо этого вы, вероятно, хотите создать Hector ColumnSliceIterator для запроса диапазона, который даст вам интерфейс итератора для строки и позволит вам перебирать всю строку, не запрашивая слишком много столбцов одновременно. См. пример в разделе "итерация столбцов" в нижней части этого страница:
https://github.com/rantav/hector/wiki/Getting-started-%285-minutes%29