Как проверить длину текстового поля таблицы Cassandra

В нашей базе данных Cassandra есть одно поле «имя», тип данных которого — «текст». Как мне получить данные, длина поля «имя» которых больше некоторого числа, с помощью запроса Cassandra.


person Irfan21    schedule 06.07.2020    source источник
comment
Может, ответы на этот вопрос помогут? stackoverflow.com/questions/49674114/   -  person phonaputer    schedule 07.07.2020


Ответы (1)


Как было указано в комментарии, пользовательскую функцию легко добавить и использовать. для получения длины текстового поля, но загвоздка в том, что вы не можете использовать определяемую пользователем функцию в условии WHERE (см. CASSANDRA-8488).

Даже если бы это было возможно, если бы у вас было только это как условие - это плохой запрос для Cassandra, так как ему нужно будет просмотреть все данные в базе данных и отфильтровать их. Для таких задач обычно используются штуки вроде Spark — читать данные можно через Spark Cassandra Connector и применить необходимые условия фильтрации. Но это потребует чтения всех данных из базы данных, а затем выполнения фильтрации - это будет намного медленнее, чем обычные запросы CQL, но, по крайней мере, будет автоматически распараллелено.

person Alex Ott    schedule 07.07.2020