Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Мониторинг импорта / 11 сообщений из 11, страница 1 из 1
22.12.2010, 11:43
    #37029143
0ri0n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг импорта
Подскажите, можно ли как-то мониторить процесс импорта большого объема данных в таблицу? Я запустил импорт нескольких десятков миллионов строк в таблицу (с COMMITCOUNT=2000), прошел день, команда все еще выполняется, попробовал сделать запрос select count(*) к таблице - он подвис. Как можно узнать, сколько строк уже вставлено?
...
Рейтинг: 0 / 0
22.12.2010, 12:18
    #37029243
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг импорта
0ri0n,

Указывайте файл сообщений в messages, оно туда пишет.
...
Рейтинг: 0 / 0
22.12.2010, 14:22
    #37029546
0ri0n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг импорта
Да, спасибо.

Попробовал грузить этот IXF файл с данными командой LOAD - получаю ошибку
SQL3004N The filetype parameter is not valid.
В описании сказано в том числе, что
"IXF files cannot be used to load into a table defined in a partitioned database."
У меня БД партицирована. Можно ли как-нибудь обойти ошибку? Или самая быстрая загрузка, какую я могу использовать для этого IXF файла - это импорт?
...
Рейтинг: 0 / 0
22.12.2010, 14:50
    #37029642
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг импорта
0ri0nПопробовал грузить этот IXF файл с данными командой LOAD - получаю ошибку
SQL3004N The filetype parameter is not valid.
В описании сказано в том числе, что
"IXF files cannot be used to load into a table defined in a partitioned database."
У меня БД партицирована. Можно ли как-нибудь обойти ошибку? Или самая быстрая загрузка, какую я могу использовать для этого IXF файла - это импорт?Вы можете грузить в партицированную таблицу load'ом только с CONFIG MODE LOAD_ONLY_VERIFY_PART
Loading data in a partitioned database environment
т.е. когда известно, что в ixf - только данные для текущей партиции.
Иначе вы можете загрузить ixf в непартицированную таблицу load'ом, а потом сделать load from cursor в целевую.
...
Рейтинг: 0 / 0
22.12.2010, 15:33
    #37029809
0ri0n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг импорта
Марк, спасибо, прочту. Таблица, в которую я гружу данные, создана мной без всяких параметров партицирования. А вот БД скорее всего партицирована.

Еще вопрос по странному поведению импорта - экспорт был сделан из таблицы запросом
select cast(col1 as double) from T1,
столбец col1 имел тип decimal(18, 2). Соответственно, сейчас в таблицу T2, где col1 имеет тип decimal(18, 2), импорт не идет, т.к. тип столбцов не совпадает. Но импорт так же не идет и в таблицу T3, где col1 имеет тип double:
Код: plaintext
1.
SQL3168W  The PC/IXF column specified to be loaded into database column "col1" is not compatible with the database column.
Nulls will be inserted.
Почему тип не совместим, и в какой тип можно будет загрузить данные? Может быть есть возможность при импорте делать преобразование типов?
...
Рейтинг: 0 / 0
23.12.2010, 10:00
    #37030947
0ri0n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг импорта
Нашел причину ошибок, она была не в типах данных, а в порядке следования выгружаемых столбцов в операторе select при экспорте и следовании столбов таргет-таблицы при ее создании, этот порядок отличался (в примере я не указал всех выгружаемых/загружаемых столбцов). Получается, при импорте DB2 вставляет значения в таблицу не по именам столбов, а по порядку следования значений в файле экспорта - первое значение в первое поле таблицы, второе во второе, и т.д.
После пересоздания таблицы с совпадающим порядком столбцов импорт заработал. Но скорость очень мала, а LOAD запустить так и не удалось, не грузились данные даже не в партицированную таблицу. Использование указанных опций пока невозможно, т.к. файл экспорта лежит на моем клиенте, а в документации сказано, чтоавторYou cannot use the LOAD_ONLY or LOAD_ONLY_VERIFY_PART modes with the CLIENT option.
Еще попробовал для ускорения воспользоваться опцией NOT LOGGED INITIALLY:
Код: plaintext
1.
ALTER TABLE ... ACTIVATE NOT LOGGED INITIALLY;
IMPORT FROM 'C:\....ixf' OF IXF RESTARTCOUNT  50000  MESSAGES 'C:\....msg' INSERT INTO ...;
Команда импорта зависла. Если после операции ALTER поставить COMMIT, то импорт начинает работать, но, как я понимаю, COMMIT сбрасывает настройку NOT LOGGED INITIALLY? (Клиент Quest Central for DB2, autocommit отключен).
...
Рейтинг: 0 / 0
23.12.2010, 10:28
    #37031013
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг импорта
0ri0nНашел причину ошибок, она была не в типах данных, а в порядке следования выгружаемых столбцов в операторе select при экспорте и следовании столбов таргет-таблицы при ее создании, этот порядок отличался (в примере я не указал всех выгружаемых/загружаемых столбцов). Получается, при импорте DB2 вставляет значения в таблицу не по именам столбов, а по порядку следования значений в файле экспорта - первое значение в первое поле таблицы, второе во второе, и т.д.Для этого в команде import можно использовать METHOD N с указанием колонок.
0ri0nПосле пересоздания таблицы с совпадающим порядком столбцов импорт заработал. Но скорость очень мала, а LOAD запустить так и не удалось, не грузились данные даже не в партицированную таблицу.Почему не грузились? Как именно запускался LOAD, и какие ошибки были?0ri0nЕще попробовал для ускорения воспользоваться опцией NOT LOGGED INITIALLY:
Код: plaintext
1.
ALTER TABLE ... ACTIVATE NOT LOGGED INITIALLY;
IMPORT FROM 'C:\....ixf' OF IXF RESTARTCOUNT  50000  MESSAGES 'C:\....msg' INSERT INTO ...;
Команда импорта зависла. Если после операции ALTER поставить COMMIT, то импорт начинает работать, но, как я понимаю, COMMIT сбрасывает настройку NOT LOGGED INITIALLY? (Клиент Quest Central for DB2, autocommit отключен).Да.
...
Рейтинг: 0 / 0
23.12.2010, 11:16
    #37031161
0ri0n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг импорта
Mark BarinsteinПочему не грузились? Как именно запускался LOAD, и какие ошибки были?Запускаю с клиента для загрузки тестовой непартицированной таблицы:
Код: plaintext
1.
2.
3.
4.
LOAD CLIENT FROM 'C:\t2.ixf' OF IXF 
MESSAGES 'C:\t2.msg' INSERT INTO T2;

SQL3004N  The filetype parameter is not valid.
Statement processed with ERROR.
Файл сообщений пустой.

Mark Barinstein0ri0nЕще попробовал для ускорения воспользоваться опцией NOT LOGGED INITIALLY:
ALTER TABLE ... ACTIVATE NOT LOGGED INITIALLY;
IMPORT FROM 'C:\....ixf' OF IXF RESTARTCOUNT 50000 MESSAGES 'C:\....msg' INSERT INTO ...;
Команда импорта зависла. Если после операции ALTER поставить COMMIT, то импорт начинает работать, но, как я понимаю, COMMIT сбрасывает настройку NOT LOGGED INITIALLY? (Клиент Quest Central for DB2, autocommit отключен). Да.А как можно объяснить, что без коммита после alter table команда импорта виснет?
...
Рейтинг: 0 / 0
23.12.2010, 12:20
    #37031385
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг импорта
0ri0nMark BarinsteinПочему не грузились? Как именно запускался LOAD, и какие ошибки были?Запускаю с клиента для загрузки тестовой непартицированной таблицы:
Код: plaintext
1.
2.
3.
4.
LOAD CLIENT FROM 'C:\t2.ixf' OF IXF 
MESSAGES 'C:\t2.msg' INSERT INTO T2;

SQL3004N  The filetype parameter is not valid.
Statement processed with ERROR.
Файл сообщений пустой.Да, с клиента вы не загрузите из ixf...
0ri0nА как можно объяснить, что без коммита после alter table команда импорта виснет?Трудно сказать, почему оно виснет.
Может из-за переполнения логов, может из-за того, что при commit в этом случае надо все гразные страницы для таблицы сбросить на диск (и оно долго идёт, создавая эффект "зависания"), может ещё из-за чего.
Это состояние приложения смотреть в этот момент.
Вы бы лучше не использовали not logged initially, а вместо этого commit count выставляли.
...
Рейтинг: 0 / 0
23.12.2010, 13:20
    #37031566
0ri0n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг импорта
Mark BarinsteinДа, с клиента вы не загрузите из ixf...Получается, из IXF нельзя грузить данные LOAD'ом даже в непартицированные таблицы (если БД партицирована)?
Mark BarinsteinТрудно сказать, почему оно виснет.
Может из-за переполнения логов, может из-за того, что при commit в этом случае надо все гразные страницы для таблицы сбросить на диск (и оно долго идёт, создавая эффект "зависания"), может ещё из-за чего.
Это состояние приложения смотреть в этот момент.
Вы бы лучше не использовали not logged initially, а вместо этого commit count выставляли.Я тестировал на пустой таблице с NOT LOGGED INITIALLY загрузку импортом 3 строчек, логи не могли переполниться. Та сессия, в которой я запустил импорт нескольких строк в тестовую таблицу с NOT LOGGED INITIALLY вчера, до сих пор висит. В DB2 не нужно каждую DDL команду завершать коммитом, чтобы следующий после этой команды DML оператор (insert/update/delete, а импорт как раз генерирует insert'ы, как я понимаю) мог отработать?

COMMITCOUNT я выставил в 50000, сейчас идет загрузка в таблицу, но очень медленно - около 800 строк в секунду, с такой скоростью таблица будет загружаться неделю. Кстати, таблица создана с параметрами COMPRESS YES VALUE COMPRESSION - насколько сильно они могут влиять на производительность операций вставки?
...
Рейтинг: 0 / 0
23.12.2010, 14:06
    #37031693
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мониторинг импорта
0ri0nПолучается, из IXF нельзя грузить данные LOAD'ом даже в непартицированные таблицы (если БД партицирована)?С клиента - нет, с сервера - можно.0ri0nКстати, таблица создана с параметрами COMPRESS YES VALUE COMPRESSION - насколько сильно они могут влиять на производительность операций вставки?Не должно это сильно влиять.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Мониторинг импорта / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]