А подскажите как происходит маппинг процессов на воркеры в кассандре? Есть задача заменить столбец в таблице с записями None на значения 1. Я же правильно понимаю, что cql не позволяет сделать UPDATE пачке значений через итератор. Как правильно это делать?
Asked
Active
Viewed 20 times
0
-
btw, мы открыли раздел для вопросов на русском на нашем форуме посвященном Кассандре: https://community.datastax.com/index.html – Alex Ott Mar 19 '20 at 10:43
1 Answers
0
Есть два подхода:
- Изменить приложение, так чтобы оно вместо None возвращало 1
- Сделать изменение путем сканирования всей таблицы, извлечения всех значений primary key, и изменение столбца для каждой из строк
Сканирование всей таблицы можно сделать:
- с помощью спарка и Spark Cassandra Connector - это наверное самый удобный способ, но требует Spark, хотя можно гонять и в локальном режиме;
- программно, но тут надо правильно выполнить сканирование, так чтобы все token ranges были правильно и эффективно обработаны. У меня есть пример на яве, который в принципе делает то что и спарк для эффективного сканирования таблицы;
- Выгрузить необходимые колонки (primary key + изменяемая колонка) с помощью DataStax DSBulk, с помощью утилит, типа sed/... произвести изменения, и загрузить данные обратно.
Alex Ott
- 351
-
- вариант точно не мой, выйдет слишком медленно
А что касается распределения воркеров и маппинга, как это делается?
– Tony Stark Mar 17 '20 at 19:27 -