Мне нужно переместить данные из одной таблицы в другую, но определение таблиц немного другое:
CREATE TABLE elements (
id timeuuid PRIMARY KEY,
other_ids set<text>,
name text
)
CREATE TABLE elements_new (
id text PRIMARY KEY,
other_id text,
name text
)
Мне нужно создать строку в новой таблице для каждого заданного элемента старой таблицы.
Как перебирать элементы набора в операторе cql? Я не смог найти никакой документации по этому поводу.

Обычно вы используете разбиение на страницы в Cassandra для итерации по запросу. Пейджинг доступен в большинстве клиентов. Драйвер Java смотрите здесь: https://docs.datastax.com/en/developer/java-driver/3.2/manual/paging/
Сделать это можно только с помощью программирования - в CQL это не поддерживается.
В зависимости от количества данных вам может потребоваться либо использовать Разъем Spark Cassandra, либо написать код, который будет проходить через все диапазоны токенов, извлекать данные и преобразовывать их в новую структуру.
Думаю, ваша новая таблица будет выглядеть так:
CREATE TABLE elements_new (
id text,
name text STATIC,
other_id text,
PRIMARY KEY ((id), other_id)
)
Тогда у каждого идентификатора будет имя и набор уникальных other_ids.
Функционально это то же самое, что и другая таблица, за исключением того, что вы можете перебирать каждый другой идентификатор с помощью обычного пейджера драйверов, которым можно управлять с помощью параметра Statement fetchSize.
с коллекциями CQL все это нужно занести в память и отправить как один столбец. Пролистывания через него нет.