Мы предлагаем реализовать Cassandra в качестве серверной части базы данных для большого решения для архивирования (большое количество операций записи по сравнению с чтением). Мы ищем информацию о стратегии репликации и развертывания Cassandra, которая соответствует нашему варианту использования.
Выбор Кассандры был основан на следующих факторах:
- Поддерживает большую пропускную способность для операций «записи» - тысячи одновременных операций записи в секунду.
- Пригодность для инженерных данных (в основном данных временных рядов)
- Высокая доступность для поддержки непрерывной работы телескопа
- Поддержка инструментов, например Аналитика, Отчетность
Оценки данных
- 250 ТБ прироста в год (50 лет срока службы системы)
Пример использования
У нас есть два центра обработки данных - Operations DC и Analytics DC (для изоляции рабочих нагрузок чтения и записи). В конце поста находится диаграмма, изображающая предлагаемую архитектуру. Из-за ограничений хранилища мы не можем хранить данные, созданные в течение всего срока службы, на Operations DC. Следовательно, мы планируем переместить данные из Operations DC в Analytics DC в соответствии с определенной политикой (скажем, через 1 неделю).
Вопросы
- Возможна ли односторонняя репликация в Cassandra между центрами обработки данных? Данные из Operations DC перемещены в Analytics DC. Но данные, сохраненные после обработки в Analytics DC, не должны реплицироваться в Operations DC.
- Предоставляет ли Кассандра контроль над тем, что копируется? Мы не хотим, чтобы оба DC были синхронизированы. Мы хотим настроить то, что реплицируется (фактически перемещается) в Analytics DC. Возможно ли это изначально с Кассандрой? Если я хочу указать, что только данные за последнюю неделю должны реплицироваться из Операционного центра данных в Центр данных Аналитики.
Мы планируем использовать встроенную в Cassandra функцию time-to-live для удаления данных (только из операций DC). Данные, удаленные из Operations DC, не должны удаляться из Analytics DC. Как предотвратить репликацию удаленных данных?
Я читал, что один узел Cassandra может обрабатывать до 2-3 ТБ данных. Любые задокументированные ссылки на любые более крупные реализации Cassandra помогут.
Сколько узлов Cassandra нужно развернуть, чтобы справиться с таким ростом? И какая должна быть рекомендованная стратегия развертывания?
Соображения производительности: хотя объем хранилища в Operations DC будет ограничен (данные за 3–7 дней, около 5-10 ТБ), хранилище данных в Analytics DC является накопительным и продолжает расти со временем. Повлияет ли рост базы данных на Analytics DC на репликацию и снизит производительность Operations DC.
Цель здесь - узнать, можно ли использовать встроенную функцию Cassandra для поддержки вышеуказанных требований. Я знаю наиболее очевидное решение. Не иметь репликации между двумя DC. Выгрузите данные за последнюю неделю из Operations DC и переместите их в Analytics DC.