У меня есть таблица базы данных Cassandra, которая кэшируется, чтобы зажечь кеш. Я хочу использовать какой-то запрос выбора к этой таблице. Можно ли добиться этого с помощью SqlFieldsQuery & QueryFieldsCursor в с ++? или есть другой вариант для этого?
Я только что попытался с помощью этого
SqlFieldsQuery sql ("select * from user_permission");
QueryFieldsCursor cursor = cache.Query(qry);
while (cursor.HasNext())
{
QueryFieldsRow row = cursor.GetNext();
std::cout << row.GetNext<std::string>() << row.GetNext<std::string>() << std::endl;
}
Но появилась ошибка вроде «Не удалось проанализировать запрос: выберите * из user_permission»
Прежде всего, вы не запрашиваете Cassandra с помощью API запросов, вы запрашиваете данные, которые уже есть в Ignite. Поэтому перед выполнением запросов вы должны предварительно загрузить данные из Кассандры в Ignite. Для этого вам нужно настроить хранилище Cassandra [1], а затем использовать cache.LoadCache
метод.
Во-вторых, вам необходимо убедиться, что SQL настроен правильно [2].
[1] https://apacheignite-mix.readme.io/docs/ignite-with-apache-cassandra [2] https://apacheignite-cpp.readme.io/docs/sql-queriesДругих решений пока нет …