Маппинг процессов в Cassandra
А подскажите как происходит маппинг процессов на воркеры в кассандре? Есть задача заменить столбец в таблице с записями None на значения 1. Я же правильно понимаю, что cql не позволяет сделать UPDATE пачке значений через итератор. Как правильно это делать?
Ответы (1 шт):
Автор решения: Alex Ott
→ Ссылка
Есть два подхода:
- Изменить приложение, так чтобы оно вместо None возвращало 1
- Сделать изменение путем сканирования всей таблицы, извлечения всех значений primary key, и изменение столбца для каждой из строк
Сканирование всей таблицы можно сделать:
- с помощью спарка и Spark Cassandra Connector - это наверное самый удобный способ, но требует Spark, хотя можно гонять и в локальном режиме;
- программно, но тут надо правильно выполнить сканирование, так чтобы все token ranges были правильно и эффективно обработаны. У меня есть пример на яве, который в принципе делает то что и спарк для эффективного сканирования таблицы;
- Выгрузить необходимые колонки (primary key + изменяемая колонка) с помощью DataStax DSBulk, с помощью утилит, типа sed/... произвести изменения, и загрузить данные обратно.