powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как хранить историю изменения данных
6 сообщений из 6, страница 1 из 1
Как хранить историю изменения данных
    #38720060
big-trot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача.
1. Необходимо обеспечить хранение истории изменения данных. Например в какой-то таблице поменяли значение в ячейке, необходимо где-то хранить старое значение и дату его изменения.
2. Как быть с внешними ключами? Если изменилось значение внешнего ключа, как сохранить весь срез данных по старому ключу.

Понимаю, что штатных средств в postgesql для решения данной задачи нет (или я ошибаюсь).

Поделитесь опытом, кто сталкивался с подобного рода задачами.
Спасибо.
...
Рейтинг: 0 / 0
Как хранить историю изменения данных
    #38720087
rovan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версию Postgres озвучь. Также, озвучь объёмы данных, среднюю нагрузку, средний прирост, сценарий использования базы (учет, отчетность, хранилище, аналитика).
Возможно, подойдёт вот такое .
В остальном - возможно варианты.
Варианты зависят от того, кто и как пользуется базой.
Список известных мне вариантов:
1. Захватывать изменения в триггере - я б так делать не стал.
2. Захватывать явно, на этапе модификации (как в приведенном примере, например) - этот вариант нравится больше всего, но доступен редко, т.к. потребует доработки приложения, использующего базу.
3. CDC - захватывать изменения в журнале транзакций, и записывать их где-то. Этот вариант хороший, но как легко и просто организовать Change Data Capture в PostgreSQL - не знаю.
Есть еще вариант 4 - хранить данные в таблице версионно, т.е. при обновлении строки сохранять старую версию и вставлять копию с обновлением как новую версию. Но для этого потребует серьёзная добработка вашего приложения.
...
Рейтинг: 0 / 0
Как хранить историю изменения данных
    #38720095
rovan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроме того, в 9.4 появилась логическая репликация. Она может помочь с захватом изменений.
>>Понимаю, что штатных средств в postgesql для решения данной задачи нет (или я ошибаюсь).
Не ошибаешься. Штатных средств, в общем-то, нет нигде (Оракловый флешбэк - несовсем то).

Что до внешних ключей - зависит от того, какой вариант захвата и сохранения изменений ты выберешь.
...
Рейтинг: 0 / 0
Как хранить историю изменения данных
    #38720117
big-trot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rovan Версию Postgres озвучь. Также, озвучь объёмы данных, среднюю нагрузку, средний прирост, сценарий использования базы (учет, отчетность, хранилище, аналитика).

Версия Postgres - 9.1

Объем приходящих данных - ориентировочно 10Kb

Средняя нагрузка - еженедельное автоматическое обновление данных

Сценарий использования - отчетность, хранилище
...
Рейтинг: 0 / 0
Как хранить историю изменения данных
    #38720262
biwed.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-trot,
Добрый день.
big-troЗадача.
1. Необходимо обеспечить хранение истории изменения данных. Например в какой-то таблице поменяли значение в ячейке, необходимо где-то хранить старое значение и дату его изменения.
2. Как быть с внешними ключами? Если изменилось значение внешнего ключа, как сохранить весь срез данных по старому ключу.

Понимаю, что штатных средств в postgesql для решения данной задачи нет (или я ошибаюсь).

Можно погуглить по Slowly changing dimension. Очень широко используется при проектировании DWH. Можете и теорию почитать про проектирование и самих DWH. Может идея и понравится.

PS. Если по сценарию планируете использовать отчетность, то тут лучше смотреть в сторону OLAP кубов.

С уважением,
biwed.ru
...
Рейтинг: 0 / 0
Как хранить историю изменения данных
    #38722861
Sergei.Agalakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-trotrovan Версию Postgres озвучь. Также, озвучь объёмы данных, среднюю нагрузку, средний прирост, сценарий использования базы (учет, отчетность, хранилище, аналитика).

Версия Postgres - 9.1

Объем приходящих данных - ориентировочно 10Kb

Средняя нагрузка - еженедельное автоматическое обновление данных

Сценарий использования - отчетность, хранилище
Точно 10Kb, а не MB или GB?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как хранить историю изменения данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]