Система отчетности
Зачем
Reporting database has a number of advantages:
- The structure of the reporting database can be specifically designed to make it easier to write reports.
- You don’t need to normalize a reporting database, because it’s read-only. Feel free to duplicate data as much as needed to make queries and reporting easier.
- The development team can refactor the operational database without needing to change the reporting database.
- Влияния на производительность OLTP
- Queries run against the reporting database don’t add to the load on the operational database
- Отчеты долго формируются (тяжелые)
- Рост числа пользователей, данных
- Повышение качеств архитектуры ИС: доступность, масштабируемость
- can store derived data in the database, making it easier to write reports that use the derived data without having to introduce a separate set of derivation logic
- may have multiple reporting databases for different reporting needs
UC:
- Отчетность
- Big Data
Плюсы и минусы
Плюсы
- Минимизация рисков производительности
- Возможность использования BI систем
Минусы
- Отдельная БД, отдельный сервер системы отчетности
- Интеграция данных из ИС источников
Паттерны
- OLTP
- MS SQL
- PostgreSQL
- OLAP
- CQRS
- В решениях 1С компромисс
- События при записи в базу пишутся сразу в несколько мест. В одном месте записи имеют мало индексов и оптимизированы под OLTP нагрузки. Такие таблицы называются регистрами сведений.
- В другом месте записи индексируются по всем полям и адаптированы для OLAP нагрузок. Такие таблицы называются регистрами накоплений.
- В решениях 1С компромисс
Принципы проектирования
- Требуется ли вообще транзакционность, или её можно отключить/понизить уровень изоляции на уровне БД?
- При выборе уровня изоляции транзакции, мы пытаемся прийти к консенсусу в выборе между высокой согласованностью данных между транзакциями и скоростью выполнения этих самых транзакций.
Критерии реализация отчетов внутри ИС или в отдельной системе отчетности
- Качество текущей из коробки отчетности устраивает бизнес (Да\Нет)
- Структура данных
- Связанные сущности, источники данных в других ИС, агрегация данных из разных ИС
- Неструктурированный формат данных - XML json
- Особенности использования
- Онлайн/Оффлайн, требуемая актуальность данных на сейчас/вчера(-1\2Д) (кеш)
- Частота запуска отчетов (периодичность, ручной запуск, изменение фильтров\по расписанию)
- Глубина и объемы данных
- Исторические данные
- Сложность вычислений (необходимость ресурсов инф-ры)
- Набор параметров типизирован для отчета
- Типы отчетов
- Оперативные (онлайн) За короткий период времени на малом количестве сущностей (источниках)
- Исторические - Управленческие (оффлайн) за большие периоды времени на большом объёме данных и многих сущностях (источниках)