Как определить объекты сервера SQL, от которых зависит куб SSAS?
У меня есть несколько кубов SSAS, которые обрабатываются ежедневно. Это делается с помощью проекта SSIS, который планируется запускать ежедневно в установленное время. Иногда у нас возникают проблемы с ETL, и моя работа по обработке прерывается, даже не зная, что базовые таблицы неполные. В зависимости от характера ошибки ETL, иногда обработка завершается успешно, но с устаревшими данными; иногда я получаю ошибку SSAS.
Я хочу оптимизировать задания обработки, чтобы он проверял / ждал, пока объекты, от которых зависит данный куб, не будут извлечены, прежде чем отправлять команду процесса в куб.
SSAS - 2016, SQL-сервер - 2014. Кубы используют привязку запросов в представлении источника данных, и я извлекаю метаданные из сценария XMLA, который создается во время развертывания.
Потенциальное решение, о котором я подумал, - это проанализировать информацию запроса в узле представления источника данных XMLA. Это немного усложнит процесс развертывания / извлечения метаданных, но оно того стоит, если другого пути нет. Я также искал в DMV DISCOVER_SCHEMA_ROWSETS и не смог найти DMV, который бы возвращал эти запросы DSV, хотя я не очень знаком с DMV, поэтому, возможно, я пропустил один.
Также следует отметить, что я ленив и не хочу дублировать работу по разработке, поддерживая индекс зависимостей отдельно от моих проектов SSAS. Это решение должно программно извлекать данные, а не полагаться на то, что я что-то обновляю, потому что я ненадежный человек.
Как вы гарантируете, что ваша обработка куба начинается после извлечения зависимых объектов? Вы программно идентифицируете объекты SQL, от которых зависит куб SSAS 2016? Если да, как вы это делаете, и каковы плюсы и минусы вашего подхода?