Зачем использовать пакет служб SSIS в SQL Server 2008 в отличие от некоторых других технологий?

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

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

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

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

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

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

1 ответов


Я никоим образом не эксперт в 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 можно настроить для различных сред с помощью базы данных или XML на основе dtsconfig файлы или машину Переменная окружения. посмотреть этот пример для конфигурации на основе переменных среды. Точки #4 - #7-это нестандартные функции, которые требуют незначительной конфигурации и вообще не требуют кодирования.

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

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

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

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

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

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

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