Проблемы с загрузкой данных LKM из Oracle 12c в базу данных SQL в Azure - PullRequest
2 голосов
/ 12 июня 2019

Я пытаюсь создать модули загрузки знаний (LKM), которые передают данные (около 2–3 миллионов строк) из таблицы, расположенной в Oracle (служба источника), в базу данных MS SQL в Azure (промежуточная область). Поэтому я не могу использовать, например, LKM SQL для AZURE, потому что он слишком медленный.

В руководстве я нашел информацию, что используется лучшее решение:

5.1.3.3 Загрузка с использованием Unload / Load

Когда исходный набор результатов находится на удаленном сервере базы данных, альтернативное решение использования агента для передать данные, чтобы выгрузить их в файл, а затем загрузить этот файл в области постановки. Обычно это самый эффективный метод, когда работа с большими объемами по разнородным технологиям. За Например, вы можете выгрузить данные из источника Microsoft SQL Server, используя bcp и загрузите эти данные в промежуточную область Oracle, используя SQL * Loader. Шаги LKM, которые следуют этой стратегии, часто следующие:

  1. Удалите и создайте загрузочный стол в области подготовки
  2. Выгрузка данных из источника во временный плоский файл с помощью любой утилиты выгрузки базы данных (например, Microsoft SQL Server). bcp или DB2 unload) или встроенный инструмент OdiSqlUnload.
  3. Создание сценария, необходимого для утилиты загрузки для загрузки временного файла в таблицу загрузки.
  4. Выполните соответствующую команду операционной системы, чтобы запустить загрузку и проверить ее код возврата.
  5. Возможно, проанализируйте все файлы журналов, созданные утилитой, для обработки ошибок.
  6. Удалить таблицу загрузки после завершения интеграции KM и удалить временный файл.

При использовании стратегии выгрузки / загрузки данных нужно поставить дважды: один раз во временный файл и второй раз в таблице загрузки, что приводит к дополнительному использованию дискового пространства и потенциальные проблемы эффективности. Более эффективной альтернативой было бы используйте конвейеры между утилитой "unload" и утилитой "load". К сожалению, не все операционные системы поддерживают файловые трубопроводы (ФИФО).

Если я правильно понимаю примечание выше (пункты 2, 3, 4), поток будет выглядеть так:

Source table(Source Service) -> Flat file(Staging Area on Azure) -> Azure table(Staging Area on Azure)

Я нашел OdiSqlUnload объект, я пытаюсь выгрузить данные в файл, и я следую: http://odiexperts.com/calling-odisqlunload-using-odi-procedure-with-no-hardcoded-password/

Мои настройки: enter image description here enter image description here

Но это не работает. Я получаю сообщение об ошибке:

Caused By: com.sunopsis.sql.SnpsMissingParametersException: ODI-30011: Parameter cannot be null:-DRIVER

Можете ли вы дать мне несколько советов, как я могу справиться с этим или аналогичным примером работы?

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