2017-01-31 9 views
0

Я спрашиваю, как сделать что-то в SSIS, что является особенностью в datastage.как сказать SSIS не хранить данные во время соединения

Я вижу работу SSIS, где, если я собираюсь выполнить соединение или поиск, SSIS пытается «запомнить» все наборы данных до объединения. Мои наборы данных слишком велики, чтобы SSIS «запоминал» и вызывал перегрузки памяти.

В этом хранилище я могу избежать этого, имея стадии сортировки перед стадией соединения, и этап объединения монополизирует это, используя «сортированное соединение», тогда как весь набор данных не хранится в памяти, но сразу соединяется и отправляется на следующий этап, пока выполняется соединение, сохраняя память. этап сортировки также позволяет сортировать во время подключения источника и просто «скажем, что он отсортирован». В любом случае, данные не сохраняются до полного запоминания. Они передаются, когда происходит ajoin.

Как это сделать в SSIS? Спасибо.

ответ

0

Ну, из того, что я понял, вы не хотите, чтобы SSIS хранила данные в памяти, потому что набор данных слишком велик и вызывает ошибку, не так ли? В Задаче преобразования преобразования вы можете выбрать, как вы хотите, чтобы SSIS обрабатывал ваши данные с помощью режима кэша (я работал с этим в BIDS 2008). В основном у вас есть 3 варианта:

  • Полный кэш: база данных запрошенные и «Запоминает» в данных ПЕРЕД делать какие-либо преобразования или вставить в него.
  • Частичный кэш: использует частичный кеш, и если совпадение не найдено, запрашивает базу данных.
  • No Cache: Он не поддерживает кэш Lookup, поэтому он запрашивает базу данных для каждой строки.

Вы можете найти более подробную информацию о режиме кэширования Уточняющего here

Надеется, что это было то, что вы искали

0

Вместо поиска, вы должны использовать совмещенные Присоединяйтесь трансформациями.

Merge Join частично блокирует, что означает, что входящие строки необходимо сортировать, а выход сохраняется только до тех пор, пока ни одна из входящих клавиш не переместится на новое значение.

This article объясняет, как объединение объединений работает более исчерпывающим образом, чем я. Если эта ссылка когда-либо гаснет, просто запустите Google «Объединение слияния SSIS».

Но вам нужно знать, что ваши исходные компоненты должны быть отсортированы по клавишам, на которые вы будете на них. Затем объединение Merge Join будет «запоминать» столько данных, сколько необходимо для каждой возможной комбинации JOIN, а затем выдает их остальной части потока данных, когда обрабатывает следующую комбинацию.

Другими словами, он делает именно то, о чем вы просите.