Анализ предметной области, Архитектура Teradata - Разработка программного средства, позволяющего оптимизировать SQL-скрипты

Архитектура Teradata

Teradata Database - система массовой параллельной обработки данных. Поставляется она в виде комплекса оборудования и программного обеспечения. Также компания выделяет несколько специалистов, которые занимаются настройкой, техническим обслуживанием системы, мониторингом производительности, и могут консультировать разработчиков в случае необходимости.

Хранилища данных на основе СУБД Teradata имеют архитектуру "shared-nothing" - архитектуру распределенной обработки данных, где каждый узел независим, имеет свое дисковое пространство и вычислительную мощность [3]. Такая архитектура хорошо подходит для работы с большим объемом данных, так как легко масштабируется - добавление нового узла в систему требует минимум усилий.

верхнеуровневая архитектура субд teradata

Рис. 1 Верхнеуровневая архитектура СУБД Teradata

На рис. 1 показано устройство верхнеуровневой архитектуры Teradata. Рассмотрим компоненты, изображенные на нем, подробнее. Основные элементы архитектуры Teradata - Nodes (узлы) и BYNET-соединение между ними. Каждый из узлов представляет из себя отдельную машину с установленной OS и Parallel Database Extensions software.

Рассмотрим архитектуру детальнее, как показано на рис. 2.

архитектура субд teradata

Рис. 2 Архитектура СУБД Teradata

Основные компоненты архитектуры Teradata:

    - PE - Parsing Engine - MPL - Message Passing Layer - AMP - Access Module Processor - Vdisk - Virtual disk

Подробнее о каждой из них.

Parsing Engine отвечает за получение информации от пользователя (данные, SQL-скрипты), разбор и передачу инструкций на AMP'ы.

Работа PE состоит из четырех основных частей:

    ? Session Control - контроль сессии - проверяет настройки пользовательской сессии, проводит авторизацию пользователя. ? Parser - парсер - интерпретирует SQL-запрос, анализирует его на наличие синтаксических ошибок, проверяет по системной информации наличие всех необходимых объектов и полей в таблицах/представлениях ? Optimizer - оптимизатор - оценивает все возможные варианты и разрабатывает наименее затратный по времени план доступа к данным. После этого план запроса переводится в исполняемые шаги и передается диспетчеру. ? Dispatcher - диспетчер - контролирует последовательность исполнения команд, передает команды на слой передачи данных. Он включает в себя блоки контроля выполнения задач и контроля возвращаемого результата. Первый получает команды от оптимизатора, транслирует команды на соответствующие AMP'ы, получает отчеты о статусе выполнения команд, и передает данные блоку контроля результата после того, как все задействованные AMP'ы завершили работу. Также перед передачей очередной команды он проверяет, что предыдущий шаг был завершен на всех узлах. Второй блок возвращает результат пользователю.

Message Passing Layer - комбинация BYNET-соединения и PDE ПО. Передает команды или данные от PE на AMP'ы и возвращает результаты или статусы выполнения команд с AMP'ов на PE.

Access Module Processor - основной рабочий элемент системы. Он является ответственным за связанный c ним блок данных и выполняет всю работу, нужную, чтобы получить результат - сортировка, агрегирование, форматирование, конвертация, объединение данных из разных таблиц.

Virtual disk - дисковое пространство, выделенное для AMP'а, все данные таблиц, определенные на связанный AMP, хранятся в этой области.

Похожие статьи




Анализ предметной области, Архитектура Teradata - Разработка программного средства, позволяющего оптимизировать SQL-скрипты

Предыдущая | Следующая