Тайм-аут задачи передачи объекта SSIS
Я вижу, что я не единственный человек, у которого возникла проблема с задачей задачи передачи базы данных служб SSIS и тайм-аутами, однако люди, использующие это для фазы извлечения ETL, должны быть довольно распространенными, поэтому я пытаюсь установить, что это обычный / принятый способ сделать это.
У меня есть веб-приложение, которое использует Entity Framework для генерации ~250 таблиц, некоторые из которых иногда имеют обновления схемы.
Большая часть преобразования и загрузки нашего ETL обрабатывается серией хранимых процедур, однако они считывают из копии таблиц приложения, которые изначально загружены в задаче "Перенести объекты базы данных".
Сначала мы настроили пакет служб SSIS, который просто запустил задачу "Передача объектов базы данных", а затем запустил сохраненный процесс. Это означало, что задание было достаточно устойчивым к изменениям, и единственными необходимыми изменениями были изменения хранимого процесса, если и когда обновление схемы влияло на таблицы, которые в нем использовались.
К сожалению, поскольку один из наших экземпляров приложения со временем вырос, задача "Передача объектов базы данных" достигает точки, в которой я регулярно вижу ошибки тайм-аута. Они не являются тайм-аутами соединения или чем-то, что я могу контролировать на стороне сервера, и из того, что я вижу, я не могу изменить CommandTimeout для базового SMO-компонента в этой Задаче.
Я вижу, что некоторые люди вручную создают свои выдержки, так что они запускают отдельную задачу "Поток данных" для извлечения информации из каждой таблицы, что имеет очевидный бонус: их можно запускать параллельно, однако в моем случае это означают начальную часть работы по созданию 250 единиц из них и задачу обслуживания всякий раз, когда схема изменяется в исходной базе данных, независимо от того, насколько незначительной.
Я сталкивался с Biml, который выглядел как возможный способ хотя бы ослабить эти накладные расходы, однако, похоже, он еще не может работать на VS2017.
У кого-нибудь есть какие-то конкретные шаблоны, которым они следуют для этого, или, если мне действительно нужны отдельные задачи потока данных, есть ли какой-нибудь способ автоматизировать обновление схемы, возможно, с использованием какой-то автоматизации SSIS и чего-то из структуры сущностей?
1 ответ
Оказывается, самый простой способ обойти это - написать клон задачи "Передача", но с соответствующими дополнениями, чтобы обеспечить больший контроль над пакетированием, тайм-аутами и т. Д. Подробности доступны в этой статье: https://blogs.msdn.microsoft.com. / mattm / 2007/04/18 / рулонной своего собственного передаточные-SQL-Server-объекты-задачи /