В настоящее время у нас есть кластер Cassandra и работает в производственной среде с использованием Cassandra 3.3.0. Мы хотим переключить это на кластер DSE без какого-либо времени простоя.Как сделать Живую миграцию кластера Ванилы Cassandra в кластер Datastax Enterprise
У нас есть инструмент для переноса схемы уже, но как лучше всего перенести данные из нашего кластера Cassandra в новый кластер Datastax без какого-либо времени простоя?
Если вы переключали кластеры с обычной Cassandra, вы могли просто присоединить Nodes из нового кластера к текущему кластеру, а затем отключить старые узлы после добавления всех новых узлов. Это хорошо, потому что для переноса данных не требуется дополнительный код, есть ли какое-либо решение, подобное этому для DSE?
Информация о версии Кассандры: [cqlsh 5.0.1 | Cassandra 3.3 | CQL spec 3.4.0 | Собственный протокол v4]. Извините, я думаю, что это не 3.3.0, а всего 3,3. Итак, вы говорите, что если версия Cassandra у меня поддерживается DSE, я могу установить DSE поверх моего существующего кластера Cassandra? Также я смотрел на инструмент sstableloader, и кажется, что это очень привлекательно, если я не ошибаюсь, вам по существу нужно переписать схему на Java? Документы не казались особенно поучительными, есть ли там хорошие учебники? –
Итак, Cassandra 3.0 является версией _latest_, поддерживаемой в DSE на данный момент (DSE5.0.x). sstableloader будет просто передавать sstables из одного кластера в другой. У вас проблема в том, что если ваша версия cassandra новее, sstableformat может не быть обратно совместимой. Вам не нужно ничего писать в java, вам нужно создать схему в целевом кластере, но это всего лишь вопрос использования cqlsh. – markc
SSTableLoader не мешает нам сокращать время. Мы должны были бы запретить запись базы данных, пока мы запускаем SSTableLoader, чтобы новый кластер DSE обновлялся с самыми последними данными, поскольку, как только SSTableLoader завершит передачу данных, кластер DSE будет отсутствовать даты. Возможным решением для перехода на кластер DSE является обновление кода для записи в обе базы данных и чтение из кластера Vanilla Cassandra, а затем мы можем запустить SSTableLoader для ключевого пространства, будет ли это работать? Это наш единственный вариант? –