Ошибка в пакетах служб SSIS при загрузке данных в хранилище данных Azure - PullRequest
1 голос
/ 08 апреля 2019

У нас есть несколько пакетов ssis, загружающих данные в хранилище данных Azure из файлов CSV. Все задачи потока данных внутри пакетов настроены для параллельной обработки. Недавно пакеты начали сбой со следующей ошибкой.

Не удалось скопировать в хранилище данных SQL из хранилища больших двоичных объектов. 110802; Произошла внутренняя ошибка DMS, которая привела к сбою этой операции. Подробности: Исключение: System.NullReferenceException, Сообщение: ссылка на объект не установлена ​​для экземпляра объекта.

Когда мы запускаем пакет вручную (запускаем каждый файл в отдельности), он работает нормально. Когда мы запускаем пакет вручную как есть (с параллельной обработкой), возникает та же ошибка.

Кто-нибудь здесь, пожалуйста, помогите найти причину этой проблемы?

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

Я полагаю, что эта проблема может возникнуть, если несколько заданий одновременно пытаются получить доступ к одному и тому же файлу. Возможно, вам придется проверить, является ли один CSV-файл источником для нескольких пакетов служб SSIS, если да, возможно, вам придется изменить свой подход. Когда один пакет пытается прочитать один файл CSV, он блокирует этот файл, так что другое задание не может изменить этот файл. Чтобы избавиться от этой проблемы, вы можете использовать последовательные DFT для тех задач, которые используют тот же CSV-файл как исходный и поддерживают другие DFT-файлы параллельно, как есть.

0 голосов
/ 14 апреля 2019

ИМХО, это ошибка использовать поток данных SSIS для вставки данных в хранилище данных SQL Azure.На ранних этапах были проблемы с драйверами, из-за которых производительность чудовищно замедлилась, и, хотя теперь они могут быть исправлены, оптимальным методом импорта данных в хранилище данных SQL Azure является Polybase.Поместите свои CSV-файлы в хранилище BLOB-объектов или озеро данных, а затем создайте ссылку на эти файлы, используя Polybase и внешние таблицы.Затем можно импортировать данные во внутренние таблицы с использованием CTAS, например, псевдокод

csv -> blob store -> polybase -> external table -> CTAS to internal table

. Если необходимо использовать SSIS, рассмотрите возможность использования только задачи «Выполнение SQL» в более подходе типа ELT или используйте Azure.Задача загрузки SQL DW , которая является частью пакета возможностей Azure для служб SSIS, который доступен по адресу здесь .

. Изучите этот учебный курс для более детального изучения этого подхода:

https://docs.microsoft.com/en-us/azure/sql-data-warehouse/design-elt-data-loading

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...