Поскольку наш SQL-сервер является стандартной версией и не может выполнять упреждающее кэширование, мне было интересно, могут ли службы Integration Services обнаруживать изменения в базе данных / таблице, чтобы затем автоматически обрабатывать куб? Или это принятие желаемого за действительное?
Я не верю, что он будет поддерживать это изначально, но вы могли бы сделать что-то вроде следующего
1) Добавьте в таблицу триггер, который будет устанавливать значение даты последнего изменения каждый раз при вставке или обновлении записи.
2) Создайте пакет SSIS для повторной обработки ваших кубов.
3) Попросите пакет ssis записать значение даты и времени последнего запуска, чтобы отслеживать время его последнего выполнения.
4) Попросите ваш пакет SSIS сравнить дату последнего изменения таблицы с временем последнего выполнения пакета. Если модификация произошла, пакет SSIS может выполнить свою обработку.
5) Запланируйте запуск пакета каждые пять минут или около того для сбора новых данных.
Предостережение здесь в том, что вы будете фактически повторно обрабатывать кубы каждый раз, когда данные изменяются. Это может быть нормально, если данные меняются нечасто, а ваши кубы маленькие, но, вероятно, выйдет из строя ваши кубы, если данные будут часто обновляться. Упреждающее кэширование делает больше, чем просто автоматическое обновление кубов. Он также управляет кешем SSAS, чтобы новые данные объединялись без снижения производительности. Модель, которую я здесь описал, этого не позволяет.
В общем, я стараюсь отговаривать своих клиентов от обновлений куба в реальном времени. Проблема в том, что это может затруднить анализ, если числа меняются каждые несколько минут. Многие люди просили об этом, но передумали, как только мы поговорим о последствиях. При этом для него есть законные варианты использования.