Кассандра Гектор - Запрос всех имен супер столбцов и всех вложенных столбцов (имя и значение)

У меня есть семейство супер столбцов, и все работает хорошо, когда я делаю запрос следующим образом

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();
Другие вопросы по тегам