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

93
задан Charles 24 August 2010 в 15:52
поделиться

7 ответов

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

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

  1. Создавайте простые пакеты, задачи sql и задачи потока данных.
  2. Выполняйте как можно больше работы вне служб SSIS, предпочтительно в SQL
  3. Храните свои переменные в единой глобальной области видимости
  4. Храните свой SQL в переменных или храните процедуры, а не встроенные
  5. Храните свои значения переменных в хранилище конфигурации, желательно в базе данных SQL
90
ответ дан 24 November 2019 в 06:17
поделиться

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

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

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

50
ответ дан 24 November 2019 в 06:17
поделиться

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

14
ответ дан 24 November 2019 в 06:17
поделиться

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

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

3
ответ дан 24 November 2019 в 06:17
поделиться

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

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

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

11
ответ дан 24 November 2019 в 06:17
поделиться

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

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

6
ответ дан 24 November 2019 в 06:17
поделиться

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

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

4
ответ дан 24 November 2019 в 06:17
поделиться