понедельник, 7 февраля 2011 г.

ODI 11g. Настройка агентов (Setting up Agents).

Последняя публикация в серии переводов некоторых частей документа Oracle Data Integrator Best Practices for a Data Warehouse.


Где инсталлировать агента(ов)?

Типичная для хранилищ данных ситуация, когда для загрузки данных используется несколько агентов ODI. При этом агенты обычно устанавливаются на том сервере, который используется для загрузки данных в ХД. Агенту необходима возможность подключения к БД источников данных и(или) к файлам с данными для загрузки, а также агент должен иметь возможность вызова утилит для выгрузки/загрузки данных для соответствующих СУБД.

В Oracle Data Integrator версии 11g имеется возможность использования Java EE агентов, которые инсталлируются на сервер приложений Java EE, и могут пользоваться всеми возможностями этого сервера. Использование этого типа агентов рекомендуется, когда ваши требования включают необходимость централизованного развертывания и управления агентами или в случае необходимости обеспечения высокой доступности агентов.

Скорость обмена данными по сети, между сервером с агентами и сервером с ХД, должна быть достаточной для пересылки того объема данных утилитами загрузки, которым планируется манипулировать в процессе работы. С другой стороны, агенту необходим доступ также и к системам источникам данных, поэтому вопросу пропускной способности между источниками и сервером с агентами, также должно быть уделено достаточное внимание.

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

В обычной ситуации, будут проинсталлированы:
  • 1 физический агент для группы разработки, предпочтительно на той же операционной системе, что и для пром сервера загрузки.
  • 1 физический агент, разделяемый между группой тестирования, группой поддержки и группой приемки. Так же, старайтесь использовать ту же ОС, что и для пром сервера.
  • 1 физический агент для пром сервера.

Использование балансировки загрузки

В некоторых случаях единственный агент, используемый для запуска сессий загрузки, может стать узким местом, особенно если ему придется взаимодействовать с большим количеством параллельно выполняющихся сессий загрузки. Например, представьте, что вам необходимо получить данные из 300 источников данных. Если вы будете выполнять это в параллельном режиме на одном агенте, это может привести к перегрузке, так как потребуется открыть 300 потоков, по одному на каждую сессию. Чтобы избежать этого, необходимо использовать балансировку загрузки с помощью нескольких агентов.

Для настройки балансировки загрузки в Oracle Data Integrator, необходимо проделать следующее в Навигаторе Топологии:
  • Определите агента, ответственного за балансировку загрузки. В последующем его будем называть мастер агентом. Мастер агент обычно имеет всего лишь 2 одновременно выполняющихся сессии. Все сценарии, которые будут запускаться этим агентом, будут запущены с параметром -AGENT, который определит конкретного агента для выполнения.
  • Определите несколько дочерних агентов, которые будут непосредственно исполнять запущенные сценарии. Определите максимальное количество сессий для каждого агента в размере от 2 до 20.
  • Измените статус мастер агента в Навигаторе Топологии и, на вкладке Балансировка загрузки (Load Balancing) выберите для использования всех дочерних агентов.

Диаграмма ниже показывает пример схемы настройки балансировки загрузки:


В этом примере 4 агента проинсталлированы на 2 разных серверах. Каждый из агентов ограничен максимально тремя конкурентно выполняющимися сессиями. Мастер агент установлен на отдельном сервере.

Мастер агент получает 14 запросов на одновременное выполнение сценариев. Он перенаправляет эти запуски на доступных агентов. Каждый агент будет запускать 3 сценария в параллель, и первые два агента просто поставят по одному запуску в очередь запусков. Как только одна из сессий завершится, агент возьмет сценарий из очереди, и начнет его выполнять.

Мастер агент рассчитывает загрузку каждого агента исходя из ограничений на количество одновременных запусков для каждого из них и реального количества запущенных сессий. Мастер агент распределяет входящие запросы на запуски между всеми агентами, а затем снова рассчитывает текущую загрузку каждого агента. Сессии, ожидающие запуска могут быть перенаправлены с одного агента, на другого, таким образом вся система загрузки становится сбалансированной.

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

Примечание: максимальное количество агентов, так же как и максимальное количество сессий для каждого агента зависит от характеристик вашей системы. Главное узкое место в этом подходе - СУБД, в которой находятся репозитории ODI, так как каждый агент читает и сохраняет данные в одни и те же таблицы репозитория. Рекомендуется выделять отдельный сервер с СУБД для репозиториев ODI, и настраивать работу этого сервера с точки зрения уменьшения блокировок и увеличения производительности.



Ссылки по теме:
модуль знаний
одна сессия в субд
что такое сценарий
инсталляция агента

Комментариев нет:

Отправить комментарий