Маппинг процессов в Cassandra

А подскажите как происходит маппинг процессов на воркеры в кассандре? Есть задача заменить столбец в таблице с записями None на значения 1. Я же правильно понимаю, что cql не позволяет сделать UPDATE пачке значений через итератор. Как правильно это делать?


Ответы (1 шт):

Автор решения: Alex Ott

Есть два подхода:

  1. Изменить приложение, так чтобы оно вместо None возвращало 1
  2. Сделать изменение путем сканирования всей таблицы, извлечения всех значений primary key, и изменение столбца для каждой из строк

Сканирование всей таблицы можно сделать:

  1. с помощью спарка и Spark Cassandra Connector - это наверное самый удобный способ, но требует Spark, хотя можно гонять и в локальном режиме;
  2. программно, но тут надо правильно выполнить сканирование, так чтобы все token ranges были правильно и эффективно обработаны. У меня есть пример на яве, который в принципе делает то что и спарк для эффективного сканирования таблицы;
  3. Выгрузить необходимые колонки (primary key + изменяемая колонка) с помощью DataStax DSBulk, с помощью утилит, типа sed/... произвести изменения, и загрузить данные обратно.
→ Ссылка