Должны ли программисты использовать SSIS, и если да, то почему?

Как разработчик .NET, по каким причинам я должен использовать пакеты SSIS для написания кода? У нас есть тонна пакетов в производстве, где я сейчас работаю, и они - кошмар для "писать" (возможно, рисовать?) И поддерживать. Каждый пакет выглядит как чаша разноцветных спагетти с скриптами С# и VB.NET, смешанными в точках, где абстракции ломаются. Чтобы выяснить, что делает каждая "Выполнение SQL-задачи" или "Foreach Loop", я должен дважды щелкнуть проклятую вещь и просмотреть дерево с буквальными значениями и выражениями, разбросанными по нескольким вкладкам.

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

Ответ 1

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

Значение SSIS является механизмом документооборота для перемещения данных из одного места в другое с возможным ограниченным преобразованием и условным разветвлением на этом пути. Если ваши пакеты содержат много script, тогда ваша команда использует SSIS для неправильных задач или не устраивает SQL или купила рекламу. Пакеты SSIS очень сложно отлаживать. Компоненты script являются абсолютным кошмаром и должны использоваться только для форматирования, циклирования или в качестве крайней меры.

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

Ответ 2

Я несколько раз пытался использовать SSIS и отказался от него. ИМО намного проще сделать все, что мне нужно в С#. SSIS слишком сложна, у него слишком много исправлений, и это просто не стоит. Гораздо лучше потратить больше времени на улучшение навыков С#, чем на то же время на изучение SSIS - вы получите гораздо больше отдачи от своего обучения.

Также найти и поддерживать функциональность в VS-решении так намного проще. Групповое тестирование с VS легко. Все, что мне нужно сделать, это проверить источник в Subversion и проверить, как он загружен. Модульное тестирование пакетов SSIS очень мягко сказано.

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

Ответ 3

По-моему, SSIS предназначен только для операций ETL и не должен содержать никакой логики вне этой области.

Ответ 4

У меня был неудачный опыт работы над проектом, где мы думали, что SSIS будет достаточно хорошим решением для объединения и объединения данных из нескольких источников. К несчастью, сначала он работал отлично, но затем менялись требования, и мы (в конце концов) поняли, что это был неправильный инструмент.

Возможно, мы просто использовали его неправильно, но нам было очень сложно, если мы когда-либо изменили нашу схему, и мы в конечном итоге просто повторно использовали наши определения ORM из интерфейса, чтобы написать собственный инструмент на С# для этого. Поскольку у нас уже была датамодель, это было удивительно легко. очевидно, YMMV, и я ни в коем случае не эксперт по SSIS, но в этом случае SSIS вызвал много дублирования работы и головных болей, когда просто свертывал наши рукава и "ручное кодирование", это было проще, чем ожидалось.

Поэтому я бы подумал о гибкости при рассмотрении SSIS.

Ответ 5

SSIS имеет свое место, и это место не является общим программированием или заменой хранимых процедур. Это происходит из школы ETL (Extract, Transform и Load) и того, где находится ее stregnth.

Старое имя (DTS, Data Transformation Services) и новое имя (SSIS, Sql Server Integration Services) очищают его как службу (или набор сервисов), предназначенную для управления данными для интеграции базы данных SQL Server в более крупные процессы.

Ответ 6

Если вы хотите программно переместить свои данные, вы можете посмотреть Rhino ETL.

Я также работаю над своей собственной инфраструктурой, Fluent ETL, так как я нахожу, что SSIS слишком вовлечен в простые задачи с данными, связанные с как, например, загрузка данных unit test из файла CSV.

Ответ 7

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

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