Массовый импорт 1000 * .ixf файлов в базу данных DB2 - PullRequest
0 голосов
/ 05 июня 2018

У меня есть база данных DB2 в среде Ubuntu.Пустая база данных со всеми таблицами уже существует.Теперь я хочу импортировать 1000 соответствующих * .ixf файлов в базу данных.Кроме того, у меня есть файл * .msg для каждого файла.

Кто-нибудь знает, как это сделать?Спасибо, Джассен

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

У вас есть lst файл?если у вас это есть, то вы можете выполнить импорт db2move или загрузку db2move, а затем СУБД поместит все эти данные в базу данных.

Файлы ixf содержат определение таблицы плюс данные.

Файлы msg содержат информацию о времени экспорта.После выполнения импорта в db2move вы заново создадите эти файлы с информацией об импорте.

0 голосов
/ 05 июня 2018

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

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

Db2 в Linux очень программируется с помощью сценариев оболочки (например, с помощью bash).Это навык, который стоит изучить.

Вы также можете создавать сценарии такого типа на Perl, Python или любом другом языке сценариев.

Самый простой (и самый медленный) способ - использовать утилиту Db2 LOAD для последовательного внедрения файлов,

Более сложные способы включают параллельное использование утилиты Db2 LOAD в зависимости от количества доступных ядер и доступной пропускной способности ввода / вывода.Например, если у вас 32 ядра, у вас может быть 20 одновременных заданий загрузки, каждое из которых загружает отдельную таблицу с подзадачей, имеющей собственное подключение к базе данных.Этот подход не принесет пользы, если ваши контейнеры не находятся в сети SAN с достаточной пропускной способностью ввода / вывода.

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

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