Экспорт большого объема данных из Oracle 10G в SQL Server 2005 - PullRequest
0 голосов
/ 11 июня 2010

Мне нужно регулярно экспортировать 100 миллионов строк данных (средняя длина строки ~ 100 байт) из таблицы базы данных Oracle 10G на сервер SQL (через WAN / VLAN с пропускной способностью 6 Мбит / с).Пока что это варианты, которые я попробовал, и краткое резюме.Кто-нибудь пробовал это раньше?Есть ли другие лучшие варианты?Какой вариант будет лучшим с точки зрения производительности и надежности?Требуемое время было рассчитано с использованием тестов для небольших объемов данных и последующей экстраполяции для оценки необходимого времени.

  1. Использование мастера импорта данных на сервере SQL или в пакетах служб SSIS для импорта данных.Выполнение задачи займет около 150 часов.
  2. Использование пакетного задания Oracle для помещения данных в плоский файл с разделителями-запятыми.Затем с помощью пакета служб SSIS отправьте этот файл по FTP на сервер SQL, а затем загрузите его непосредственно из плоского файла.Проблема здесь заключается в размере плоского файла, который, как ожидается, будет выполняться в ГБ.
  3. Хотя этот параметр существенно отличается, я даже рассматриваю возможность использования связанного сервера для запроса данных Oracle непосредственно при запуске-время, чтобы избежать ввода данных.Производительность - большая проблема, и у меня ограниченный контроль над базой данных Oracle с точки зрения создания табличных индексов.

С уважением,

Uniball

Ответы [ 2 ]

1 голос
/ 11 июня 2010

Я все время загружаю 50 ГБ файлов ... это то, что я делаю.Если у меня есть связанный сервер, я использую SSIS для загрузки таблицы, просто убедитесь, что вы выбрали FAST LOAD и Table Lock, установлен флажок make sute Table Lock, иначе это не будет действительно минимально зарегистрированная операция, ваша БД также имеетбыть в Simple или Bulk модели восстановления

см. изображение

alt text

Если я могу предпочесть bcp out, а затем BCP in или BULK INSERT

0 голосов
/ 11 июня 2010

Подумайте о том, чтобы разбить процесс на куски, чтобы вы могли выполнять кучу вещей параллельно.Например, если время экспорта 100 000 записей из Oracle в плоский файл равно времени копирования файла, равному времени импорта файла в SQL, вы можете создать систему, которая выполняет всеэти одновременно, как с конвейера.Таким же образом, если одна часть выходит из строя, вам не нужно начинать сначала.Очевидно, это потребует некоторых экспериментов.Вы не определяете «регулярную основу», которая может в какой-то мере диктовать дизайн, а загрузка системы является лишь одним из компромиссов.

...