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


задача «Массовая вставка»

Применимо к: SQL Server Integration Runtime служб SSIS в Фабрика данных Azure

Задача «Массовая вставка» обеспечивает наиболее эффективный способ копирования больших объемов данных в таблицу или представление SQL Server . Предположим, что компания хранит список продуктов объемом в миллион строк в головном компьютере, но система электронной коммерции компании использует для заполнения веб-страниц сервер SQL Server . Необходимо обновлять таблицу продуктов SQL Server по ночам в соответствии с главным списком продуктов, хранящимся в головном компьютере. Для обновления таблицы список продуктов сохраняется в формате с символами табуляции в качестве разделителей и используется задача «Массовая вставка» для копирования данных напрямую в таблицу SQL Server .

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

Особенности использования

Перед использованием задачи «Массовая вставка» примите во внимание следующее.

  • Задача «Массовая вставка» может передавать данные только из текстового файла в таблицу или представление SQL Server . Для использования задачи "Массовая вставка" в целях передачи данных из других систем управления базами данных (СУБД) необходимо будет экспортировать данные из источника в текстовый файл, а затем импортировать их из текстового файла в таблицу или представление SQL Server .

  • Назначением должна быть таблица или представление базы данных SQL Server . Если целевая таблица или представление уже содержат данные, то при запуске задачи «Массовая вставка» новые данные добавляются к существующим. Если необходимо заменить данные, запустите задачу «Выполнение SQL», которая выполнит инструкцию DELETE или TRUNCATE до запуска задачи «Массовая вставка». Дополнительные сведения см. в разделе Execute SQL Task.

  • В объекте задачи «Массовая вставка» можно использовать файл форматирования. Если имеется файл форматирования, созданный программой bcp , можно указать путь к нему в задаче «Массовая вставка». Задача «Массовая вставка» поддерживает файлы форматирования как в формате XML, так и в форматах, отличных от XML. Дополнительные сведения об использовании файлов форматирования см. в статье Файлы форматирования для импорта или экспорта данных (SQL Server).

  • Запускать пакеты, содержащие задачу «Массовая вставка», могут только члены предопределенной роли сервера sysadmin.

Использование задачи «Массовая вставка» вместе с транзакциями

Если размер пакета не указан, вся операция массового копирования рассматривается как одна транзакция. Размер пакета 0 указывает, что все данные вставлены в один пакет. Если указан размер пакета, каждый пакет представляет собой транзакцию, которая фиксируется после завершения работы пакета.

Поведение задачи «Массовая вставка» по отношению к транзакциям зависит от того, присоединяется ли задача к транзакции пакета. Если задача «Массовая вставка» не присоединена к транзакции пакета, каждый пакет без ошибок фиксируется как отдельный модуль перед попыткой передачи следующего пакета. Если задача «Массовая вставка» присоединена к транзакции пакета, пакеты без ошибок остаются в транзакции по завершении задачи. Фиксация или операция отката этих пакетов произойдет вместе со всем пакетом.

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

Источник и назначение

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

  • Сервер должен иметь разрешение на доступ как к файлу, так и к целевой базе данных.

  • Сервер запускает задачу «Массовая вставка». Таким образом, любой файл форматирования, используемый задачей, должен располагаться на этом сервере.

  • Исходный файл, загружаемый задачей «Массовая вставка», может располагаться на том же сервере, что и база данных SQL Server , в которую вставляются данные, либо на удаленном сервере. Если файл расположен на удаленном сервере, необходимо указать имя в формате UNC.

Оптимизация производительности

Чтобы улучшить производительность, учтите следующее.

  • Если текстовый файл расположен на том же компьютере, что и база данных SQL Server , в которую будут вставляться данные, операция копирования производится с большей скоростью, так как данные не перемещаются по сети.

  • Задача «Массовая вставка» не фиксирует в журнале строки, вызвавшие ошибку. Если эти сведения необходимы, воспользуйтесь выходами ошибок компонентов потока данных для обнаружения строк, вызвавших ошибки в файле исключений.

Пользовательские записи журнала, доступные в задаче «Массовая вставка»

В следующей таблице перечислены пользовательские записи в журнале для задачи «Массовая вставка». Дополнительные сведения см. в статье Ведение журналов в службах Integration Services (SSIS).

Запись журнала Описание
BulkInsertTaskBegin Указывает, что массовая вставка началась.
BulkInsertTaskEnd Указывает, что массовая вставка завершена.
BulkInsertTaskInfos Выводит описательные сведения об этой задаче.

Настройка задачи «Массовая вставка»

Чтобы настроить задачу «Массовая вставка», выполните следующее.

  • Укажите диспетчер соединений OLE DB для подключения к целевой базе данных SQL Server и таблицу или представление, в которые будут вставляться данные. Задача «Массовая вставка» поддерживает только подключения OLE DB к целевой базе данных.

  • Чтобы получить доступ к исходному файлу, укажите диспетчер соединения с плоскими файлами или диспетчер подключения файлов. Задача «Массовая вставка» использует диспетчер соединений только для местоположения исходного файла. Задача пропускает другие параметры, выбранные в редакторе диспетчера соединений.

  • Определите формат, используемый задачей «Массовая вставка», либо при помощи файла форматирования, либо указав разделители столбцов и строк в исходных данных. При использовании файла форматирования укажите для доступа к нему диспетчер подключения файлов.

  • Укажите, какие действия следует произвести над целевой таблицей или представлением при вставке данных. Эти параметры включают в себя проверочное ограничение, разрешение на вставку данных в столбцы удостоверений, сохранение значений NULL, запуск триггеров, блокировку таблицы.

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

Если задача «Массовая вставка» использует для доступа к исходному файлу диспетчер соединений с неструктурированными файлами, задача не использует формат, указанный в нем. Вместо этого задача "Массовая вставка" использует либо формат, указанный в файле форматирования, либо значения свойств задачи RowDelimiter и ColumnDelimiter.

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

Дополнительные сведения о свойствах, которые можно задать в конструкторе служб Integration Services , см. в следующем разделе:

Дополнительные сведения об установке этих свойств в конструкторе служб Integration Services см. в следующем разделе:

Настройка задачи «Массовая вставка» программными средствами

Дополнительные сведения об установке этих свойств программными средствами см. в следующем разделе.

Задание свойств задач или контейнеров

Редактор задачи «Массовая вставка» (страница «Соединение»)

Страница Соединение диалогового окна Редактор задачи «Массовая вставка» используется для указания источника и места назначения операции массовой вставки и формата для использования.

Дополнительные сведения о работе с массовыми вставками см. в разделах Задача "Массовая вставка" и Файлы форматирования для импорта или экспорта данных (SQL Server).

Параметры

Соединение
Выберите диспетчер подключений OLE DB в списке или щелкните <Создать подключение...>, чтобы создать соединение.

См. также:Диспетчер подключений OLE DB

DestinationTable
Введите имя целевой таблицы или представления или выберите таблицу или представление из списка.

Формат
Выберите источник формата для массовой вставки. Это свойство имеет параметры, указанные в следующей таблице.

Значение Описание
Использовать файл Выберите файл, содержащий спецификацию формата. При выборе этого параметра отображается динамический параметр FormatFile.
Указать Укажите формат. При выборе этого параметра отображаются динамические параметры RowDelimiter и ColumnDelimiter.

Файл
Выберите диспетчер подключений файлов или неструктурированных файлов в списке или щелкните <Создать подключение...>, чтобы создать соединение.

Расположение файла задается относительно компонента SQL Server Database Engine, указанного в диспетчере соединений для выполнения этой задачи. Доступ к тестовому файлу можно получить с помощью компонента SQL Server Database Engine на локальном жестком диске на сервере или через общий диск или сопоставленный диск относительно SQL Server. Этот файл не имеет доступа к среде выполнения служб SSIS.

Если пользователь осуществляет доступ к исходному файлу с помощью диспетчера соединений с неструктурированным файлом, в задаче «Массовая вставка» не используется формат, указанный в диспетчере соединений с неструктурированными файлами. Вместо этого задача "Массовая вставка" использует либо формат, указанный в файле форматирования, либо значения свойств задачи RowDelimiter и ColumnDelimiter.

См. также:Диспетчер соединений с файлами, Диспетчер соединений с неструктурированными файлами

Обновить таблицы
Обновите список таблиц и представлений.

Динамические параметры формата

Формат = Использовать файл

FormatFile
Введите путь к файлу форматирования или нажмите кнопку с многоточием (...) для поиска этого файла.

Формат = Указать

RowDelimiter
Укажите разделитель строк в файле источника. Значением по умолчанию является {CR}{LF} .

ColumnDelimiter
Укажите разделитель столбцов в файле источника. Значение по умолчанию составляет Табуляция.

Редактор задачи «Массовая вставка» (страница «Общие»)

Страница Общие диалогового окна Редактор задачи «Массовая вставка» используется для наименования и описания задачи «Массовая вставка».

Параметры

имя;
Задайте уникальное имя задачи «Массовая вставка». Это имя используется в качестве метки для значка задачи.

Примечание

Имена задач в пределах пакета должны быть уникальными.

Описание
Введите описание задачи «Массовая вставка».

Редактор задачи «Массовая вставка» (страница «Параметры»)

Страница Параметры диалогового окна Редактор задачи «Массовая вставка» используется для установки свойств операции массовой вставки. С помощью задачи "Массовая вставка" большой объем данных копируется в таблицу или представление Microsoft SQL Server.

Сведения о работе с массовой вставкой см. в статьях Задача "Массовая вставка" и BULK INSERT (Transact-SQL).

Параметры

CodePage
Задает кодовую страницу данных в файле данных.

DataFileType
Задает значение типа данных, используемых в операции загрузки.

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

LastRow
Задает последнюю строку для копирования.

FirstRow
Задает первую строку, с которой должно начинаться копирование.

Параметры

Термин Определение
Проверочные ограничения Выберите для проверки ограничений таблицы и столбца.
Сохранять значения NULL Выберите для сохранения значений NULL во время операции массовой вставки вместо вставки значений по умолчанию для пустых столбцов.
Разрешить вставку в столбец идентификаторов Выберите, чтобы вставлять существующие значения в столбец идентификаторов.
Блокировка таблицы Выберите для блокировки таблицы во время операции массовой вставки.
Запускать триггеры Выберите для срабатывания триггеров при вставке, обновлении или удалении в таблице.

SortedData
Определяет предложение ORDER BY в инструкции массовой вставки. Указываемое имя столбца должно быть действительным столбцом в целевой таблице. Значение по умолчанию — false. Это означает, что данные не отсортированы с помощью предложения ORDER BY.

MaxErrors
Определяет максимальное количество ошибок, которое может произойти перед отменой операции массовой вставки. Значение «0» указывает на то, что допускается бесконечное количество ошибок.

Примечание

Каждая строка, которая не может быть импортирована операцией массовой загрузки, считается за одну ошибку.