0

В настоящее время у нас есть кластер Cassandra и работает в производственной среде с использованием Cassandra 3.3.0. Мы хотим переключить это на кластер DSE без какого-либо времени простоя.Как сделать Живую миграцию кластера Ванилы Cassandra в кластер Datastax Enterprise

У нас есть инструмент для переноса схемы уже, но как лучше всего перенести данные из нашего кластера Cassandra в новый кластер Datastax без какого-либо времени простоя?

Если вы переключали кластеры с обычной Cassandra, вы могли просто присоединить Nodes из нового кластера к текущему кластеру, а затем отключить старые узлы после добавления всех новых узлов. Это хорошо, потому что для переноса данных не требуется дополнительный код, есть ли какое-либо решение, подобное этому для DSE?

ответ

2

Обычно вы должны установить DSE в соответствии с вашей версией Cassandra вокруг кластера. Однако я заметил, что вы перечисляете Cassandra 3.3.0, это правильно? Я проверил заметки о выпуске Cassandra, но не смог найти эту версию.

Предполагая, что вы имеете в виду 3,0, вы можете установить DSE 5.0 на своих узлах без необходимости миграции схемы, поскольку это будет тот же самый крупный выпуск Cassandra.

Установить документы все должны быть покрыты здесь:

https://docs.datastax.com/en/latest-dse/datastax_enterprise/install/installTOC.html

Однако, если вы не хотите идти по этому пути вы можете также Стандап новый кластер DSE и поток данных через с помощью инструмента sstableloader:

https://docs.datastax.com/en/cassandra/3.0/cassandra/tools/toolsBulkloader.html

конечно, само собой разумеется, вы всегда должны проверить, прежде чем делать что-либо в производстве!

+0

Информация о версии Кассандры: [cqlsh 5.0.1 | Cassandra 3.3 | CQL spec 3.4.0 | Собственный протокол v4]. Извините, я думаю, что это не 3.3.0, а всего 3,3. Итак, вы говорите, что если версия Cassandra у меня поддерживается DSE, я могу установить DSE поверх моего существующего кластера Cassandra? Также я смотрел на инструмент sstableloader, и кажется, что это очень привлекательно, если я не ошибаюсь, вам по существу нужно переписать схему на Java? Документы не казались особенно поучительными, есть ли там хорошие учебники? –

+0

Итак, Cassandra 3.0 является версией _latest_, поддерживаемой в DSE на данный момент (DSE5.0.x). sstableloader будет просто передавать sstables из одного кластера в другой. У вас проблема в том, что если ваша версия cassandra новее, sstableformat может не быть обратно совместимой. Вам не нужно ничего писать в java, вам нужно создать схему в целевом кластере, но это всего лишь вопрос использования cqlsh. – markc

+0

SSTableLoader не мешает нам сокращать время. Мы должны были бы запретить запись базы данных, пока мы запускаем SSTableLoader, чтобы новый кластер DSE обновлялся с самыми последними данными, поскольку, как только SSTableLoader завершит передачу данных, кластер DSE будет отсутствовать даты. Возможным решением для перехода на кластер DSE является обновление кода для записи в обе базы данных и чтение из кластера Vanilla Cassandra, а затем мы можем запустить SSTableLoader для ключевого пространства, будет ли это работать? Это наш единственный вариант? –