В чем разница между резервным копированием данных с помощью команды nodetool и cqlsh copy? - PullRequest
0 голосов
/ 10 декабря 2018

В настоящее время у нас есть два варианта для восстановления данных из таблиц в пространстве ключей Cassandra.Мы можем либо использовать команды nodetool, либо использовать команду copy с терминала cqlsh.

1) В чем различия между этими командами?

2) Какая из них наиболееУместно?

3) Также, если мы используем nodetool для резервного копирования, мы обычно сбрасываем данные из таблиц mem в sstables перед тем, как выпустить nodetool snapshot command.Поэтому мой вопрос заключается в том, следует ли нам использовать ту же технологию очистки данных, если мы используем команду cqlsh copy?

Любая помощь приветствуется.

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Снимок nodetool хорошо подходит для любого объема данных и создает жесткую ссылку в течение секунды. Команда копирования займет много времени, поскольку зависит от размера данных и кластера.для меньшего количества данных и тестирования вы можете использовать команду copy, но для производственного снимка nodetool рекомендуется.

0 голосов
/ 10 декабря 2018

БОЛЬШОЙ вопрос!

1) В чем различия между этими командами?

Запуск nodetool snapshot создает жесткую ссылкук файлам SSTable в запрашиваемом пространстве ключей.Это то же самое, что запускать это из командной строки (Linux):

ln {source} {link}

A cqlsh COPY по сути то же самое, что и SELECT * FROM для таблицы.Он создаст текстовый файл с данными таблицы в любом формате, который вы указали.

С точки зрения их отличия от контекста backup , файл, созданный с использованием cqlsh COPY, будет содержать данныесо всех узлов.Принимая во внимание, что nodetool snapshot должен быть запущен на каждом узле в кластере.В кластерах, где число узлов больше, чем коэффициент репликации, каждый снимок будет действительным только для того узла, на котором он был взят.

2) Какой из них наиболее подходит?

Это зависит от того, что вы пытаетесь сделать.Если вам просто нужны резервные копии для узла / кластера, тогда nodetool snapshot - это путь.Если вы пытаетесь экспортировать / импортировать данные в новую таблицу или кластер, тогда лучше использовать COPY.

Также стоит отметить, что запуск cqlsh COPY занимает некоторое время (в зависимости от количестваданные в таблице) и могут быть подвержены тайм-аутам, если не настроены должным образом.nodetool snapshot почти мгновенно;хотя процесс сжатия и SCP-файлов моментальных снимков для экземпляра вне кластера займет некоторое время.

3) Должны ли мы использовать ту же технику сброса данных, если мы используем команду cqlsh copy?

Нет, это не обязательно.Поскольку cqlsh COPY работает так же, как SELECT, он будет следовать обычному пути чтения Кассандры , который будет проверять структуры и в оперативной памяти и на диске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...