Visual studio integration services

Microsoft

This project may be used for building high performance data integration and workflow solutions, including extraction, transformation, and loading (ETL) operations for data warehousing.

Visit https://techcommunity.microsoft.com/t5/SQL-Server-Integration-Services/bg-p/SSIS for the latest information, tips, news, and announcements about SSIS directly from the product team.

IMPORTANT: since version 3.3, Power Query Source for SQL Server 2017 and Microsoft Oracle Connector for SQL Server 2019 have been excluded from the installation of this product. To continue using these two components, please manually download and install them by yourselves. Here are the download links: Power Query Source for SQL Server 2017 and 2019, Microsoft Oracle Connector for SQL Server 2019

To design packages using Oracle and Teradata connectors and targeting an earlier version of SQL server prior to SQL 2019, in addition to the Microsoft Oracle Connector for SQL 2019 and Microsoft Teradata Connector for SQL 2019, you need to also install the corresponding version of Microsoft Connector for Oracle and Teradata by Attunity.

Sometimes this product or Visual Studio Tools for Applications 2019 may be somehow deleted during VS instance upgrade. If your existing SSIS projects cannot be loaded, please try to repair this product via control panel. If VS doesn’t pop up when clicking on "Edit Script", please try to repair VSTA 2019 via control panel. We’ve reported this issue to VS team. Sorry for any inconvenience.

VS Community does not support offline activation. To use this product with VS Community, you must login to your Microsoft account in VS Community. If you want to use this product in a totally offline environment, we recommend you to install this product on VS Professional or Enterprise, which support offline activation.

Version 3.3 (Current Version):

  • Release Date: December 25th, 2019
  • Build Version: 15.0.2000.68
  • This is the general available (GA) release.
  • What’s New:
    1. Removed the inbox component Power Query Source for SQL Server 2017. Now we have announced Power Query Source for SQL Server 2017 & 2019 as out-of-box component, which can be downloaded here.
    2. Removed the inbox component Microsoft Oracle Connector for SQL Server 2019. Now we have announced Microsoft Oracle Connector for SQL Server 2019 as out-of-box component, which can be downloaded here.
    3. Added localization support for designer UI when target server version is SQL Server 2012. Please refer to the release notes of version 3.2 for the full list of supported languages.
    4. Bug Fixes:
      1. Fixed an issue that SSIS debugger may occasionally fail to be launched due to IDtsHost interface not registered when target server version is SQL Server 2017 or 2019.
      2. Fixed an issue that there are duplicated "Integration Services Project" template in "Create a new project" dialog.
      3. Fixed an issue that "Integration Services Project" and "Integration Services Import Project Wizard" cannot be searched with keyword "SSIS" in "Create a new project" dialog.
      4. Fixed an issue that ODBC components UI layout is not displayed properly in high DPI mode.
      5. Fixed an issue that OLE DB connection manager UI is not displayed correctly when the provider is selected as "Microsoft OLE DB Driver for SQL Server" (MSOLEDBSQL).
      6. Known issues:
        1. SQL Server Native Client (SQLNCLI11.1) is deprecated and not installed by VS2019. We recommend upgrading to the new Microsoft OLE DB driver for SQL Server. If you want to continue using SQL Server Native Client, you can download and install it from here.
        2. SSIS Execute Package Task doesn’t support debugging when ExecuteOutOfProcess is set to True.

        Version 3.2.2 Preview:

        • Release Date: November 28th, 2019
        • Download SQL Server Integration Services Projects 3.2.2 Preview
        • Build Version: 15.0.1900.80
        • This is the second hotfix release for version 3.2 preview. We do not recommend using it for production. You don’t need to upgrade to this version unless you hit the issue mentioned below.
        • Bug Fixes:
          1. Fixed an issue that Visual Studio stopped responding when trying to connect to SSIS Integration Runtime in Azure Data Factory or opening a project that was connected to SSIS Integration Runtime.
          2. Known issues:
            1. SQL Server Native Client (SQLNCLI11.1) is deprecated and not installed by VS2019. We recommend upgrading to the new Microsoft OLE DB driver for SQL Server. If you want to continue using SQL Server Native Client, you can download and install it from here.
            2. SSIS Execute Package Task doesn’t support debugging when ExecuteOutOfProcess is set to True.
            3. When the target server version is set to SQL Server 2012, the display language will always be English.

            Version 3.2.1 Preview:

            • Release Date: November 19th, 2019
            • Download SQL Server Integration Services Projects 3.2.1 Preview
            • Build Version: 15.0.1900.78
            • This is a hotfix release for version 3.2 preview. We do not recommend using it for production. You don’t need to upgrade to this version unless you hit the issue mentioned below.
            • Bug Fixes:
              1. Fixed an issue that VS may throw TypeLoadException from assembly ‘Microsoft.DataWarehouse.VsIntegration, Version=15.6.0.0’ when designing the package.
              2. Known issues:
                1. SQL Server Native Client (SQLNCLI11.1) is deprecated and not installed by VS2019. We recommend upgrading to the new Microsoft OLE DB driver for SQL Server. If you want to continue using SQL Server Native Client, you can download and install it from here.
                2. SSIS Execute Package Task doesn’t support debugging when ExecuteOutOfProcess is set to True.
                3. When the target server version is set to SQL Server 2012, the display language will always be English.

                Version 3.2 Preview:

                • Release Date: November 5th, 2019
                • Download SQL Server Integration Services Projects 3.2 Preview
                • Build Version: 15.0.1900.73
                • This is the third and the last preview release. We do not recommend using it for production.
                • What’s New:
                  1. Fixed major UI layout issues in high DPI mode.
                  2. Upgraded .NET framework version to 4.7 for script task/component when the target server version is SQL Server 2019
                  3. Added ConnectByProxy property in ODBC Connection Manager so as to support enabling self-hosted Integration Runtime as proxy in ODBC connection manager.
                  4. Added localization support for the installer and the designer UI when the target server version is SQL Server 2014, or 2016. Now we support following languages:
                  • Chinese (Simplified)
                  • Chinese (Traditional)
                  • English (United States)
                  • French
                  • German
                  • Italian
                  • Japanese
                  • Korean
                  • Portuguese (Brazil)
                  • Russian
                  • Spanish
                  Читайте также:  Записать видео на диск для dvd плеера
                • Bug Fixes:
                  1. Fixed an issue that users could not add new data sources under package deployment mode.
                  2. Fixed an issue that users could not debug script task/component if the code used any new syntaxes introduced after .NET 4.5.
                  3. Fixed an issue that data viewer, variable window, getting started window and SSIS toolbox could not be displayed properly if .NET 4.8 is installed.
                  4. Fixed an issue that creating the first Data Factory in Azure subscription via Integration Runtime Creation Wizard might fail due to Data Factory resource provider not being registered.
                  5. Fixed an issue that the SSIS in ADF Connection Wizard could not display the Azure storage account list correctly when there was a file only storage account in the subscription.
                  6. Fixed an issue that "Execute in Azure" did not work when the package included a container.
                  7. Fixed an issue that char(n char) and varchar2(n char) were mapped to incorrect DTS types in Oracle Connector.
                  8. Known issues:
                    1. SQL Server Native Client (SQLNCLI11.1) is deprecated and not installed by VS2019. We recommend upgrading to the new Microsoft OLE DB driver for SQL Server. If you want to continue using SQL Server Native Client, you can download and install it from here.
                    2. SSIS Execute Package Task doesn’t support debugging when ExecuteOutOfProcess is set to True.
                    3. When the target server version is set to SQL Server 2012, the display language will always be English.
                    4. Version 3.1 Preview:

                      • Release Date: July 8th, 2019
                      • Download SQL Server Integration Services Projects 3.1 Preview
                      • Build Version: 15.0.1301.433
                      • This is the second preview release. We do not recommend using it for production.
                      • What’s New:
                        1. Add AzureEnabled feature. Enable packages of the project to be run on SSIS Platform-as-a-Service (PaaS) in Azure Data Factory.
                        2. Bug Fixes:
                          1. Fix an issue that Oracle connector properties are not able to be set from variable expression
                          2. Fix an issue that Oracle connector has VS_NEEDSNEWMETATDATA error when debugging packages targeted to pre-SQL Server 2019
                          3. Fix an issue that Oracle connector failed to upgrade/downgrade package/project if the package/project uses expressions for connection manager’s properties.
                          4. Fix an issue that Download WSDL button of Web Service Task Editor doesn’t support TLS 1.1 & 1.2 protocal (targetting to SQL Server 2019).
                          5. Fix an issue that packages containing DQS connection manager cannot be loaded again after saving.
                          6. Known issues:
                            1. SQL Server Native Client (SQLNCLI11.1) is deprecated and not installed by VS2019. We recommend upgrading to the new Microsoft OLE DB driver for SQL Server. If you want to continue using SQL Server Native Client, you can download and install it from here.
                            2. SSIS Execute Package Task doesn’t support debugging when ExecuteOutOfProcess is set to True.
                            3. The installer is not localized.
                            4. When the target server version is set to SQL Server 2012

                            2016, the display language will always be English

                          7. Cannot add new data source under package deployment mode. The error message is "The wizard for ‘Microsoft.AnalysisServices.DataSource’ cannot be found."
                          8. Variable window and SSIS toolbox may not be displayed properly if .NET 4.8 is installed (Windows 10 1903 installs .NET 4.8 by default). To work around this: 1) open Tools->Options window; 2) navigate to Environment->General; 3) uncheck "Optimize rendering for screens with different pixel densities"; 4) restart VS. For more details of this issue, please see: https://developercommunity.visualstudio.com/content/problem/638322/vs-2019-regression-transparent-toolwindowpane-with.html
                          9. Version 3.0 Preview:

                            • Release Date: April 15th, 2019
                            • Download SQL Server Integration Services Projects 3.0 Preview
                            • Build Version: 15.0.1300.375
                            • Initial release of SQL Server Integration Services Projects. This is a preview release. We do not recommend using it for production.
                            • Known issues:
                              1. SQL Server Native Client (SQLNCLI11.1) is deprecated and not installed by VS2019. We recommend upgrading to the new Microsoft OLE DB driver for SQL Server. If you want to continue using SQL Server Native Client, you can download and install it from here.
                              2. SSIS Execute Package Task doesn’t support debugging when ExecuteOutOfProcess is set to True.
                              3. The installer is not localized.
                              4. When the target server version is set to SQL Server 2012

                              ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server Среда выполнения интеграции SSIS в Фабрике данных Azure APPLIES TO: SQL Server SSIS Integration Runtime in Azure Data Factory

                              Первым шагом создания пакета в службах Службы Integration Services Integration Services будет создание проекта служб Службы Integration Services Integration Services . The first step in creating a package in Службы Integration Services Integration Services is to create an Службы Integration Services Integration Services project. Этот пример проекта содержит шаблоны для источников данных, представлений источников данных и пакетов, которые составляют решение для преобразования данных. This example project includes templates for the data sources, data source views, and packages that make up a data transformation solution.

                              Пакеты, которые вы создадите в этом учебнике по службам Службы Integration Services Integration Services , преобразуют значения данных, зависящих от языковых стандартов. The packages that you create in this Службы Integration Services Integration Services tutorial interpret the values of locale-sensitive data. Если компьютер не настроен на использование регионального параметра Английский (США) , необходимо настроить в пакете дополнительные свойства. If your computer isn’t configured to use the regional option English (United States), you need to set additional properties in the package.

                              Для уроков со 2-го по 6-й применяются копии того пакета, который вы создадите в этом занятии. The packages that you use in lessons 2 through 6 are copied from the package you create in this lesson.

                              Ознакомьтесь с предварительными требованиями для урока 1, если вы еще не сделали этого. If you haven’t already, see the Lesson 1 prerequisites.

                              Создание нового проекта служб Integration Services Create a new Integration Services project

                              В меню Пуск Windows найдите и выберите элемент Visual Studio (SSDT) . On the Windows Start menu, search for and select Visual Studio (SSDT).

                              В Visual Studio последовательно выберите Файл > Новый > Проект, чтобы создать новый проект Службы Integration Services Integration Services . In Visual Studio, select File > New > Project to create a new Службы Integration Services Integration Services project.

                              В диалоговом окне Создать проект разверните узел Бизнес-аналитика в категории Установленные и выберите Проект служб Integration Services на панели Шаблоны. In the New Project dialog box, expand the Business Intelligence node under Installed, and select Integration Services Project in the Templates pane.

                              Читайте также:  Как отключить звук на камере андроид

                              В поле Имя измените заданное по умолчанию имя на Учебник по службам SQL Server Integration Services. In the Name box, change the default name to SSIS Tutorial. Чтобы использовать уже существующую папку, снимите флажок Создать каталог для решения. To use a folder that already exists, clear the Create directory for solution check box.

                              Подтвердите местоположение по умолчанию или щелкните Обзор, чтобы найти нужную папку. Accept the default location, or select Browse to browse to locate the folder you want to use. В диалоговом окне Расположение проекта выберите папку и щелкните Выбрать папку. In the Project Location dialog box, select the folder and then Select Folder.

                              Нажмите кнопку ОК. Select OK.

                              Опубликовано:
                              2 июля 2014 в 11:54

                              Иногда, при внедрении DIRECTUM, возникает задача переноса (миграции) исторических данных из системы, которая использовалась в компании ранее.
                              На эту тему уже было несколько статей:
                              Импорт договоров в систему DIRECTUM,
                              Сценарий Импорт записей справочников из xls-файла…
                              В данной статье я расскажу о том, как можно перенести исторические данные, используя SQL Server Integration Services.

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

                              1. Электронные документы
                              2. Записи справочников
                              3. ЗЗУ
                              4. Пользователи

                              Выбрать способ переноса:

                              1. Объектная модель (ОМ) DIRECTUM
                              2. SQL Server Integration Services (SSIS)

                              Кратко рассмотрим плюсы и минусы данных способов
                              ОМ DIRECTUM
                              «+» Простота разработки. (Можно реализовать с помощью прикладных сценариев, веб-сервисов DIRECTUM или написать утилиту на любимом языке…)

                              «-» Маленькая скорость переноса данных.
                              «-» Исходная (старая) система должна иметь соответствующие инструменты для экспорта объектов.

                              SQL Server Integration Services
                              «+» Большая скорость переноса данных. (За счёт использования BULK-Insert).

                              «-» Сложность разработки. (Необходимо «вручную» учитывать все особенности хранения объектов DIRECTUM в БД. В случае использования ОМ, системная логика отрабатывает автоматически.)

                              Рассмотрим применение SSIS на примере реального проекта.
                              Нам предстоит перенести исторические данные из СЭД LanDocs в СЭД DIRECTUM и сделать это с помощью инструмента под названием SQL Server Integration Services.

                              Службы Microsoft Integration Services — это платформа для построения решений по интеграции и преобразованию данных уровня предприятия. Службы Integration Services используются при решении сложных бизнес-задач копирования и загрузки файлов, отправки электронных сообщений в ответ на события, обновления хранилищ данных, очистки и интеллектуального анализа данных, а также управления объектами и данными SQL Server. Службы Integration Services могут извлекать и преобразовывать данные из ряда таких источников, как XML- файлы, неструктурированные файлы и источники реляционных данных.

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

                              Перед тем как приступить к реализации, необходимо изучить структуры баз данных системы-источника и системы-приёмника. Физическую структуру данных DIRECTUM мы все отлично знаем. А на структуре БД LanDocs подробно останавливаться не будем, всё есть в документации.

                              LanDocs, как и DIRECTUM, использует СУБД MSSQL.
                              Развернём копию БД LanDocs, БД DIRECTUM и БД DIR_BUFFER (о ней далее) на одном сервере. Файлы разных БД лучше расположить на разных физических дисках для оптимизации скорости копирования.
                              Чтобы использовать SSIS, установим всё необходимое на SQL-сервер:

                              1. SQL Server Integration Services (компонента SQL).
                              2. Business Intelligence Development Studio (компонента SQL).
                              3. Visual Studio.

                              Создадим в Visual Studio проект Integration Services.

                              Создадим подключения к базам данных.

                              Вот здесь начинается самое интересное. Как можно догадаться, просто так взять и перенести данные «Ctrl+C Ctrl+V» или, точнее сказать, «Select-Insert» не получится.

                              Остановимся подробнее на стратегии и некоторых особенностях переноса данных.

                              В базе LanDocs данные хранятся в таблицах, структура которых отличается от структуры DIRECTUM, будут отличаться и идентификаторы (ИД) объектов. Поэтому, потребуется конвертация, как структуры данных, так и ИД.
                              Общая стратегия переноса данных будет следующая:

                              1. Перенести данные из БД LanDocs в БД DIR_BUFFER.
                              2. Сконвертировать ИД LanDocs на ИД DIRECTUM в БД DIR_BUFFER.
                              3. Перенести данные из БД DIR_BUFFER в БД DIRECTUM.

                              Шаг 1. Перенос данных из БД LanDocs в БД DIR_BUFFER

                              В БД DIR_BUFFER необходимо создать почти все таблицы, которые присутствуют в БД DIRECTUM (собственно, таблицы, которые будут заполняться данными из LanDocs + некоторые системные таблицы). Для обеспечения «обратной» связи, в каждую таблицу добавим поле «[LDID] [int] NULL». В этой базе, также, будут размещаться (временные) таблицы, которые потребуются для обеспечения конвертации и переноса данных в соответствии с бизнес логикой.
                              Пример запроса создания таблицы в БД DIR_BUFFER:

                              Список таблиц БД DIR_BUFFER

                              • MBAnalit
                              • MBAnValR
                              • MBAnValR2
                              • MBAnValR3
                              • MBAnValR4
                              • MBAnValR5
                              • MBAnValR6
                              • MBAnValR7
                              • MBAnValR8
                              • MBAnValR9
                              • MBAnValR10
                              • MBAnValR11
                              • MBAnValR12
                              • MBText
                              • SBTaskAcc
                              • SBTask
                              • SBTaskJob
                              • SBTaskRoute
                              • SBTaskText
                              • XIni
                              • MBVidAn
                              • SBEDoc
                              • MBEDocType
                              • SBEDocVer
                              • SBEDocAcc
                              • V_USERS (необходима для переноса пользователей, подробности далее)
                              • V_ORG (необходима для переноса организаций, подробности далее)
                              • XProtokol
                              • SBEDocProtocol
                              • SBLinks
                              • SBFullAccessRights
                              • SBTaskAttach
                              • TaskAcc
                              • SBTaskProtocol
                              • SBEDocValR4
                              • MBUser
                              • MBUserLink
                              • MBUserComp
                              • MBUserCompRec
                              • SBFolder
                              • SBFolderAcc
                              • MBComponent

                              Примечание: данный список не является жёстким и зависит от многих факторов.

                              Таблицы промежуточной БД DIR_BUFFER созданы, настало время их заполнить. Для максимального ускорения будем использовать BULK-Insert. Рассмотрим, как он реализуется с помощью SSIS.
                              Вытащим в область «Control Flow» контрол под названием «Data Flow Task»

                              Переименуем и выделим контрол.

                              Перейдём на вкладку «Data Flow».

                              Здесь нам понадобятся «OLE DB Source» и «OLE DB Destination».

                              Вытащим их в область «Data Flow» и соединим.

                              «OLE DB Source» обеспечивает выборку данных. По двойному клику открываются настройки.
                              Выборка данных происходит из БД LanDocs путём SQL-запроса.

                              Пример запроса (SQL command text):

                              «OLE DB Destination» отвечает за вставку данных в БД. По двойному клику открываются настройки.
                              Вставка данных происходит в таблицу MBAnalit БД DIR_BUFFER.

                              Настройка соответствия полей будет происходить автоматически, если в запросе выборки данных указать имена колонок таблицы-приёмника (AS NameAn).

                              Так необходимо настроить перенос всех данных.

                              Для ускорения, процесс переноса можно распараллелить.
                              Пример: записи справочников (строки MBAnalit) в проекте SSIS необходимо переносить последовательно, т.к. параллельный BULK-Insert данных в одну таблицу вызовет блокировки. Перенос данных табличных разделов (таблицы MBAnValR) можно выполнять параллельно. Последовательный и параллельный перенос данных реализуется с помощью соединения контролов и использования контейнеров (Sequence Container).

                              На данном шаге происходит не только перенос, но и «конвертация» структуры данных. Наборы данных LanDocs приводятся к «формату» DIRECTUM.

                              Шаг 2. Конвертация ИД LanDocs на ИД DIRECTUM в БД DIR_BUFFER

                              Конвертация ИД необходима для обеспечения целостности переносимых данных, с учётом данных, уже существующих в базе DIRECTUM.
                              Приступим.
                              Общий алгоритм конвертации будет следующий:

                              1. Заполнить «служебные» поля (например, MBAnalit.Kod) и поля, которые являются ключевыми (например, MBAnalit.Analit, SBEDoc.XRecID).
                              2. Заменить ИД LanDocs на новые ИД, полученные в п.1., в полях (Foreign key), которые не являются ключами (например, MBAnalit.Podr).
                              Читайте также:  Вход в джимейл почту на свою страницу

                              Выполнить произвольный скрипт в SSIS поможет контрол «Execute SQL Task».

                              Вытащим контрол в область «Control Flow» и настроим.

                              Пример запроса (SQLStatement):

                              Для конвертации не ключевых полей добавим ещё один контрол.

                              Пример запроса (SQLStatement):

                              Аналогичную конвертацию необходимо сделать для всех таблиц с данными из LanDocs.

                              Шаг 3. Перенос данных из БД DIR_BUFFER в БД DIRECTUM

                              Это самый лёгкий в настройке шаг.
                              Здесь необходимо выполнить перенос данных каждой таблицы БД DIR_BUFFER в соответствующую таблицу БД DIRECTUM.
                              Это выполняется с помощью контролов «Data Flow Task»

                              Настроим выборку данных

                              Настроим вставку данных

                              Т.к. имена полей совпадают, маппинг настраивается автоматом.

                              В итоге, проект SSIS может получиться достаточно объёмным.

                              Запуск

                              Запустить проект SSIS можно по кнопке на панели инструментов, либо по F5.

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

                              Некоторые особенности

                              Заранее определить список всех особенностей и сложностей, которые могут возникнуть при переносе исторических данных, попросту невозможно. Всё зависит от перечня переносимых объектов, исходной ИС, разработки исходной ИС, разработки и бизнес логики DIRECTUM и т.п.
                              Рассмотрим несколько особенностей переноса данных из LanDocs в DIRECTUM.

                              Миграция пользователей

                              Пользователи (и их права) хранятся в LanDocs и DIRECTUM по-разному.
                              Рассмотрим пример: «пользователя переводят в другое подразделение».
                              В DIRECTUM у пользователя меняется Группа пользователей Подразделения.
                              В LanDocs создаётся «новая версия» пользователя, которая становится актуальной. «Старые версии» пользователя помечаются как не актуальные. Проблема заключается в том, что меняется ИД пользователя.

                              Примечание: подробное описание особенностей хранения пользователей и назначения прав есть в документации к ИС.

                              Таким образом, в DIRECTUM необходимо переносить только актуальные версии пользователей и создавать для них записи справочников Работники и Персоны.
                              При переносе полей таблиц, где фигурируют пользователи (например, поле «Автор документа» и т.п.), необходимо ИД «старых версий» пользователей LanDocs заменять на ИД «новых версий». Удобнее всего делать это при конвертации.
                              Отношения «ИД пользователя» — «Актуальный ИД пользователя» будут храниться в таблицу V_USERS.
                              1. Создадим таблицу V_USERS в базе DIR_BUFFER.

                              2. Заполним
                              Пример запроса выборки данных:

                              3. При конвертации ИД пользователей, работников и персон определяем актуальную версию
                              Пример запроса конвертации:

                              Миграция организаций

                              Происходит по аналогии с миграцией пользователей (используется таблица V_ORG).

                              Миграция ЭД

                              Перенос карточек электронных документов

                              Перенос карточек электронных документов происходит аналогично переносу записей справочников. Исключение составляет лишь то, что для идентификации документа одного ИД LanDocs мало. Для уникальной идентификации документов и их версий необходимо добавить в таблицы SBEDoc и SBEDocVer базы DIR_BUFFER дополнительные поля: FileN, VerN и SubVerN, которые соответствуют полям LDVersion.FileN, LDVersion.VerN и LDVersion.SubVerN LanDocs.

                              Перенос тел электронных документов

                              Перенос тел ЭД заключается в том, чтобы скопировать файлы из файлового хранилища LanDocs в файловое хранилище DIRECTUM.
                              Сделать это можно следующим образом:
                              1. Проверить расположение файлового хранилища Landocs. Для этого в базе данных DocServer в таблице DS_STORAGES проверить пути расположения хранилищ. Пути должны совпадать с реальным расположением хранилищ на сервере.
                              2. Создать и заполнить таблицу TempTransferFiles в базе DIR_BUFFER.
                              Пример запроса:

                              3. Запустить от администратора консоль cmd.
                              4. В консоли запустить с необходимыми ключами утилиту LanDocsImportFiles.exe (LanDocsImportFiles.zip (4,26 Кб))

                              Если утилита будет запущена без ключей или ключи будут неверными, то пользователю будет выдано сообщение:

                              Пример запуска утилиты:

                              5. Следовать инструкциям утилиты.

                              Основными рисками при использовании SSIS для переноса данных являются:
                              Риск: Нарушение целостности БД. Так как все данные переносятся «вручную» с помощью SQL запросов, IS-Builder не выполняет своих функций по поддержанию системной логики.
                              Совет: Необходима проверка целостности базы после миграции и тщательное тестирование
                              Риск: Большое время выполнения скриптов конвертации данных.
                              Совет: Необходимо выявлять проблемные запросы (с помощью трейсов) и оптимизировать (добавлять индексы).

                              В данной статье мы рассмотрели один из способов миграции большого объёма исторических данных в систему DIRECTUM. Как было отмечено выше, основное достоинство SSIS – производительность. Достигается это за счёт использования BULK-Insert и оптимизации выполнения запросов. Применяя этот инструмент, можно перенести десятки и сотни Гигабайт данных за считанные часы (при использовании объектной модели перенос этих данных может занять месяцы).

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

                              Несколько причин отказа от стандартного функционала SSIS: 47 сплитов с каждой итерацией начинали обрабатываться все дольше и дольше, если первая была пару секунд, то сороковая — 2 минуты, дальше даже не проверяла, так как записей очень много. Потом начались проблемы с дедлоками read(!!) и readwrite параметров при использовании в параллельных блоках, пришлось в каждом блоке программно их лочить перед чтением и снимать лок после. Дальше начались проблемы с коммитами и ролбэками транзакций t-sql (удержание connection при переходе между блоками), пришлось отказаться от параллельного импорта. Говорить про преобразование типов оракловых данных в ms sql уже даже не хочется. Кстати, параллельность в SSIS — это миф. Осталось загадкой как этот продукт планировалось использовать.

                              Сейчас все сносно работает, но почти все переписано на C#. Отказываться от SSIS было поздно, но в следующий раз я пять раз подумаю на чем писать импорт такого размаха, особенно уделю внимание анализу количества расчетов и мелких запросов при импорте.

                              SSIS хорош для использования не разработчиками иили для несложных преобразований данных, без больших сложных вычислений и сплитов, просто взять и мышкой накидать кубики без особых правил и соединить их стрелочками. Дополнительную сложность составляет то, что казалось бы одни и те же объекты имеют разный интерфейс и слегка по разному реализованы, из-за чего на разных уровнях (Control Flow и Data Flow) работа с подобными объектами отличается. И в целом, похоже, что это технология COM завернута в .NET обертку. Вышла каша в разработке. Если можно импорт реализовать разработкой на более низком уровне — лучше писать, а не использовать кубики.

                              Как совет для тех, кто не работал и хочет рискнуть строить импорт пакетом SSIS — подумайте тридцать пять раз, а не проще ли будет на ISBL, если речь об импорте в DIRECTUM. Но, правда, если импорт простой — то должно получиться хорошо и красиво.

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