Какую базу использовать для хранение истории измений?

Требуется хранить историю всех измений в базе (порядка 50 таблиц, от 3 до 60 колонок в каждой). Чтобы не захламлять основную базу, история изменений переносится в историческую базу, по каждой таблице отдельно, со структурой "дата| пользователь|ip|id|поле|было|стало|запрос".
Запросы на чтение редкие, вида "вытащить все изменения по ID", "найти кто менял значение А на Б".
Сейчас под историческую базу используется mysql+myrocks со включенной компрессией. Максимальный объём данных в одной таблице - 500'000'000 записей, суммарно порядка миллиарда. Ежедневно добавляется ещё несколько десятков-сотен тысяч записей.
В целом работает ок, но вызывает сомнение надёжность - уже были случаи когда при попытке сделать изменение структуры одной таблицы вся база ложилась, безвозвратно повреждая файлы на диске.

Что посоветуете использовать в таком случае? Redshift? Greenplum? Tarantool?
  • Вопрос задан
  • 276 просмотров
Пригласить эксперта
Ответы на вопрос 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Главное возьми не реляционную базу данных с горизонтальным масштабированием - MongoDB, DynamoDb или что-то в этом роде. Тебе нужно чтобы не было лимита по диску, фильтр по ключу, сортировка и отсутствие ограничения по размеру значения.

PS если у тебя при изменении структуры таблицы ложится база то ты либо не соблюдаешь версионность либо же же проблема в отсутствии тестов
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы