Тайм-аут задачи передачи объекта 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-объекты-задачи /

Другие вопросы по тегам