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

Откуда:
Сообщений: 428
SQL 2012.

Как я полял из документации, SSIS проект, размещенный в каталоге Integration Services сервера MS SQL, реально хранится где-то в базе SSISDB. Без SSISDB каталог не может содержать проектов.
Из каталога можно экспортировать проект в файл ispac - фактически это архив zip, но где именно в базе он лежит?
В таблицах и вьюхах SSISDB можно найти информацию по проекту SSIS - список пакетов, окружений, настроек,но найти исходников я не смог.

Более конкретный вопрос - как запросом SQL узнать , на какой конфигурационный файл ссылаются пакеты проекта, какой у него путь на диске.
1 апр 16, 16:18    [19006010]     Ответить | Цитировать Сообщить модератору
 Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
мигель1
Member

Откуда:
Сообщений: 3236
Тоже интересно
1 апр 16, 17:17    [19006270]     Ответить | Цитировать Сообщить модератору
 Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
makondo
но найти исходников я не смог.

А вы себе как представляете исходник проекта то ?
1 апр 16, 19:59    [19006807]     Ответить | Цитировать Сообщить модератору
 Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
makondo
Как я полял из документации, SSIS проект, размещенный в каталоге Integration Services сервера MS SQL, реально хранится где-то в базе SSISDB. Без SSISDB каталог не может содержать проектов.
Из каталога можно экспортировать проект в файл ispac - фактически это архив zip, но где именно в базе он лежит?
В таблицах и вьюхах SSISDB можно найти информацию по проекту SSIS - список пакетов, окружений, настроек,но найти исходников я не смог.
Проект - это пакет?

Он лежит в базе msdb, в таблице sysssispackages, в поле packagedata.
1 апр 16, 21:59    [19007288]     Ответить | Цитировать Сообщить модератору
 Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
makondo
Member

Откуда:
Сообщений: 428
alexeyvg,
спасибо.
Посмотрю.
1 апр 16, 23:49    [19007701]     Ответить | Цитировать Сообщить модератору
 Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
makondo
Member

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

как xml - набор xml пакетов.
1 апр 16, 23:49    [19007706]     Ответить | Цитировать Сообщить модератору
 Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
Ferdipux
Member

Откуда: Москва
Сообщений: 594
alexeyvg
makondo
Как я полял из документации, SSIS проект, размещенный в каталоге Integration Services сервера MS SQL, реально хранится где-то в базе SSISDB.
Проект - это пакет?

Он лежит в базе msdb, в таблице sysssispackages, в поле packagedata.


Это верно только для режима без каталога IS (до SSIS 2012).
2 апр 16, 09:25    [19008102]     Ответить | Цитировать Сообщить модератору
 Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
Ferdipux
Member

Откуда: Москва
Сообщений: 594
makondo
SQL 2012.
Из каталога можно экспортировать проект в файл ispac - фактически это архив zip, но где именно в базе он лежит?
В таблицах и вьюхах SSISDB можно найти информацию по проекту SSIS - список пакетов, окружений, настроек,но найти исходников я не смог.

Более конкретный вопрос - как запросом SQL узнать , на какой конфигурационный файл ссылаются пакеты проекта, какой у него путь на диске.


Пакет лежит (мое ХО) - в таблице [SSISDB].[internal].[object_versions] поле [object_data].

Ответ на второй вопрос - только получить байтовую последовательность, распаковать как архив zip, из него открыть требуемый файл пакета, затем - распарсить XML. Если хотите все это уместить в SQL запрос - видимо, придется писать свою CLR процедуру.
2 апр 16, 10:31    [19008171]     Ответить | Цитировать Сообщить модератору
 Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
Ferdipux
Member

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

Сорри, в таблице object_versions лежит проект, не пакет.
2 апр 16, 10:32    [19008172]     Ответить | Цитировать Сообщить модератору
 Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
makondo
Member

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

спасибо, проверю.
А пакетов отдельно, значит, нет? Или не знаете?

И проект .. - в каком виде он лежит? Содержание файла ispac ? То есть весь зазипованный проект со всеми пакетами?
4 апр 16, 02:10    [19012499]     Ответить | Цитировать Сообщить модератору
 Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
makondo
Glory,

как xml - набор xml пакетов.

С чего это вдруг xml ?

catalog.get_project (SSISDB Database)
Retrieves the binary stream of a project that has been deployed to the Integration Services server.

get_project [ @folder_name = ] folder_name , [ @project_name = ] project_name
Arguments
[ @folder_name = ] folder_name
The name of the folder that contains the project. folder_name is nvarchar(128).
[ @project_name = ] project_name
The name of the project. project_name is nvarchar(128).

Return Code Value
0 (success)

Result Sets
The binary stream of the project is returned as varbinary(MAX). No results are returned if the folder or project is not found.
4 апр 16, 08:39    [19012677]     Ответить | Цитировать Сообщить модератору
 Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
makondo
Более конкретный вопрос - как запросом SQL узнать , на какой конфигурационный файл ссылаются пакеты проекта, какой у него путь на диске.

Может так ?

catalog.get_parameter_values (SSISDB Database)

Resolves and retrieves the default parameter values from a project and corresponding packages in the Integration Services catalog.
4 апр 16, 08:45    [19012686]     Ответить | Цитировать Сообщить модератору
 Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
Ferdipux
Member

Откуда: Москва
Сообщений: 594
makondo
А пакетов отдельно, значит, нет? Или не знаете?

И проект .. - в каком виде он лежит? Содержание файла ispac ? То есть весь зазипованный проект со всеми пакетами?


Думаю, что пакетов отдельно нет. Так как:
  • Отдельно от проектов пакеты не деплоятся, до 2016 это так (хочу поставить 2016 и посмотреть как там - вроде это ограничение сняли)
  • В таблице object_versions только объекты с типом 20 - проекты

    Лежит - в хз каком виде. Это точно не zip поток, скорее он обработанный некоторой функцией. Явно не прочитаешь. Только через хранимку
    catalog.get_project
    
    .

    К вашему исходному вопросу
    makondo
    как запросом SQL узнать , на какой конфигурационный файл ссылаются пакеты проекта, какой у него путь на диске.


    Начиная с SSIS 2012 подход package configuration считается устаревшим, и активно заменяется на параметры пакета, проекта и переменные среды SSISDB. Конфигурация пакетов не отражается в структуре SSISDB (как устаревшая) и IMHO единственный путь получить вам желаемое - выгрузить проект, получить из неко пакет как XML текст, парситью
  • 4 апр 16, 10:33    [19013144]     Ответить | Цитировать Сообщить модератору
     Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
    ппп-пп
    Guest
    Ferdipux
    Начиная с SSIS 2012 подход package configuration считается устаревшим, и активно заменяется на параметры пакета, проекта и переменные среды SSISDB. Конфигурация пакетов не отражается в структуре SSISDB (как устаревшая) и IMHO единственный путь получить вам желаемое - выгрузить проект, получить из неко пакет как XML текст, парситью


    Мне кажется, что package deployment model - это не что-то устаревшее, скорее как говорит Microsoft legacy.
    Т.е. сейчас есть 2 опции - выбирай какую хочешь.
    4 апр 16, 12:02    [19013688]     Ответить | Цитировать Сообщить модератору
     Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
    makondo
    Member

    Откуда:
    Сообщений: 428
    Glory,
    к сожалению, нет. Ссылка на конфигурационный файл находится в пакете dtsx, который в проекте.
    Если отрыть пакет, в xml это теги <DTS:Configurations><DTS:Configuration DTSConfigurationString="C:\.......\Master-Config_file.dtsconfig">
    Другие пакеты также настроены на него таким же образом.


    К сожалению, менять сейчас это на создание среды SSISDB я не могу, возможно, в будущем будет возможность.
    catalog.get_parameter_values не возвращает эту переменную.

    Вызов exec catalog.get_project 'MyFolder', 'MyProject' возвращает нечто странное - в текстовом виде hex типа 0x504B......
    Интересно было бы его конвертнуть в бинарную строку и посмотреть, но заморачиваться с этим прямо сейчас долго.
    Желательно найти что-то готовое к применению.
    Но не исключено, что буду писать конвертер, если не найду.. )
    4 апр 16, 14:29    [19014519]     Ответить | Цитировать Сообщить модератору
     Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
    makondo
    Member

    Откуда:
    Сообщений: 428
    Да, еще. Начало 16ричного текста 0x504B... указывает на заголовок архива zip ( PK... ), но опять же- муторно это все...
    4 апр 16, 14:31    [19014534]     Ответить | Цитировать Сообщить модератору
     Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
    Glory
    Member

    Откуда:
    Сообщений: 104751
    makondo
    к сожалению, нет. Ссылка на конфигурационный файл находится в пакете dtsx, который в проекте.

    ну так catalog.get_parameter_values
    object_type
    smallint
    The type of parameter. The value is 20 for a project parameter and the value is 30 for a package parameter.

    makondo
    Вызов exec catalog.get_project 'MyFolder', 'MyProject' возвращает нечто странное - в текстовом виде hex типа 0x504B......

    Это не hex. Это визуализация varbinary данных в студии

    Result Sets
    The binary stream of the project is returned as varbinary(MAX). No results are returned if the folder or project is not found.
    4 апр 16, 14:33    [19014547]     Ответить | Цитировать Сообщить модератору
     Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
    makondo
    Member

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

    короче, я нашел способ вытащить, что мне нужно, но не из проекта\пакета.

    Решение можно получить из логов SSISDB: здесь пример

    Но если увидите решение доступа к тексту пакета - напишите, плз.
    Интересно же )
    4 апр 16, 14:48    [19014700]     Ответить | Цитировать Сообщить модератору
     Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
    a_voronin
    Member

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

    А вот так сделать вам не подойдёт?

    http://www.mssqlgirl.com/editing-published-ssis-package-in-sql-server-2012.html
    4 апр 16, 15:28    [19015007]     Ответить | Цитировать Сообщить модератору
     Re: Где в SSISDB лежат проекты и пакеты SSIS ?  [new]
    Ferdipux
    Member

    Откуда: Москва
    Сообщений: 594
    makondo
    Да, еще. Начало 16ричного текста 0x504B... указывает на заголовок архива zip ( PK... ), но опять же- муторно это все...

    Все правильно - вам приходит бинарный поток .ispac файла.
    Про муторность - на вкус и цвет... IMHO вполне можно написать код - распаковать и пойти по dtsx файлам, например, с помощью dotnetzip.codeplex.com.
    4 апр 16, 15:55    [19015201]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft SQL Server Ответить