Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Легковесные аналоги SSIS  [new]
tunknown
Member

Откуда:
Сообщений: 710
Нужен легковесный аналог SSIS с удобным дизайнером. Полная функциональность не обязательна, нужно только, чтобы мог собрать данные, сохранить в файл и отправить по протоколу. Но чтобы этот малый функционал был отлажен и работал хорошо.

Вероятно, в новых версиях что-то исправлено, я работал только с SSIS 2008R2 и он меня не устроил. Возможно, я что-то уже позабыл, вот список плюсов и минусов:

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

    Минусы
  • отсутствует почти целиком в Express

    работа с MSSQL
  • присутствует не меньше 3(SSIS)+1(SQL) вариантов типов данных с неполным маппингом друг в друга
  • родные типы SQL поддерживаются только частично, например, varchar(max) нельзя получить в переменную
  • null в переменных не поддерживается и даже если его можно получить из БД, то он теряется и преобразуется в пустое значение
  • нужно писать специальные версии процедур с учётом обработки типов SSIS, например, со спецобработкой null и некоторых типов данных
  • плохая поддержка резалтсетов процедур, нужно явное указание типа возвращаемого резалтсета, т.е. после отладки может потребоваться правка sql скриптов и новая отладка
  • разрабатывать и отлаживаться сложно- иногда нужно догадываться, что означает sql или другая ошибка, прошедшая через несколько уровней врапперов
  • оверхед на SQL сервере за счёт лишних соединений от SSIS и лишних запросов- новый логин на каждый запрос и опрос информации о выполняемых запросах
  • большее время выполнения пакета, чем sql срипта
  • не всегда удачное преобразование типов данных из текcтовых значений

    Package
  • некоторые компоненты не функциональны- FTP task умеет только FTP, SMTP task не умеет письма в HTML, вместо них нужен вызов сторонних компонентов, Process Task не умеет ждать завершения .cmd файла- нужно применять обходные пути
  • дополнительное программирование, поддержка и накладные расходы на передачу параметров в переменные и обратно, в т.ч. из одного SQL Task в другой(скрипт, разорванный на части)
  • через Execute Package Task нельзя вызвать _любой_ пакет передав ему параметры напрямую, т.е. вызываемый пакет должен быть написан с учётом получения параметров от вызывающего(Package configurations\Parent package variable) или применять DTExec.exe через Execute Process Task
  • некоторые свойства неочевидно установлены по умолчанию, например, ExecuteTask.DelayValidation, AND в условии по стрелке
  • выражения для вычисления переменных не получилось заставить работать
  • ручная правка xml файла пакета для рефакторинга иногда невозможна, т.к. используются ссылки на значения, а не сами значения
  • сравнение двух версий xml файла одного Package практически невозможно, т.к. положение компонентов в тексте может меняться от незначительных правок в дизайнере и отстствия разделения на скрипты, компоненты и данные визуального представления
  • некоторые большие блоки(5 килобайт) в .xml повторяются копированием, а не ссылкой

    Дизайнер
  • стрелки направления процессов в схеме размещаются не произвольно, а только в фиксированных позициях- пересекаются и перекрывают другие элементы
  • иногда нельзя протянуть стрелку connection, если уже существует одна- надо передвинуть или удалить все стрелки и попробовать снова
  • дизайнер не умеет удобно располагать и автоматически прокручивать схему
  • схемы дизайнера не сохраняются полностью, при открытии сохранённого пакета стрелки съезжают
  • настройки некоторых дизайнеров, например, грида показа свойств, переменных- не сохраняются при выходе из visual studio, а по умолчанию- неудобны
  • в отдельном окне свойств Script Task можно поменять язык скрипта, на закладке property- нет. Нужно помнить, в каком окне что делать.
  • SSIS transfer job task имеет собственные connection вместо использования общих
  • "Unable to step. Not implemented" (или не поддерживается)- нельзя отлаживаться по шагам
  • нефункциональный редактор выражений- не отличаются переменные системные и пользовательские, неясное написание формул, модальность окна
  • В precedence constraint editor есть expression, но нет expression builder
  • трудно разрабатывать и отлаживаться по сравнению с логикой на чистом sqlserver из-за того, что SSIS может стоять на боевом и локальном сервере, соответственно, права и окружение разные
  • если пакет запускается из job, то добавляется ещё один уровень и усложняет отладку
  • пакет может завершиться с ошибкой, но никакого сообщения не будет, только ничего не значащий код ошибки, которая не описана ни на сайте микрософт, ни в другом месте
  • пакет может измениться(потребовать сохранения) даже если в дизайнере только даблкликнуть для вызова свойств, что усложняет слежение за изменениями при версионности
  • при даблклике по стрелке она может сдвинуться и пакет изменяется, хотя нужно было просто посмотреть свойства
  • при запуске пакет принудительно сохраняется с изменениями, даже если в дизайнере не было правки. В результате, возникают сложности при работе с системой контроля версий, когда он видит тестовые изменения, которые не должны были попасть на диск
  • рефакторинг из дизайнера затруднён, например, заменять или переименовывать переменные нельзя, т.е. нужно пройти вручную по всем элементам пакета
  • если файл пакета импортировать в msdb и сразу же экспортировать его обратно в файл, то исходный и полученный файлы различаются; возможно, пакет не изменится, если пакет сохранить на сервере в FileSystem, но тогда теряется возможность делать backup msdb и придётся ещё бекапить файлы. Если пакет в msdb исполняется. то данные об исполненни(например, значения переменных) хранятся прямо в нём. При экспорте в файл получим сильные отличия с исходным файлом.
  • нельзя полноценно работать с .dtsx файлом, например, отлаживать, нужен проект целиком

    SSIS
  • нельзя увидеть свойства уже установленного в MSDB пакета, видно только его название
  • кажется, Process Task не умеет ждать завершения приложения, только учитывать внутри .cmd файла
  • нельзя выполнить из SQL Task create table #q(q int) select * from #q, т.к. он ругается на отсутствующий резалтсет
  • не поддерживаются все возможности sql, например, нельзя получить fullresultset от exec('create table #qwerty(qwerty int)
    select * from #qwerty') или create table #qwerty(qwerty int)
    select * from #qwerty

    Основные претензии, что в этом средстве какое-либо программирование сильно затруднено. Средство только для администраторов, не более того. Хотя я работал с ним не так долго, но эти проблемы огорчили так, что пришлось написать сильно сокращённый свой варианттолько для получения данных, сохранения в файл, отправки по протоколу.
  • 20 май 18, 23:16    [21424318]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Критик
    Member

    Откуда: Москва / Калуга
    Сообщений: 32497
    Блог
    "я пользовался ПО десятилетней почти давности, оно не устроило, да и не хочу разбираться"...

    если поискать, то треть ваших замечаний не актуальна, например, вместо msdb сейчас SSIDB, а треть имеет решение, например
    >>нельзя выполнить из SQL Task create table #q(q int) select * from #q, т.к. он ругается на отсутствующий резалтсет
    EXEC ... WITH RESULT SETS

    и только треть имеет какой-то смысл,
    и уж лучше смириться с этой немного неудобной третью, чем потом вашим преемникам разбираться с вашим нестандартным ПО
    20 май 18, 23:37    [21424327]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    tunknown
    Member

    Откуда:
    Сообщений: 710
    Критик
    "я пользовался ПО десятилетней почти давности, оно не устроило, да и не хочу разбираться"...
    Когда я им пользовался, оно было свежим, кажется, тогда 2012 ещё не вышел. Сейчас ETL для MSSQL мне понадобился снова и я не хотел бы ходить по тем же граблям.

    Критик
    если поискать, то треть ваших замечаний не актуальна
    Можете написать какие? Вдруг, действительно, за эти версии Микрософт улучшил SSIS. В первую очередь интересует отладка и версионирование. Не обо всём можно узнать из BOL.

    Критик
    и уж лучше смириться с этой немного неудобной третью, чем потом вашим преемникам разбираться с вашим нестандартным ПО
    Я привёл свою разработку в пример, в том числе, в доказательство того, что SSIS мне не подошёл. Здесь же спросил специально, чтобы узнать уже существующий легковесный аналог, вместо написания собственного велосипеда.
    21 май 18, 09:16    [21424671]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Критик
    Member

    Откуда: Москва / Калуга
    Сообщений: 32497
    Блог
    >>родные типы SQL поддерживаются только частично, например, varchar(max) нельзя получить в переменную
    почему это нельзя? тут https://stackoverflow.com/questions/11895454/ssis-string-variable-size пишут, что string ограничен лишь объемом памяти

    >>нужно писать специальные версии процедур с учётом обработки типов SSIS, например, со спецобработкой null и некоторых типов данных
    каким образом процедуры относятся к SSIS? никаким

    >>плохая поддержка резалтсетов процедур, нужно явное указание типа возвращаемого резалтсета, т.е. после отладки может потребоваться правка sql скриптов и новая отладка
    один раз указывается WITH RESULT SETS, но это не проблема вообще

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

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

    >>большее время выполнения пакета, чем sql срипта
    отнюдь не всегда, особенно для bulk-операций,
    но в принципе, это ведь логично же, т.к. появляется дополнительный слой обработки данных

    >>не всегда удачное преобразование типов данных из текcтовых значений
    сложные случаи можно обработать отдельно, возможность такая есть

    >>некоторые компоненты не функциональны- FTP task умеет только FTP, SMTP task не умеет письма в HTML, вместо них нужен вызов сторонних компонентов
    конечно компоненты не покрывают на 100% желания абсолютно всех пользователей,
    но оно применимо для абсолютно любой системы

    >>дополнительное программирование, поддержка и накладные расходы на передачу параметров в переменные и обратно, в т.ч. из одного SQL Task в другой(скрипт, разорванный на части)
    ничего сложного

    >>через Execute Package Task нельзя вызвать _любой_ пакет передав ему параметры напрямую, т.е. вызываемый пакет должен быть написан с учётом получения параметров от вызывающего(Package configurations\Parent package variable) или применять DTExec.exe через Execute Process Task
    если есть трудности - передавайте параметры через таблицу в СУБД

    >>некоторые свойства неочевидно установлены по умолчанию
    есть документация

    >>выражения для вычисления переменных не получилось заставить работать
    у меня работает

    >>ручная правка xml файла пакета для рефакторинга иногда невозможна, т.к. используются ссылки на значения, а не сами значения
    да, но xml для ручной правки и не предназначен

    >>сравнение двух версий xml файла одного Package практически невозможно, т.к. положение компонентов в тексте может меняться от незначительных правок в дизайнере и отстствия разделения на скрипты, компоненты и данные визуального представления
    вполне возможно, но несколько трудоемка, сам сравниваю иногда в TFS

    >>стрелки направления процессов в схеме размещаются не произвольно, а только в фиксированных позициях- пересекаются и перекрывают другие элементы
    у меня размещаются произвольно (SSDT 2013)

    >>иногда нельзя протянуть стрелку connection, если уже существует одна- надо передвинуть или удалить все стрелки и попробовать снова
    никогда такого не встречал, ставьте все SP

    >>дизайнер не умеет удобно располагать и автоматически прокручивать схему
    не понял фразу, особенно про "автоматически прокручивать схему"

    >>схемы дизайнера не сохраняются полностью, при открытии сохранённого пакета стрелки съезжают
    у меня сохраняются 1-в-1

    >>настройки некоторых дизайнеров, например, грида показа свойств, переменных- не сохраняются при выходе из visual studio, а по умолчанию- неудобны
    сохраняются, только что проверил, но там настроек-то... только положение окна + сортировка по алфавиту или категории

    >>SSIS transfer job task имеет собственные connection вместо использования общих
    эта штука применяется вообще 1 раз при переезде на другой сервер... не вижу абсолютно никаких проблем

    >>"Unable to step. Not implemented" (или не поддерживается)- нельзя отлаживаться по шагам
    можно, только нужно наставить точки останова

    >>нефункциональный редактор выражений- не отличаются переменные системные и пользовательские, неясное написание формул, модальность окна
    нормальный, особенно, по сравнению с редактором, скажем, в IBM Cognos

    >>В precedence constraint editor есть expression, но нет expression builder
    не возникало ни разу желания писать там мегаформулы, обычно там крайне простые выражения

    >>трудно разрабатывать и отлаживаться по сравнению с логикой на чистом sqlserver из-за того, что SSIS может стоять на боевом и локальном сервере, соответственно, права и окружение разные
    в SSIS уже Environment, где окружение (в т.ч коннекты) берется с конкретного сервера, куда деплоится проект

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

    >>пакет может завершиться с ошибкой, но никакого сообщения не будет, только ничего не значащий код ошибки, которая не описана ни на сайте микрософт, ни в другом месте
    есть такое

    >>пакет может измениться(потребовать сохранения) даже если в дизайнере только даблкликнуть для вызова свойств, что усложняет слежение за изменениями при версионности
    да, в пакет будет записана другой номер версии, это видно, если сравнить их

    >>при даблклике по стрелке она может сдвинуться и пакет изменяется, хотя нужно было просто посмотреть свойства
    в SSDT 2013 ничего не сдвигается

    >>при запуске пакет принудительно сохраняется с изменениями, даже если в дизайнере не было правки. В результате, возникают сложности при работе с системой контроля версий, когда он видит тестовые изменения, которые не должны были попасть на диск
    только что проверил - TFS не делает checkout, если запустить пакет

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

    >>если файл пакета импортировать в msdb...
    msdb уже не актуальна, сейчас SSISDB

    >>нельзя полноценно работать с .dtsx файлом, например, отлаживать, нужен проект целиком
    можно, только в этом случае нужно разрабатывать все на локальных проектных коннектах, что глупо

    >>нельзя увидеть свойства уже установленного в MSDB пакета, видно только его название
    глупое требование, ибо есть возможность поменять свойства динамически

    >>кажется, Process Task не умеет ждать завершения приложения, только учитывать внутри .cmd файла
    в нормальных компаниях у вас просто не будет никаких прав на запуск неизвестных приложений на продуктиве )

    >>нельзя выполнить из SQL Task create table #q(q int) select * from #q, т.к. он ругается на отсутствующий резалтсет
    у меня все работает, только что попробовал для full result set

    >>не поддерживаются все возможности sql, например, нельзя получить fullresultset от exec('create table #qwerty(qwerty int) select * from #qwerty') или create table #qwerty(qwerty int) select * from #qwerty
    попробовал - у меня все работает
    21 май 18, 10:50    [21425041]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Ennor Tiegael
    Member

    Откуда:
    Сообщений: 3078
    tunknown,

    Вот это память! Эк вас зацепило-то, если через 10 лет такой список претензий выкатить можете
    21 май 18, 14:01    [21425858]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Владислав Колосов
    Member

    Откуда:
    Сообщений: 6960
    tunknown,

    вы бы посвежее сервер установили и DataTools.
    21 май 18, 14:25    [21425941]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Гулин Федор
    Member

    Откуда: МИНСК
    Сообщений: 1097
    Владислав Колосов
    tunknown,

    вы бы посвежее сервер установили и DataTools.


    +1
    SSIS 2012 очень большой шаг вперед
    если Целевая бд мс-скл - даже не думать а использовать
    в др. случаях надо сммтреть
    21 май 18, 14:38    [21425998]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    tunknown
    Member

    Откуда:
    Сообщений: 710
    Критик
    >>оверхед на SQL сервере за счёт лишних соединений от SSIS и лишних запросов- новый логин на каждый запрос и опрос информации о выполняемых запросах
    SSIS сам не создает новые логины, если же вы имели ввиду коннекты, то несколько десятков Кб сейчас это вообще ни о чем
    Новый коннект, конечно же. Если нужно что-то срочно проверить на боевом сервере, то фильтр в профилере задать не так просто, при отлове конкретного запуска пакета. При том, что он может запускаться по частому графику и кроме него других пакетов много.

    Ennor Tiegael
    tunknown,

    Вот это память! Эк вас зацепило-то, если через 10 лет такой список претензий выкатить можете
    Это не память, а список из файла. Я ещё тогда написал недостатки на мой взгляд. Потом я с SSIS не работал, думал- не потребуется.
    21 май 18, 16:17    [21426488]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Владислав Колосов
    Member

    Откуда:
    Сообщений: 6960
    tunknown,

    в 2012+ добавили параметры пакета и другие фичи.
    21 май 18, 17:47    [21426787]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    aleks222
    Member

    Откуда:
    Сообщений: 760
    tunknown
    Нужен легковесный аналог SSIS с удобным дизайнером. Полная функциональность не обязательна, нужно только, чтобы мог собрать данные, сохранить в файл и отправить по протоколу. Но чтобы этот малый функционал был отлажен и работал хорошо.


    Лехко.

    T-SQL, BCP или FileTable, DatabaseMail (опционально - Powershell)

    Просто, надежно и незатейливо.
    21 май 18, 18:13    [21426869]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    tunknown
    Member

    Откуда:
    Сообщений: 710
    aleks222
    Лехко.

    T-SQL, BCP или FileTable, DatabaseMail (опционально - Powershell)

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

    Интересует готовый работающий вариант.
    22 май 18, 09:11    [21427705]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    alexeyvg
    Member

    Откуда: Moscow
    Сообщений: 29610
    tunknown,

    ИМХО SSIS - незаконченное поделие, шаг (прыжок!) назад по сравнению со старым DTS, и, конечно, оно было немедленно заморожено в развитии, с момента появления (как это сейчас принято).

    Но сделать замену одному человеку в свободное время нереально. Для своего проекта, сделать фреймворк для конкретной цели (типа ETL для корпоративного варехауза) - да. Но для распространения как общеиспользуемый тулз - не получится.
    22 май 18, 09:26    [21427735]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Дедушка
    Member

    Откуда: Город трёх революций
    Сообщений: 5112
    alexeyvg
    ИМХО SSIS - незаконченное поделие, шаг (прыжок!) назад по сравнению со старым DTS
    позволю себе не согласится с вами коллега :)
    развитие идёт новое в 2017
    да, оно не такое интенсивное как хотелось бы (основное внимание MS уделяет фабрике Azure).
    SSIS как и всякий продукт имеет свои грабли\фичи и набор не интуитивных моментов
    при этом покрывает, наверное, 90% потребностей для ETLя (при умении его готовить и спокойному отношению к "немного пожрать кактус").
    22 май 18, 10:04    [21427891]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    alexeyvg
    Member

    Откуда: Moscow
    Сообщений: 29610
    Дедушка
    alexeyvg
    ИМХО SSIS - незаконченное поделие, шаг (прыжок!) назад по сравнению со старым DTS
    позволю себе не согласится с вами коллега :)
    развитие идёт новое в 2017
    да, оно не такое интенсивное как хотелось бы (основное внимание MS уделяет фабрике Azure).
    SSIS как и всякий продукт имеет свои грабли\фичи и набор не интуитивных моментов
    при этом покрывает, наверное, 90% потребностей для ETLя (при умении его готовить и спокойному отношению к "немного пожрать кактус").
    Scale Out - это фишка для менеджеров, флажок для сейлов.
    И visibility для сотрудников МС, потому что система там такая, что тот, кто будет совершенствовать продукт, закрывает для себя карьерный рост, и в итоге будет уволен.

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

    Им просто нельзя сделать элементарные действия.
    В DTS была вменяемая программная модель, возможность управлять объектами (тасками) программно, возможность управления/изменения из среды управления сиквелом.
    Где это теперь? Это же элементарная базовая функциональность, "маст хэв".

    Где те изменения, которые бы оправдали работу по переписыванию, и изменение программной модели для использования? Даже если забыть про урезание функциональности, может, что то добавилось важное, то, что уменьшит трудозатраты на разработку импорта, увеличит скорость его работы, и т.п.? Нет.
    Сколько уже лет прошло после убийства DTS, и что добавилось для программиста, который хочет, например, импортировать данные в 1С? Или справочник товаров для веб-сайта?

    В общем, это просто яркий провал в целом успешной команде MSSQL.
    Если по инжину, оптимизатору, ещё волнами, не в каждой версии, но есть неплохой прогресс, в программировании (T-SQL) уже заметно меньше, но тоже можно отыскать улучшения, то с SSIS, который был изначально слабым подобием DTS, произошла катастрофа.
    22 май 18, 14:41    [21429082]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Дедушка
    Member

    Откуда: Город трёх революций
    Сообщений: 5112
    alexeyvg
    В DTS была вменяемая программная модель, возможность управлять объектами (тасками) программно
    вы так же можете программно создавать и управлять пакетами через API (пример BIML, я его привожу не как сам по себе, а как пример возможности через свой DSL программно управлять пакетами).
    alexeyvg
    В DTS была ... возможность управления/изменения из среды управления сиквелом.
    общий тренд MS - вся разработка в VS (сам SSMS уже на движке VS), можно это не принимать, но это как с облаками...
    alexeyvg
    Даже если забыть про урезание функциональности
    тут, наверное, стоит конкретизировать, что вы имеете в виду. скорее всего сделать можно просто по другому.
    alexeyvg
    и что добавилось для программиста, который хочет, например, импортировать данные в 1С? Или справочник товаров для веб-сайта?
    если вы про отсутствие соответствующих коннекторов "из коробки", то опять таки это подход MS:
    "мы вам дали расширяемый фреймворк, а дальше вы сами выпилите себе что нужно или это сделают третьи фирмы".
    различных покупных и бесплатных расширений (тасок) довольно много. ну или вы сами можете на C# написать кастомную таску (не говоря уже о просто ScriptTask).
    а про 1C вам нужно уточнить ибо технически это просто сиквел сервер (ну или постгре),
    а если вы про то чтобы ссис понимал модель 1Ски, то реально она меняется от версии к версии и вообще половина реализаций сидят на кастомных конфигурациях.

    alexeyvg
    Scale Out - это фишка для менеджеров, флажок для сейлов.
    почему вы так считаете?

    что касается будущего SSIS... у меня нет инсайда, но имхо его постигнет судьба SSAS MD.
    основное развитие сейчас в дата фабрике эжура и скорее всего будет просто дана возможность развёрнуть локальный сервер (кластер) этой фабрики.
    22 май 18, 15:32    [21429352]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Владислав Колосов
    Member

    Откуда:
    Сообщений: 6960
    Если мне чего-то не хватает я просто - я просто дописываю скрипт на С# или выполняю внешние утилиты. Если рассматривать SSIS как вспомогательное средство автоматизации, которое может использовать SQL Agent, то оно вполне подходяще. Если как коробочный продукт - то нет.
    22 май 18, 18:38    [21430214]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    alexeyvg
    Member

    Откуда: Moscow
    Сообщений: 29610
    Дедушка
    alexeyvg
    и что добавилось для программиста, который хочет, например, импортировать данные в 1С? Или справочник товаров для веб-сайта?
    если вы про отсутствие соответствующих коннекторов "из коробки", то опять таки это подход MS:
    "мы вам дали расширяемый фреймворк, а дальше вы сами выпилите себе что нужно или это сделают третьи фирмы".
    различных покупных и бесплатных расширений (тасок) довольно много. ну или вы сами можете на C# написать кастомную таску (не говоря уже о просто ScriptTask).
    а про 1C вам нужно уточнить ибо технически это просто сиквел сервер (ну или постгре),
    а если вы про то чтобы ссис понимал модель 1Ски, то реально она меняется от версии к версии и вообще половина реализаций сидят на кастомных конфигурациях.
    Я имею в виду обычного программиста, который на работе получает задание от начальника и программирует.

    Изменение программной модели влечёт за собой необходимость переписывания кода и переучивание специалистов.
    То есть оно должно чем то обосновываться.
    Например, после перехода с DTS на SSIS фирма может держать 2 программистов вместо 4, потому что новая модель SSIS повысила производительность труда.
    Или, переписанный на SSIS модуль ETL стал делать импорт данных за 1 час вместо 8 часов.

    Я этого не увидел. Именно как преимущество программной модели. Если сейчас, через 20 лет, появились новые коннекторы, так их можно было написать и для DTS
    Дедушка
    alexeyvg
    Даже если забыть про урезание функциональности
    тут, наверное, стоит конкретизировать, что вы имеете в виду. скорее всего сделать можно просто по другому.
    Например, возможность повесить обработчики на события в таске, управляя из них как самим таском, так и другими тасками и пакетом в целом.


    Дедушка
    alexeyvg
    В DTS была ... возможность управления/изменения из среды управления сиквелом.
    общий тренд MS - вся разработка в VS (сам SSMS уже на движке VS), можно это не принимать, но это как с облаками...
    Да-да, вот я и не принимаю, про это мой пост.

    Что потом?
    Просмотр Джобов из Visual Studio, причём для каждой версии сервера, к которому подключился, нужна будет своя версия студии? Джобы - это ведь в чистом виде разработка, как и SSIS?
    А хранимые процедуры? Ну вы поняли.

    Я не против права MS выстраивать концепции своих продуктов так, как им заблагорассудится, но у меня есть право это оценивать, и я говорю, что такое решение - унылое г.
    И множество разработчиков со мной согласны, SSIS представляется слишком тяжёловесным, неудобным в эксплуатации, в частности, и из за плясок с VS - да, это не так, как видится эффективным менеджерам - поставил сиквел и студию, и работай, жизнь - она сложная, с разными серверами и разными сиквелами, не всегда удобными способами доступа, отсутствием виндовых акутоидентификаций, тихих неофициальных залезаний на серверы клиента и т.п. И вот необходимость устанавливать VS с SSDT вызывает дикую головную боль.
    22 май 18, 18:59    [21430284]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    alexeyvg
    Member

    Откуда: Moscow
    Сообщений: 29610
    Дедушка
    alexeyvg
    В DTS была вменяемая программная модель, возможность управлять объектами (тасками) программно
    вы так же можете программно создавать и управлять пакетами через API (пример BIML, я его привожу не как сам по себе, а как пример возможности через свой DSL программно управлять пакетами).
    Я бы так и ответил, если бы работал в МС и отвечал на вопросы менеджеров во время менеджерских войн. Галочку "программируемость" поставить можно. BIML же.

    Но вот на практике...

    Есть например куча файлов Эксель, программист их должен импортировать.
    Они содержат колонки, которые надо импортировать, но так же и другие, которые не надо. Или, например, имя колонки, откуда брать данные, зависит от имени файла.

    Вот что бы сделать это всё используя BIML, нужно быть, во первых, Руссиновичем, во вторых, при чём тут собственно SSIS? Нужно будет просто налабать программу импорта на C#, используя некую библиотеку. Основная работа не будет сделана в редакторе SSIS пакета.
    А в DTS можно было нарисовать простой импорт, потом написать одну-две строки обработчика события и опа - всё готово. И Руссиновичу тут делать нечего, достаточно простого "эй-программист!"
    22 май 18, 19:12    [21430312]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Владислав Колосов
    Member

    Откуда:
    Сообщений: 6960
    alexeyvg,

    автор
    имя колонки, откуда брать данные, зависит от имени файла

    Сурово, авторы реляционной механики в гробу переворачиваются :)
    22 май 18, 19:20    [21430325]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    alexeyvg
    Member

    Откуда: Moscow
    Сообщений: 29610
    Владислав Колосов
    alexeyvg,

    автор
    имя колонки, откуда брать данные, зависит от имени файла

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

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

    Однако бизнес очень разный, и успешен будет инструмент, который позволяет делать всё. Как. например, классические ЯП.

    Насчёт реляционных механизмом, кстати - знаете историю возникновения интернета, то есть WEB-а? Когда отказались от поддержания реляционно-правильной ссылочнойц целостности, и случилось чудо?
    Вот как в реальном мире нереально существование реляционно-правильного браузера и веб-сервера, так же не будет успешен ETL, авторы которого плюют в разработчиков своим снобизмом, хотят наваять что то воздушно-прикольное, а не тупо ублажают своим кодом клиента - нашего брата-разработчика.
    22 май 18, 20:11    [21430401]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Критик
    Member

    Откуда: Москва / Калуга
    Сообщений: 32497
    Блог
    alexeyvg
    Есть например куча файлов Эксель, программист их должен импортировать.
    Они содержат колонки, которые надо импортировать, но так же и другие, которые не надо. Или, например, имя колонки, откуда брать данные, зависит от имени файла.

    Вот что бы сделать это всё используя BIML, нужно быть, во первых, Руссиновичем, во вторых, при чём тут собственно SSIS? Нужно будет просто налабать программу импорта на C#, используя некую библиотеку. Основная работа не будет сделана в редакторе SSIS пакета.
    А в DTS можно было нарисовать простой импорт, потом написать одну-две строки обработчика события и опа - всё готово. И Руссиновичу тут делать нечего, достаточно простого "эй-программист!"


    Эээ, но в SSIS так же.
    Просто я делал я такие обработки "немного разных" экселей - просто используется скрипт-компонент как источник данных. И делается это все не выходя из SSIS )
    22 май 18, 22:45    [21430657]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Ferdipux
    Member

    Откуда: Москва
    Сообщений: 511
    alexeyvg
    Но вот на практике...

    Есть например куча файлов Эксель, программист их должен импортировать.
    Они содержат колонки, которые надо импортировать, но так же и другие, которые не надо. Или, например, имя колонки, откуда брать данные, зависит от имени файла.

    Вот что бы сделать это всё используя BIML, нужно быть, во первых, Руссиновичем, во вторых, при чём тут собственно SSIS? Нужно будет просто налабать программу импорта на C#, используя некую библиотеку...

    Гм, SSIS - это не просто ценный мех... Скорее - среда исполнения и разработки, где можно заниматься GUI-программированием, а значит - вместо программистов могут быть индусы и т.п. Плюс некая организация храниния и логгирования появилась с 2012, наконец-то.
    Похожий на ваш случай решал через Script Transform - когда он выступает как источник данных, и дальше сбрасывает данные в SSIS трансформацию данных. Это если задача однократная. Там все довольно просто - описал имена колонок и типы данных на выходе и поехали.
    Когда нужен был тираж и отчуждаемость - пришлось писать свою SSIS компоненту, и вот здесь копание в модели SSIS потребовалось не в пример большее.
    У SSIS, ИМХО, есть особенность подхода - типы данных и их названия прибиты гвоздями на этапе разработки. Поэтому абсолютная вариативность не достижима даже с BIML, все равно необходимо данные сводить к некоей определенной на этапе разработки схеме.
    23 май 18, 10:06    [21431165]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Дедушка
    Member

    Откуда: Город трёх революций
    Сообщений: 5112
    alexeyvg
    Есть например куча файлов Эксель, программист их должен импортировать.
    Они содержат колонки, которые надо импортировать, но так же и другие, которые не надо. Или, например, имя колонки, откуда брать данные, зависит от имени файла.

    А в DTS можно было нарисовать простой импорт, потом написать одну-две строки обработчика события и опа - всё готово. И Руссиновичу тут делать нечего, достаточно простого "эй-программист!"

    т.к. SSIS сидит на движке .NET и организация Data Flow состоит из построения пайплайна буферов,
    то он сильно завязан на метаданные маппинга от источника в назначение (для построения и оптимизации этих буферов).
    поэтому из коробки нет динамики на дата-флоу.
    при этом т.к. фреймворк расширяемый вы можете сами написать нужный вам компонент или инсталлировать сторонний.
    например, "Data Flow Plus" от cozyroc умеет делать динамический маппинг в рантайме.
    23 май 18, 10:22    [21431232]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    alexeyvg
    Member

    Откуда: Moscow
    Сообщений: 29610
    Критик
    просто используется скрипт-компонент как источник данных

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

    Да, ну я про это и пишу, процитирую себя: "Нужно будет просто налабать программу импорта на C#, используя некую библиотеку. Основная работа не будет сделана в редакторе SSIS пакета."

    Это "просто"? Это "среда исполнения и разработки, где можно заниматься GUI-программированием, а значит - вместо программистов могут быть индусы и т.п."?
    Это в DTS мог любой индус накропать такую типовую задачку мышкой, а тут придётся много и сложно программировать.

    Зачем мне возиться с программированием импорта их эксель-файла, ведь это делается в конструкторе пакета SSIS? Мне нужно просто немного изменить поведение источника. Идеально - немного подправить перед исполнением уже настроенный в таске DataFlow импорт. Как я это делал в DTS.

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

    Был у нас такой пакет. (мы не писали свою компоненту, мы создавали DataFlow task компоненты на лету из скрипт таска. Но это примерно близко по степени углубления в модель)

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

    Был он написан для решения "сложной" задачи - копирования строк из таблиц базы Оракла в таблицы базы Сиквела.
    Невероятно нестандартная задача, да? Гы.
    Конечно, для её решения приходится брать выпускников MIT и Кэмбриджа, тех из них, кто ещё не успел замутить свой фейсбук.
    Это очень, очень удобно для бизнеса, особенно малого.
    23 май 18, 21:10    [21433940]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Сон Веры Павловны
    Member

    Откуда:
    Сообщений: 5257
    alexeyvg
    Это просто какой то невероятный гуру его написал, я не знаю, сколько мне бы времени понадобилось, что бы написать его с нуля - в готовом то я уже разобрался, это легче.

    Был он написан для решения "сложной" задачи - копирования строк из таблиц базы Оракла в таблицы базы Сиквела.
    Невероятно нестандартная задача, да? Гы.
    Конечно, для её решения приходится брать выпускников MIT и Кэмбриджа, тех из них, кто ещё не успел замутить свой фейсбук.
    Это очень, очень удобно для бизнеса, особенно малого.

    Именно по этой причине у нас, например, SSIS вообще практически не используется - зачем он нужен, когда есть штатные программисты, которые то же копирование из оракла в сиквел сделают за 20 минут, и и решение уместится в пару десятков строк кода, абсолютно понятного, стандартного, и без использования сторонних библиотек?
    24 май 18, 06:24    [21434625]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Ferdipux
    Member

    Откуда: Москва
    Сообщений: 511
    alexeyvg,

    Корректируя вопрос ТС - нужен аналог SSIS, но по гибкости похожий на DTS.
    Для бизнеса "ловушка" SSIS в том, что он "бесплатный", то есть если есть лицензии MS SQL - SSIS там уже включен, уменьшить цену исключая SSIS нельзя. Вот и пилите ETL на том, что есть - за него уже уплочено.

    Альтернативы - Talend, Pentaho - ? Крутил их недостаточно, чтобы сказать - можно ли реализовать сценарий "гибкого DTS". К тожу же бесплатны только Community версии, которые ограничены.
    24 май 18, 09:19    [21434788]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    alexeyvg
    Member

    Откуда: Moscow
    Сообщений: 29610
    Ferdipux
    Для бизнеса "ловушка" SSIS в том, что он "бесплатный", то есть если есть лицензии MS SQL - SSIS там уже включен, уменьшить цену исключая SSIS нельзя. Вот и пилите ETL на том, что есть - за него уже уплочено.

    Альтернативы - Talend, Pentaho - ? Крутил их недостаточно, чтобы сказать - можно ли реализовать сценарий "гибкого DTS". К тожу же бесплатны только Community версии, которые ограничены.
    В общем, Дедушка прав, говоря:
    Дедушка
    вы можете ... инсталлировать сторонний.
    например, "Data Flow Plus" от cozyroc умеет делать динамический маппинг в рантайме.

    Можно найти сторонние компоненты, и цена будет в общем нулевая по сравнению с стоимостью сиквела.

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

    Во вторых, ну где же эта маст-хэв функциональность в коробке с MSSQL, за 13 лет и кучу версий можно было написать?
    Речь то о простейших и необходимейших вещах. Разработчики, не сомневаюсь, заметили бы такой прогресс и трубили бы об этом на каждом углу, в отличие от хипстерского ScaleOut и иже с ним.

    Это мы всё обсуждаем один упомянутый мной пример, потому что он про регресс SSIS vs DTS, а ведь я могу назвать ещё несколько, о нужных и полезных усовершенствованиях, которые можно было бы сделать, если бы MS занималась продуктом.

    Например, вбрасываю необходимость простого распараллеливания задач, что бы типовой таск (блок) можно было бы запустить в параллель в нескольких экзесплярах. Что то вроде For Loop Container, но распараллеливающего, назову его For Parallel Container. О, сколько бранных слов произносится разработчиками при копировании блока много раз с последующим изменением в каждом из них, что бы распараллелить какой то импорт!
    24 май 18, 09:51    [21434943]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    alexeyvg
    Member

    Откуда: Moscow
    Сообщений: 29610
    alexeyvg
    Дедушка
    общий тренд MS - вся разработка в VS (сам SSMS уже на движке VS), можно это не принимать, но это как с облаками...
    Да-да, вот я и не принимаю, про это мой пост.
    Кстати, хочу ещё заметить, что в SSMS встроен совершенно полноценный редактор SSIS пакетов. Без всяких вижуалстудий.
    Но его использование запрещено MS-ом по "политическим причинам".
    Вот я и не понимаю, какой профит это решение приносит разработчикам и бизнесу? Сколько бабла получает ежемесячно автосервис из за запрета использовать SSMS для редактирования SSIS пакетов без установки Visual Studio? МС как то стал забывать, для кого он работает, Билл, вернись!!! :-)
    24 май 18, 10:00    [21434991]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Ferdipux
    Member

    Откуда: Москва
    Сообщений: 511
    alexeyvg

    Например, вбрасываю необходимость простого распараллеливания задач, что бы типовой таск (блок) можно было бы запустить в параллель в нескольких экзесплярах. Что то вроде For Loop Container, но распараллеливающего, назову его For Parallel Container. ...


    Пилил, то есть писал похожее как кастомный For iterator, брал на вход списки определенного вида и в параллель запускал пакеты, имя определяется по шаблону, с органичением параллельности.
    Работало, но самописка, интерфейс никакой и т.п. Не развиваю.

    Все опять упирается в модель MS - "мы вам на входе базовый конструктор, а допиливают его партнеры". Вот и появляются дополнения в виде CozyRoc - оно хорошо, но по факту недоступно. Бюрократия...
    24 май 18, 11:01    [21435383]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    tunknown
    Member

    Откуда:
    Сообщений: 710
    Добавим в недостатки SSIS ещё пункт:
  • Несовместимость пакетов, созданных некоторыми версиями Visual Studio
  • 20 авг 18, 09:10    [21647598]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    tunknown
    Member

    Откуда:
    Сообщений: 710
    Всё меньше и меньше смысла пользоваться поделками m$ :-( в т.ч. из-за ошибок.
    22 янв 19, 09:20    [21790791]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Alexander Us
    Member

    Откуда:
    Сообщений: 1079
    tunknown,

    Visual Studio
    + SqlBulkCopy
    + EPPlus (установка через NuGet)
    22 янв 19, 13:51    [21791079]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    tunknown
    Member

    Откуда:
    Сообщений: 710
    Ещё недостаток SSIS, хотя и не самый существенный:

    Службы SQL Server Integration Services (SSIS) — среда SSMS версии 17.x и более поздней не поддерживает подключение к устаревшим службам SQL Server Integration Services.

    Потребность в списке аналогов актуальна.
    11 окт 19, 09:59    [21991853]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Владислав Колосов
    Member

    Откуда:
    Сообщений: 6960
    tunknown,

    зоопарк версий - это один из существенных недостатков архитектуры целом."Разруха не в клозетах, а в головах".
    11 окт 19, 12:20    [21992030]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    tunknown
    Member

    Откуда:
    Сообщений: 710
    Владислав Колосов
    зоопарк версий - это один из существенных недостатков архитектуры целом."Разруха не в клозетах, а в головах".
    Один из главных организаторов зоопарка в этой цепочке- Микро$офт(небольшой троллинг внутри). Зоопарк у пользователя не всегда причина, а часто- следствие. Хотя и с самого пользователя ответственность не снимается.
    11 окт 19, 13:31    [21992113]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Владислав Колосов
    Member

    Откуда:
    Сообщений: 6960
    tunknown,

    Вы пишете
    "Службы SQL Server Integration Services (SSIS) — среда SSMS версии 17.x и более поздней не поддерживает ...."
    и пеняете на MS, но не хотите использовать ту версию, которая предназначена для работы с версией сервера. Надо же понимать, что, несмотря на название, это разные приложения и должны эксплуатироваться с подобающим ПО в комплекте.
    11 окт 19, 14:13    [21992161]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    tunknown
    Member

    Откуда:
    Сообщений: 710
    Владислав Колосов
    это разные приложения и должны эксплуатироваться с подобающим ПО в комплекте.
    Как вы думаете, есть ли шанс запустить хранимую процедуру, написанную во времена 6.5 на sql 2019? SSIS такого не позволяет.
    11 окт 19, 15:38    [21992286]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    msLex
    Member

    Откуда:
    Сообщений: 7001
    tunknown
    Как вы думаете, есть ли шанс запустить хранимую процедуру, написанную во времена 6.5 на sql 2019? SSIS такого не позволяет.

    Шанс, конечно, есть, но не то чтоб большой.
    11 окт 19, 15:41    [21992292]     Ответить | Цитировать Сообщить модератору
     Re: Легковесные аналоги SSIS  [new]
    Владислав Колосов
    Member

    Откуда:
    Сообщений: 6960
    tunknown,

    нет, процедуры, написанные для 6.5 надо использовать совместно с 6.5 же сервером. или произвести адаптацию для нужных версий. Приложения Win95, скорее всего, не заработают на Win10 и это правильно. Так и с пакетами. Однако, MS пошли навстречу и студия автоматически преобразует проект пакетов в новую версию. Даже если вы потеряли или никогда не вели проект, можно создать новое решение, загрузить в него пакет, преобразовать и опубликовать на сервер.
    11 окт 19, 17:34    [21992445]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: 1 2      [все]
    Все форумы / Microsoft SQL Server Ответить