Поделиться через


Загрузка данных с помощью служб Integration Services в параллельное хранилище данных

Предоставляет справочные и развертывающие сведения для загрузки данных в хранилище параллельных данных SQL Server с помощью пакетов SQL Server Integration Services (SSIS).

Основные сведения

Службы Integration Services — это компонент SQL Server, обеспечивающий высокопроизводительное извлечение, преобразование и загрузку данных (ETL), который обычно используется для заполнения и обновления хранилища данных.

Целевой адаптер PDW — это компонент служб Integration Services, который позволяет загружать данные в PDW с помощью пакетов dtsx служб Integration Services. В рабочем процессе пакета для Analytics Platform System (PDW) можно загружать и объединять данные из нескольких источников и загружать данные в несколько мест назначения. Загрузки происходят параллельно как внутри пакета, так и среди нескольких параллельно выполняющихся пакетов; параллельно в одном устройстве может выполняться до 10 загрузок.

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

Полные сведения о службах Integration Services см. в статье SQL Server Integration Services.

Методы запуска пакета служб Integration Services

Используйте один из этих методов для запуска пакета служб Integration Services.

Запуск из SQL Server 2008 R2 Business Intelligence Development Studio (BIDS)

Чтобы запустить пакет из приложения BIDS, щелкните правой кнопкой мыши пакет и выберите "Выполнить пакет".

По умолчанию BIDS запускает пакеты с использованием 64-разрядных двоичных файлов. Это определяется свойством пакета Run64BitRuntime . Чтобы задать это свойство, перейдите к Обозреватель решений, щелкните проект правой кнопкой мыши и выберите "Свойства". На страницах свойств служб Integration Services перейдите в раздел "Свойства конфигурации" и выберите "Отладка". Вы увидите свойство Run64BitRuntime в разделе "Параметры отладки". Чтобы использовать 32-разрядные среды выполнения, установите значение False. Чтобы использовать 64-разрядные среды выполнения, установите значение True.

Запуск из SQL Server 2012 SQL Server Data Tools

Чтобы запустить пакет из SQL Server Data Tools, щелкните правой кнопкой мыши пакет и выберите "Выполнить пакет".

Запуск из PowerShell

Чтобы запустить пакет из Windows PowerShell, с помощью служебной программы dtexec : dtexec /FILE <packagePath>

Например: dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"

Запуск из командной строки Windows

Чтобы запустить пакет из командной строки Windows, используйте служебную программу dtexec : dtexec /FILE <packagePath>

Например: dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"

Типы данных

При использовании служб Integration Services для загрузки данных из источника в базу данных SQL Server PDW данные сначала сопоставляются с типами данных служб Integration Services. Это позволяет сопоставлять данные из нескольких источников с общим набором типов данных.

Затем данные сопоставляются из служб Integration Services к типам данных SQL Server PDW. Для каждого типа данных SQL Server PDW в следующей таблице перечислены типы данных Служб Integration Services, которые можно преобразовать в тип данных SQL Server PDW.

Тип данных PDW Типы данных служб Integration Services, которые соответствуют типу данных PDW
БИТ DT_BOOL
БИГИНТ DT_I1, DT_I2, DT_I4 DT_I8, DT_UI1, DT_UI2, DT_UI4
ОБГОРАТЬ DT_STR
ДАТА DT_DBDATE
Дата и время DT_DATE, DT_DBDATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2
DATETIME2 DT_DATE, DT_DBDATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2
DATETIMEOFFSET DT_WSTR
ДЕСЯТИЧНЫЙ DT_DECIMAL, DT_I1, DT_I2, DT_I4, DT_I4, DT_I8, DT_NUMERIC, DT_UI1, DT_UI2, DT_UI4, DT_UI8
ФЛОАТ DT_R4, DT_R8
ИНТ DT_I1, DTI2, DT_I4, DT_UI1, DT_UI2
ДЕНЬГИ DT_CY
NCHAR DT_WSTR
ЧИСЛОВОЙ DT_DECIMAL, DT_I1, DT_I2, DT_I4, DT_I8, DT_NUMERIC, DT_UI1, DT_UI2, DT_UI4, DT_UI8
NVARCHAR DT_WSTR, DT_STR
РЕАЛЬНЫЙ DT_R4
SMALLDATETIME (малый формат даты и времени) DT_DBTIMESTAMP2
СМОЛЛИНТ DT_I1, DT_I2, DT_UI1
Маленькие деньги DT_R4
ВРЕМЯ DT_WSTR
TINYINT DT_I1
VARBINARY DT_BYTES
VARCHAR DT_STR

Ограниченная поддержка точности типа данных

PDW выдаст ошибку валидации, если вы сопоставите столбец ввода DT_NUMERIC или DT_DECIMAL, который содержит значение с точностью больше 28.

Неподдерживаемые типы данных

SQL Server PDW не поддерживает следующие типы данных служб Integration Services:

  • DT_DBTIMESTAMPOFFSET

  • DT_DBTIME2

  • DT_GUID

  • DT_IMAGE

  • DT_NTEXT

  • DT_TEXT

Чтобы загрузить столбцы, содержащие данные этих типов, в SQL Server PDW, необходимо добавить преобразование данных в поток данных, чтобы преобразовать данные в совместимый тип.

Разрешения

Чтобы запустить пакет загрузки служб Integration Services, вам потребуется:

  • Разрешение LOAD для базы данных.

  • Разрешения на INSERT, UPDATE, DELETE, применимые к целевой таблице.

  • Если используется промежуточная база данных, необходимо предоставить разрешение CREATE для промежуточной базы данных. Это для создания временной таблицы.

  • Если промежуточная база данных не используется, права CREATE на целевой базе данных. Это для создания временной таблицы.

Общие замечания

Когда в пакете служб Integration Services запущены несколько мест назначения SQL Server PDW и одно из подключений прерывается, службы Integration Services перестают отправлять данные во все места назначения SQL Server PDW.

ограничения и ограничения

Для пакета служб Integration Services число назначений SQL Server PDW для одного источника данных ограничено максимальным числом активных загрузок. Максимальное значение предварительно настроено и не настраивается пользователем.

Каждое назначение пакета служб Integration Services для одного источника данных подсчитывается как одна загрузка при запуске пакета. Например, предположим, что максимальное количество активных нагрузок равно 10. Пакет не будет выполняться, если он попытается открыть 11 или более пунктов назначения для одного и того же источника данных.

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

Если количество загрузок в очереди превышает максимально допустимое, пакет не будет выполняться. Например, если максимальное количество загрузок составляет 10 на устройство, а максимальное количество загрузок в очереди составляет 40 на устройство, можно одновременно запускать пять пакетов служб Integration Services, каждый из которых открывает 10 пунктов назначения. Если вы попытаетесь запустить шестой пакет, он не запустится.

Внимание

Использование источника данных OLE DB в SSIS с целевым адаптером PDW может привести к повреждению данных, если исходная таблица содержит столбцы char и varchar с параметрами сортировки SQL. Рекомендуется использовать источник ADO.NET, если исходная таблица содержит столбцы char или varchar с параметрами сортировки SQL.

Поведение блокировки

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

Примеры

А. Простая загрузка из неструктурированного файла

В следующем пошаговом руководстве демонстрируется простая загрузка данных с помощью служб Integration Services для загрузки неструктурированных данных в устройство SQL Server PDW. В этом примере предполагается, что службы Integration Services уже установлены на клиентском компьютере, а адресат SQL Server PDW установлен, как указано выше.

В этом примере мы будем загружать данные в таблицу Orders, которая имеет следующий DDL. Таблица Orders является частью LoadExampleDB базы данных.

CREATE TABLE LoadExampleDB.dbo.Orders (  
   id INT,  
   city varchar(25),  
   lastUpdateDate DATE,  
   orderDate DATE)  
;  

Ниже приведены данные о загрузке:

id        city           lastUpdateDate     orderdate  
--------- -------------- ------------------ ----------  
1         Seattle        2010-05-01         2010-01-01  
2         Denver         2002-06-25         1999-01-02  

При подготовке к загрузке создайте неструктурированный файл exampleLoad.txt, содержащий данные загрузки:

id,city,lastUpdateDate,orderDate  
1,Seattle,2010-05-01,2010-01-01  
2,Denver,2002-06-25,1999-01-02  

Сначала создайте пакет служб Integration Services, выполнив следующие действия.

  1. В SQL Server Data Tools (SSDT) выберите "Файл", "Создать" и " Проект". Выберите проект Интеграции Сервисов из перечисленных параметров. Присвойте этому проекту ExampleLoadимя и нажмите кнопку "ОК".

  2. Перейдите на вкладку Контроль потока, а затем перетащите Задачу потока данных из Панель инструментов в панель Контроль потока.

  3. Щелкните вкладку Поток данных и перетащите Источник плоского файла из Панели инструментов в область Поток данных. Дважды щелкните по только что созданному окну, чтобы открыть редактор Flat File Source.

  4. Щелкните диспетчер подключений, а затем щелкните Создать.

  5. В поле имени диспетчера соединений введите понятное имя подключения. В этом примере Example Load Flat File CM.

  6. Нажмите кнопку "Обзор" и выберите ExampleLoad.txt файл на локальном компьютере.

  7. Так как неструктурированный файл содержит строку с именами столбцов, щелкните имена столбцов в первой строке данных.

  8. Щелкните " Столбцы " в левом столбце и просмотрите данные, которые будут загружены, чтобы убедиться, что имена столбцов и данные интерпретированы правильно.

  9. Нажмите кнопку "Дополнительно" в левом столбце. Щелкните каждое имя столбца, чтобы просмотреть тип данных, связанный с данными. Введите изменения в поле, чтобы типы данных загруженных данных были совместимы с типами целевых столбцов.

  10. Нажмите кнопку "ОК ", чтобы сохранить диспетчер соединений.

  11. Нажмите кнопку "ОК", чтобы выйти из редактора источника неструктурированных файлов.

Укажите назначение потока данных.

  1. Перетащите SQL Server PDW назначение из панели инструментов в область Поток данных.

  2. Дважды щелкните на поле, которое вы только что создали, чтобы открыть редактор назначения SQL Server PDW.

  3. Щелкните стрелку вниз рядом с диспетчер подключений.

  4. Выберите "Создать новое подключение".

  5. Введите сведения для сервера, пользователя, пароля и целевой базы данных, указав сведения, относящиеся к вашему устройству. (Примеры показаны ниже). Затем нажмите кнопку ОК.

    Для подключений InfiniBand введите следующее имя сервера: имя устройства<-SQLCTL01,17001.

    Для подключений Ethernet введите имя сервера: IP-адрес кластера узлов управления, потом порт 17001. Например, 10.192.63.134,17001.

    Пользовательuser1:

    Парольpassword1:

    Целевая база данных:LoadExampleDB

  6. Выберите целевую таблицу: Orders

  7. Нажмите кнопку "Добавить в качестве режима загрузки" и нажмите кнопку "ОК".

Укажите поток данных из источника в место назначения.

  1. На панели Поток данных перетащите зеленую стрелку из поля "Источник неструктурированного файла" в поле назначения SQL Server PDW.

  2. Дважды щелкните на Элемент назначения SQL Server PDW, чтобы снова увидеть Редактор элемента назначения SQL Server PDW. Вы должны видеть имена столбцов из плоского файла слева в разделе Несопоставленные входные столбцы. Вы должны видеть имена столбцов из целевой таблицы справа в разделе "Несопоставленные целевые столбцы". Сопоставляйте столбцы, перетаскивая или дважды щелкнув соответствующие имена столбцов в списке "Несопоставленные входные столбцы " и "Несопоставленные столбцы назначения " с полем "Сопоставленные столбцы ". Нажмите кнопку ОК, чтобы сохранить значения параметров.

  3. Сохраните пакет, нажав кнопку "Сохранить " в меню "Файл ".

Запустите пакет на компьютере Integration Services.

  1. В обозревателе решений Integration Services (правый столбец) щелкните правой кнопкой мыши и выберите Package.dtsx.

  2. Пакет будет выполняться, а ход выполнения и все ошибки будут отображаться на панели "Ход выполнения ". Используйте клиент SQL, чтобы подтвердить загрузку или отслеживать загрузку с помощью консоли администрирования SQL Server PDW.

См. также

Создайте задачу скрипта, использующую адаптер назначения SSIS PDW
SQL Server Integration Services
Проектирование и реализация пакетов (Интеграционные сервисы)
Руководство по созданию базового пакета с помощью мастера
Начало работы (Службы интеграции)
Пример динамического создания пакетов
Проектирование пакетов SSIS для параллельной обработки (видеоролик о SQL Server)
Улучшение инкрементных загрузок с помощью фиксации изменений данных
Трансформация медленно изменяющегося измерения
Задача массовой вставки