работают с моделью данных сразу на вкладке "Результаты" редактора.
В идеальном мире это не несет проблем. Если у вас устойчивый к нагрузкам репозиторий (нет сложных логических схем - одни "звезды"), если у вас используется хранилище данных (с партиционированием; с шардингом; с агрегатами и query rewrite).
В таком случае запустите вы запрос по всем данным - произойдет переписывание запроса к таблице-агрегату (ROLAP).
Но реалии таковы, что применяются сложные модели данных, нет агрегатов, либо они некорректно применяются.
И тогда подобная привычка - строить анализы в режиме Preview без каких-либо фильтров - пагубно влияет на общую производительность системы. Особенно, когда много одновременно работающих пользователей.
Предлагаю простое решение, которое препятствует пользователям переходить на вкладку "Результаты" анализа без применения фильтров.
Как видно из скриншота - при переходе на вкладку "Результаты" выдается запрещающее модальное предупреждение.
Чтобы реализовать подобное - я использую функционал Blocking Analyses.
1. Копирую файл answerstemplates.xml из
$Middleware/Oracle_BI1/bifoundation/web/msgdb/messages
в
$Middleware/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/msgdb/customMessages
2. Оставляю в скопированном файле лишь WebMessage с именем kuiCriteriaBlockingScript, код которого задаю следующим:
<WebMessage name="kuiCriteriaBlockingScript" translate="no"><HTML><script type="text/javascript">function validateAnalysisCriteria(analysisXml) { var filtersNode = analysisXml.selectSingleNode(".//saw:filter"); if (filtersNode == null) { return "You must use FILTERS!"; } return true; }</script></HTML></WebMessage>
3. Рестартую BI Presentation Server.
P.S. Данное решение не блокирует запуск анализов без фильтров в принципе.
Вы можете создать новый анализ без фильтров; сохранить его и открыть затем в режиме просмотра веб-каталога, либо через инфопанель - анализ отработает.
Блокировка срабатывает лишь в режиме работы в редакторе анализов. Но и эта мелочь может иногда помочь повысить общую производительность BI.
Комментариев нет:
Отправить комментарий