Informatica CDC Mapping: группа Source медленно выбирает записи

У нас есть 37 сессий Informatica, в которых большинство сессий имеют в среднем около 25 столов. Несколько сессий имеют 1 таблицу в качестве источника и цели. Наш источник - Oracle, а цель - база данных Greenplum. Мы используем Powerexchange 10.1, установленный в Oracle, для получения наших Измененных записей.

Мы заметили, что для сеансов с большим количеством таблиц требуется больше времени для извлечения данных и обновления в целевом объекте. Делает ли добавление дополнительных таблиц задержку в обработке? В таком случае, как настроить, чтобы получить записи как можно быстрее?

1 ответ

Решение

Мы запустили 19 сопоставлений CDC, содержащих от 17 до 90 таблиц в каждой, и недавно добились прорыва в производительности. Количество таблиц не является для нас самым существенным ограничивающим фактором, как центр электропитания и обмен электроэнергией. Наш источник - DB2 в z/OS, но это, вероятно, не важно... Вот что мы сделали:

1) мы увеличили размер блока буфера DTM до 256 КБ, а размер буфера DTM - до 1 ГБ или более, для "сложного" отображения требуется много буферных блоков.

2) мы изменяем атрибуты соединения на: - латентность сброса в реальном времени =86000 (макс. Настройка); - размер фиксации в сеансе был установлен на очень высоком уровне (чтобы разрешить вышеупомянутую настройку в качестве решающего фактора); как указано выше) - максимальное количество строк на коммит =0 - минимальное количество строк на коммит = 0

3) мы установили для свойства сеанса "стратегия восстановления" значение "сбой задачи и продолжить рабочий процесс" и реализовали собственное решение для создания "файла перезапуска токена" с нуля при каждом запуске рабочего процесса. Только немного не по теме: способ, которым мы реализовали это, был с помощью дополнительной таблицы (мы называем это таблицей SYNC), содержащей только одну строку. Эта строка обновляется каждые 10 минут в источнике очень надежным запланированным процессом (небольшая программа CICS). Содержимое этой таблицы записывается в целевую базу данных один раз для каждого рабочего процесса, и в сопоставление добавляется дополнительный столбец, содержащий содержимое $$PMWorkflowName. Помимо столбца рабочего потока, два столбца DTL__Restart1 и *2 также записываются в цель. Во время запуска рабочего процесса мы запускаем небольшой повторно используемый сеанс перед фактическим сеансом CDC, который считывает запись для текущего рабочего процесса из таблицы SYNC на целевой стороне и создает файл RESTART с нуля. [обратите внимание, что в конечном итоге вы получите дубликаты продолжительностью до 10 минут (от времени начала рабочего процесса). Мы принимаем это и собираем это во всех отображениях, читая из них]

Попробуйте поработать с их комбинациями и расскажите, что вы испытываете. Теперь у нас есть максимальная пропускная способность в 10-минутном интервале 10-100 миллионов строк на отображение. Наша цель - Netezza (он же КПК от IBM)

Еще одна вещь, которую я могу вам сказать: каждый раз, когда запускается коммит (каждые 86 секунд с указанными выше настройками), power center будет очищать все свои буферы записи для всех таблиц в одной большой области фиксации. Если какой-либо из них заблокирован другим процессом, вы можете столкнуться с большим количеством каскадных блокировок на стороне записывающего устройства, что сделает CDC медленным.

Другие вопросы по тегам