обновление всех таблиц Cassandra, начиная с определенного имени

Я пытаюсь изменить свои таблицы cassandra, начиная с определенного имени. Моя таблица начинается с sample_1,sample_2,sample_13567,sample_adgf и так далее... Имена таблиц случайны, но начинаются с одного и того же префикса.

Я хочу добавить новый столбец во все эти таблицы. Может ли кто-нибудь предложить мне запрос на обновление, используя регулярное выражение для имен таблиц.


person shiva    schedule 22.04.2017    source источник
comment
У меня нет ответа для вас, но я должен сказать вам, что наличие 13 500 таблиц, не говоря уже о более чем нескольких сотнях, в конечном итоге причинит вам боль в виде давления кучи JVM. Просто кое-что, что нужно иметь в виду.   -  person MarcintheCloud    schedule 22.04.2017


Ответы (1)


Если вы используете Linux, вы можете сделать это в два этапа:

Сначала сгенерируйте всю команду alter в файл, как показано ниже:

for i in {1..13567}; do echo "ALTER TABLE sample_$i ADD test text;"; done > alter.cql

Приведенная выше команда создаст команду alter, чтобы добавить столбец test text для таблицы sample_1 в sample_13567 и сохранить в файле alter.cql

Теперь вы можете просто загрузить файл cql в cqlsh, как показано ниже:

cqlsh 127.0.0.1 -u cassandra -p cassandra -k ashraful_test -f alter.cql

Здесь

-u username
-p password
-k keyspace_name
-f file name to load

Кстати, иметь слишком большую таблицу - не очень хорошая идея.
Проверьте эту ссылку https://stackoverflow.com/a/33389204/2320144

person Ashraful Islam    schedule 22.04.2017
comment
Привет, имена таблиц не являются последовательными, они случайны, но начинаются с одного и того же префикса. Например, некоторые таблицы могут иметь sample_rt4f и sample_123r. Я пытаюсь сделать это из Центра разработки (cassandra ide, например sql studio). Я не могу сделать это через Linux, так как я не есть права на сервер. - person shiva; 23.04.2017