Как перенести данные существующих столбцов в новый столбец в Cassandra - PullRequest
0 голосов
/ 21 марта 2020

Мне нужно сохранить статус завершения викторины пользователя в таблице Кассандры, ранее таблица была разработана только для хранения одного статуса викторины, поэтому я не могу сохранить, если пользователь принимает другую викторину (идентификатор пользователя является первичным ключом). Я пытаюсь добиться этого путем добавления нового столбца, но не знаю, как перенести текущие данные в новый столбец.

id  | quiz_completed | quiz_skipped
-----+----------------+-------------
 123 |           True |        False 

С новым столбцом

id  | quiz_completed | quiz_skipped | quiz_status
-----+----------------+--------------+-----------------------------------------------------------
 123 |           True |        False | {"XXXX": {"quiz_completed": true, "quiz_skipped": false}, "YYYY": {"quiz_completed": true, "quiz_skipped": false}}

Не могли бы вы мне помочь с переносом данных?

Заранее спасибо!

1 Ответ

0 голосов
/ 21 марта 2020

Для этого можно использовать внешние инструменты, например:

  1. Spark с Spark Cassandra Connector - в этом случае вы можете выполнять все операции внутри одной и той же программы (если это одноразовая операция, тогда вы можете делать все в оболочке spark);
  2. Использовать какой-либо инструмент, например, DataStax Bulk Loader (DSBulk) , чтобы выгрузить данные в файлы, например, CSV или JSON файлов, преобразуйте их с помощью какого-либо инструмента (sed / awk / ...) и загрузите обратно.
...