Тайм-аут задачи передачи объекта SSIS - PullRequest
0 голосов
/ 12 июня 2018

Я вижу, что я не единственный человек, у которого возникли проблемы с задачей объекта базы данных передачи SSIS и тайм-аутами, однако люди, использующие это для фазы извлечения ETL, должны быть довольно распространенными, поэтому я пытаюсьчтобы определить, как обычно это делается.

У меня есть веб-приложение, которое использует Entity Framework для генерации ~ 250 таблиц, некоторые из которых иногда имеют обновления схемы.

Большая часть преобразования и загрузки нашего ETL обрабатывается серией хранимых процедур, однако они считывают из копии таблиц приложения, которые изначально загружены в задаче Transfer Database Objects.

Первоначально мы настроили пакет служб SSIS, который просто запустил задачу Transfer Database Objects, а затем запустил сохраненный процесс.Это означало, что задание было достаточно устойчивым к изменениям, и единственными необходимыми изменениями были изменения хранимого процесса, если и когда обновление схемы влияло на таблицы, которые в нем использовались.

К сожалению, как одно из наших приложенийэкземпляры со временем росли, задача «Передача объектов базы данных» достигла той точки, где я регулярно вижу ошибки тайм-аутаОни не являются тайм-аутами соединения или чем-то, что я могу контролировать на стороне сервера, и из того, что я вижу, я не могу изменить CommandTimeout для базового SMO-компонента в этой Задаче.

IМожно заметить, что некоторые люди вручную создают свой экстракт, так что они запускают отдельную задачу «Поток данных» для извлечения информации из каждой таблицы, что имеет очевидный бонус: их можно запускать параллельно, однако в моем случае это будет означатьначальная часть работы по созданию 250 из них и задача обслуживания всякий раз, когда схема изменяется в исходной базе данных, независимо от того, насколько она незначительна.

Я сталкивался с Biml, который выглядел как возможный способхотя бы немного облегчить эти накладные расходы, однако, похоже, что он еще не работает на VS2017.автоматизировать обновление схемы, возможно, используя какую-то автоматизацию служб SSIS и что-то из сущности framework

1 Ответ

0 голосов
/ 12 июня 2018

Оказывается, самый простой способ обойти это - написать клон задачи «Передача», но с соответствующими дополнениями, чтобы обеспечить больший контроль над пакетированием, тайм-аутами и т. Д. Подробности доступны в этой статье: https://blogs.msdn.microsoft.com/mattm/2007/04/18/roll-your-own-transfer-sql-server-objects-task/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...