Мне нужно объединить данные из 30 баз данных и 20 таблиц. Моей первой попыткой было создать один поток данных для каждой таблицы. Каждый поток данных будет иметь источники 30 дБ, которые получают данные из 1 таблицы из каждого дБ, а затем вставляют в 1 место назначения. Это не работает, потому что не хватает памяти. Я пытался отфильтровать данные, чтобы игнорировать данные, которые не будут использоваться - это не помогло. Эти задачи следует выполнять ежедневно. Whole Consolidation db удаляется, а затем вставляются новые данные, что означает, что огромные объемы данных вставляются ежедневно. У кого-нибудь есть предложения, как справиться с проблемой памяти?
Единственное решение, которое я вижу сейчас, - это создать 20 пакетов. Каждый пакет будет иметь 30 потоков данных. Каждый поток данных будет принимать данные только из одной базы данных. Но опять же, я не знаю, каков порядок исполнения? Будут ли потоки данных одного пакета запускаться одновременно или они будут выполняться один за другим?
EDIT:
Вот как я это сделал ... вот скриншот потока управления:
Скриншот потока данных:
Я создал один пакет для одной таблицы из всех баз данных. В этом случае каждый поток данных берет данные из таблицы за 4 года и импортирует их в исходную базу данных. Проблема в том, что у меня есть одна таблица в одной базе данных, которая содержит слишком много данных и возвращает ошибку:
Диспетчеру буфера не удалось вызвать выделение памяти для 10484608 байт,
но не смог поменять буферы, чтобы уменьшить нагрузку на память. 20
буферы были рассмотрены и 20 были заблокированы. Либо не хватает памяти
доступно для конвейера, потому что недостаточно установлено, другие
процессы использовали его, или слишком много буферов заблокировано.
Есть предложения?