Версионный компонент database Engine, который может выбирать из прошлого состояния БД?

#database-design #architecture

#база данных-дизайн #архитектура

Вопрос:

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

Существует ли ядро базы данных (например, sqlite), к которому можно запрашивать из его текущего состояния или из любого прошлого момента времени (включая изменения DDL)?

Что-то, где я могу

  1. Вставить данные
  2. Завтра измените схемы таблиц
  3. Запрашивать данные на основе вчерашних данных и схем (возможно, при другом подключении к БД)

Мой ожидаемый размер базы данных, вероятно, невелик (всего несколько МБ, определенно умещается в оперативной памяти).

Я представляю что-то WAL, которое может запрашивать активную базу данных, но материализует более старую версию для запросов по требованию,

  • AWS Aurora может выполнять откат к определенному моменту времени, но это имеет большое значение
  • Я мог бы создавать резервные копии базы данных при каждой инструкции INSERT или ALTER, но это кажется неэффективным
  • Я мог бы разработать хранилище данных на определенный момент времени / только для добавления в качестве серверной части vfs для Sqlite

Ответ №1:

Вы могли бы проверить HANA DB и запрос о путешествии во времени: http://www.saphanacentral.com/p/sap-hana-history-table-time-traveling.html

Я думаю, это может вам помочь