Как сохранить производственные данные в отчетной БД в приложении Rails? - PullRequest
1 голос
/ 07 июля 2010

Мы хотим отслеживать производственные данные приложения Rails, чтобы их можно было проанализировать через несколько месяцев.

Если быть более точным, у нас есть несколько моделей данных со столбцом «статус» и дат, которые могут часто меняться.Идея состоит в том, чтобы записывать где-то новую строку в БД или файл журнала каждый раз, когда изменяется статус или любой другой атрибут.Эти строки состоят из копии всех атрибутов этого объекта.

Я вижу разные решения:

  • с использованием обозревателя с after_save и репликации сохраненных данных в отчет Mysql Db
  • с использованием системы ведения журнала.
  • сделать это на другом уровне, на уровне БД, обнаруживая изменения в таблице и копируя затронутые строки в БД-отчет.

Проще извлечь данные, если они хранятся в БД.Файлы журналов работают быстрее и не сильно замедляют процесс.Я не могу понять, каков наилучший способ или есть какое-либо другое решение / реализация.

Ответы [ 3 ]

0 голосов
/ 07 июля 2010

В качестве драгоценного камня есть опция: http://github.com/andersondias/acts_as_auditable

Теперь я колеблюсь между сохранением в таблице аудита или сохранением в файл в формате CVS. Мне кажется, что второй вариант лучше, потому что запись в файл происходит быстрее, и мы не зависим от соединения с сервером базы данных.

Любой отдельный инструмент BI может использовать файл CVS в качестве источника данных. Проблема в том, что мне приходится создавать разные файлы каждый раз, когда я меняю структуру своей таблицы. Но это проблема?

0 голосов
/ 08 июля 2010

Я наконец-то использовал наблюдателя и Logger с FasterCSV для создания журнала аудита.

Мне не удалось правильно скопировать / вставить весь код, так что вот ссылка на сообщение в блоге, дляТе, кто заинтересован:

производственные данные рельсов для проведения некоторого аудита (bi)

Это может быть легко адаптировано для любой модели Rails:)

0 голосов
/ 07 июля 2010

вы смотрели на acts_as_versioned?Я уверен, что для этой цели написана более современная библиотека, но она может выполнить то, что вам нужно: управление версиями данных при обновлении, чтобы вы могли отслеживать их позже.В любом случае, это может дать вам шаблон.

...