Импорт данных SSIS с резюме - PullRequest
4 голосов
/ 10 января 2012

Мне нужно отправить большую таблицу SQL из локального экземпляра в SQL Azure.Передача - это простая, «чистая» загрузка - просто поместите данные в новую пустую таблицу.

Таблица очень большая (~ 100 миллионов строк) и состоит только из идентификаторов GUID и других простых типов (нетотметка времени или что-либо еще).

Я создаю пакет служб SSIS с помощью мастера импорта / экспорта данных в SSMS.Пакет работает отлично.

Проблема заключается в том, что пакет запускается по медленному или прерывистому соединению.Если подключение к Интернету обрывается на полпути, то нет способа «возобновить» передачу.

Каков наилучший подход к разработке пакета служб SSIS для загрузки этих данных возобновляемым способом?т. е. в случае сбоя соединения или для разрешения выполнения задания только между определенными временными окнами.

Ответы [ 2 ]

4 голосов
/ 11 января 2012

Обычно в такой ситуации я бы разработал пакет так, чтобы он перечислял по пакетам размером N (1k строк, 10M строк и т. Д.) И записывал в таблицу обработки, какой будет последняя успешная переданная партия.Однако с GUID вы не можете полностью разбить их на сегменты.

В этом конкретном случае я бы изменил ваш поток данных так, чтобы он выглядел как Источник -> Поиск -> Назначение.В своем преобразовании поиска запросите сторону Azure и получите только ключи (ВЫБЕРИТЕ myGuid FROM myTable).Здесь мы будем интересоваться только строками, которые не совпадают в наборе записей поиска, поскольку они ожидают передачи.

Полный кэш будет стоить около 1,5 ГБ (100 М *16 байт) памяти при условии, что сторона Azure была полностью заполнена, плюс связанные с этим расходы на передачу данных.Эта стоимость будет меньше, чем усечение и повторная передача всех данных, но я просто хочу убедиться, что я их вызвал.

3 голосов
/ 11 января 2012

Просто закажите ваш GUID при загрузке.И убедитесь, что вы используете max (guid) из Azure в качестве отправной точки при восстановлении после сбоя или перезапуска.

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