Зачем мне использовать пакет служб SSIS в SQL Server 2008, а не какую-то другую технологию? - PullRequest
8 голосов
/ 08 июня 2011

Я в отделе контроля качества внутренней группы разработчиков. Наши программисты производственной базы данных создают пакет служб SSIS для создания файла загрузки из различных битов базы данных для импорта в стороннее приложение (мы тестируем интеграцию с этим).

После сборки было быстро обнаружено, что он зависел от версии SQL Server и Visual Studio, с которой он был создан, и имел довольно мало зависимостей от производственной среды (это не проблема SSIS, просто описывая природу нашей установки).

Создание этой сборки заняло несколько дней серьезных усилий, а затем не выполнялось бы в нашей среде обеспечения качества.

Спросив у этой команды запросы SQL, которые выполнял их пакет (он отлично работает в производственной среде), я написал скрипт на python, который выполнял ту же задачу без каких-либо зависимостей. Это заняло у меня чуть больше двух часов (обратите внимание, что у меня уже была настраиваемая библиотека для обработки взаимодействия с нашей базой данных), и я смог выписать нужный мне файл UTF-16LE.

Теперь наши программисты производственных баз данных не являются экспертами в SSIS, но они используют их в своих рабочих процессах - я бы с готовностью назвал их всех компетентными в своих позициях.

Таким образом, мой вопрос - учитывая время, которое уходит на это, и зависимости от версий SQL Server и Visual Studio, какие преимущества или преимущества дает пакет SSIS, который я могу не увидеть в своем коде python? Или сценарий оболочки, или Ruby, или код-аромат-момент?

1 Ответ

11 голосов
/ 09 июня 2011

Я ни в коем случае не эксперт по SSIS, но обычный разработчик, имеющий опыт работы с SSIS чуть более трех лет. Как и у любого другого программного обеспечения, с SSIS есть и небольшие недостатки, но до сих пор мне нравилось работать с SSIS. Выбор технологии зависит от потребностей и предпочтений. Я не собираюсь говорить, что SSIS превосходит другие технологии. Кроме того, я не работал с Python, Ruby или другими технологиями, которые вы упомянули.

Вот мои два цента. Пожалуйста, возьмите это с зерном соли.

  1. С точки зрения обычного разработчика, SSIS прост в использовании, когда вы поймете нюансы того, как с ним обращаться. Я считаю, что то же самое верно для любой другой технологии. Пакеты служб SSIS - это визуальные рабочие процессы, а не инструмент кодирования (конечно, SSIS также имеет отличные возможности кодирования). Можно легко понять, что происходит в пакете, взглянув на рабочие процессы, а не на сотни строк кода.

  2. Службы SSIS построены в основном для выполнения заданий ETL (извлечение, преобразование, загрузка). Он отлично настроен для того, чтобы действительно хорошо справляться с этой функциональностью, особенно с SQL Server, и не говоря уже о том, что он может обрабатывать плоские файлы, DB2, Oracle и другие источники данных.

  3. Вы можете выполнять большинство задач с минимальным кодированием или без него. Он может загружать миллионы строк из одного источника данных в другой в течение нескольких минут. См. Этот пример , демонстрирующий пакет, который загружает миллион строк из файла с разделителями табуляции в SQL Server за 3 минуты .

  4. Logging возможности для захвата каждого действия, выполняемого пакетом, и его задач. Это помогает точно определить ошибки или отслеживать информацию о действиях, выполняемых пакетом. Это не требует кодирования. См. Этот пример для регистрации.

  5. Check Points помогает зафиксировать выполнение пакета, как записывающее устройство, и помогает перезапустить выполнение пакета с точки сбоя вместо запуска пакета с самого начала.

  6. Expressions может использоваться для определения потока упаковки в зависимости от заданного условия.

  7. Package configurations можно настроить для различных сред с использованием базы данных или файлов dtsconfig на основе XML или переменных среды на основе компьютера. См. Этот пример для конфигурации на основе переменных среды. Точки № 4 - № 7 - это готовые функции, которые требуют незначительной настройки и вообще не требуют кодирования.

  8. SSIS может использовать возможности платформы .NET, а также разработчики могут создавать свои собственные пользовательские компоненты, если они не могут найти компонент, который отвечает их требованиям. См. Этот пример , чтобы понять, как лучше всего использовать кодирование .NET вместе с другим источником данных. Этот пример был создан менее чем за 3 hours.

  9. Службы SSIS могут использовать один и тот же источник данных для нескольких преобразований без необходимости повторного чтения данных. См. Этот пример , чтобы понять, что означает многоадресная рассылка. Вот пример того, как можно обрабатывать источники данных XML.

  10. SSIS также можно легко интегрировать с SSRS (службы Reporting Services) и SSAS (службы Analysis Services).

Я только что перечислил очень простые вещи, которые я использовал в SSIS, но есть много приятных функций. Как я упоминал ранее, я не уверен, что Python, Ruby или другие языки справятся с этими задачами с такой легкостью.

Все сводится к комфорту с технологией. Когда технология новая, люди очень скептически относятся к ней и не хотят ее адаптировать.

По моему опыту, когда вы понимаете и принимаете SSIS, это действительно хорошая технология для использования. Это работает очень хорошо с SQL Server. Я не отрицаю тот факт, что я столкнулся с препятствиями при разработке своих пакетов, но в основном нашел способ их преодолеть.

Возможно, это не тот ответ, который вы ожидали, но я надеюсь, что это дает представление.

...