Кассандра Гектор - Запрос всех имен супер столбцов и всех вложенных столбцов (имя и значение)
У меня есть семейство супер столбцов, и все работает хорошо, когда я делаю запрос следующим образом
private static Cluster cluster = HFactory.getOrCreateCluster("cluster1", "localhost:9160");
private static Keyspace keyspace = HFactory.createKeyspace("keyspace1",cluster);
private static Serializer se = StringSerializer.get();
SuperColumnQuery<String, String, String, String> scq = HFactory.createSuperColumnQuery(keyspace, se, se, se, se);
scq.setColumnFamily("step_wise_stats")
.setKey("1001")
.setSuperName("124");
QueryResult<HSuperColumn<String, String, String>> qres = scq.execute();
System.out.println(qres.get());
Но под ключом 1001 есть и другие супер-имена, такие как 125, 126 и т. Д. И они тоже динамические (я не знаю этих имен заранее). Как я могу запросить их все?
1 ответ
Многие эксперты и документация предполагают, что использовать составной столбец гораздо лучше, чем в столбце Super Column, поскольку в этом случае отсутствуют вторичные индексы... поэтому, если возможно, используйте составной столбец. В противном случае в этом случае следует использовать timeUUID вместо динамического значения и попробуйте с MultigetSubSliceQuery
внесите изменения с помощью приведенного ниже кода, это может увеличить ваши усилия по программированию для получения требуемого результата
ArrayList<String> listco = new ArrayList<String>();
listco.add("1001");
listco.add("1002");
MultigetSubSliceQuery<String,String, String, String> rangeSlicesQuery =
HFactory.
createMultigetSubSliceQuery(keyspace,stringSerializer, stringSerializer, stringSerializer, stringSerializer);
rangeSlicesQuery.setColumnFamily("step_wise_stats");
rangeSlicesQuery.setSuperColumn("your super column");
rangeSlicesQuery.setKeys(listco);
rangeSlicesQuery.setRange("", "", false, 1000);
QueryResult<Rows<String, String, String>> result = rangeSlicesQuery.execute();