Принятие правильных управленческих решений — краеугольный камень успеха бизнеса в высококонкурентной среде. Постоянно растущий объем информации вынуждает руководителей обеспечить не только хранение огромных массивов данных, но и организовать их оперативную обработку с целью извлечения ценной информации для принятия взвешенных решений, причем часто — в реальном времени. Современные требования аналитиков можно сформулировать следующим образом:
- возможность принятия решений на основе всей доступной информации;
- использование инструментов, способных в реальном времени поставлять результаты для принятия решений;
- возможность настройки «на лету» форматов отчетов в соответствии с меняющимися условиями бизнеса.
Проблема Больших Данных вызвана не столько их объемами, сколько неспособностью старых методов справиться с потоками, поступающими из огромного числа внешних и внутренних источников разнообразных данных, имеющих различную структуру и схемы индексации, поэтому требуются новые решения, такие как SAS High-Performance Analytics (рис. 1), в основе которого лежат три технологии: аналитика в СУБД (In-Database Analytics); аналитика в памяти (In-Memory Analytics); распределенные вычисления (Grid Computing).
Рис. 1. Структура пакета SAS High-Performance Analytics |
Аналитика в СУБД
Grid-службы для интеграции распределенных систем
Архитектура Open Grid Services Architecture позволяет интегрировать ресурсы в распределенных, гетерогенных, динамических виртуальных организациях как внутри одного предприятия, так и в среде внешних поставщиков услуг. Ян Фостер, Карл Кессельман, Джеффри Ник, Стивен Тьюке |
Исходными данными для систем предиктивной, или прогнозной, аналитики являются данные из хранилищ. Один из подходов к их обработке заключается в том, что данные сначала помещают в промежуточные витрины, не зависящие от приложений, а затем переносят в специализированные аналитические витрины, с которыми уже работают эксперты, применяя аналитические инструменты интеллектуального анализа. Такой многоступенчатый подход приемлем для относительно небольших объемов данных, но при их увеличении и при повышении требований к оперативности получения результатов анализа имеет ряд недостатков. Помимо необходимости в перемещении данных, существование множества независимых аналитических витрин усложняет физическую и логическую ИТ-инфраструктуру, приводит к росту числа используемых инструментов анализа и моделирования. Более того, полученные разными аналитиками результаты оказываются несогласованными, а вычислительные мощности и каналы используются далеко не оптимально. Кроме того, раздельное существование хранилищ данных и специализированных аналитических витрин делает практически невозможной аналитику в реальном времени.
В подходе In-Database Analytics данные обрабатываются и анализируются непосредственно в базе, что ускоряет работу и позволяет в реальном времени выполнять регрессионный анализ, прогнозирование, скоринговые оценки и др. Ускорение достигается не только за счет избавления от перемещений из хранилища в витрины, но и за счет применения специального кода, вызывающего оптимизированные под быструю обработку данных библиотеки и функции поставщиков СУБД. Такой функционал обеспечивается благодаря применению следующих программных компонентов:
- SAS Scoring Accelerator — преобразование скоринговых моделей, созданных в рамках продукта SAS Enterprise Miner для интеллектуального анализа данных, в специфические для конкретной СУБД функции с целью более быстрого получения прогнозных результатов;
- SAS Analytic Accelerator — преобразование основных статистических и аналитических функций SAS (SAS/STAT, SAS/ETS и т. п.) в команды, понимаемые конкретной СУБД, для минимизации перемещения данных между системой SAS и СУБД
Аналитика в памяти
Основой решений In-Memory Analytics является технология SAS LASR Analytic Server, позволяющая размещать данные для анализа в оперативной памяти серверов с целью повышения производительности аналитических систем, получения новых возможностей визуализации, интерактивности, масштабируемости, оптимизации и упрощения управления. Платформа SAS LASR Analytic Server обеспечивает безопасную, многопользовательскую среду для одновременного доступа к данным в памяти, позволяющую быстро обрабатывать запросы к данным большого объема за счет многопоточности и распараллеливания.
Когда набор данных или таблица загружены в память платформы, они находятся там до тех пор, пока, например, таблица не будет удалена или сервер не завершит работу, причем без ограничений на количество загружаемых таблиц, имеющих уникальное имя. Это стало возможным за счет организации работы в распределенной вычислительной среде. Платформа образована из нескольких машин со своей системой хранения и оперативной памятью (48–96 Гбайт). Аналитический сервер LASR не пишет данные на диск, а только загружает их с диска в почти неизмененном виде, что эффективно при его размещении в одном месте с распределенным поставщиком данных. Сейчас поддерживаются три системы хранения: Hadoop (файловая система HDFS), EMC Greenplum и Teradata. Аналитический сервер LASR не предоставляет механизма репликации и отказоустойчивости, а использует штатные средства системы хранения от конкретного поставщика.
Аналитический сервер LASR имеет архитектуру клиент-сервер и построен на платформе x86 под управлением 64-разрядной ОС Linux. В зависимости от режима работы возможна организация соединения либо на один сервер с Linux, либо на все серверы.
На рис. 2 приведена схема работы LASR Analytic Server на платформе Hadoop. Внутри каждого узла Hadoop процесс принимает входящие команды и возвращает результаты обработки. При этом нет необходимости устанавливать ПО от SAS на каждый узел — система Hadoop сама позаботится о распространении обработки, управлении памятью, контроле работы и управлении рабочей нагрузкой.
Рис. 2. Схема работы LASR Analytic Server на платформе Hadoop |
В зависимости от потребностей обработки и размера данных, можно принимать данные из слоя хранения Hadoop и загружать их в сервер или же обойти слой Hadoop, загрузив данные напрямую в аналитический сервер SAS LASR (левая часть рис. 2). В верхней части рис. 2 показаны клиентские приложения, которые могут работать с аналитическим сервером LASR.
Результатом сотрудничества с компаниями EMC и Teradata стало решение по запуску аналитических приложений SAS в распределенной вычислительной среде для переноса процессов обработки непосредственно к данным, а не наоборот, как в традиционных аналитических системах, в которых данные передаются приложениям (рис. 3).
Рис. 3. Схема переноса процессов обработки к данным |
Массово-параллельные системы (Massive Parallel Processing, MPP), не имеющие общей системы хранения (shared-nothing), и реляционные СУБД, такие как Teradata и Greenplum, — хороший выбор для технологии «аналитика в памяти». Они обеспечивают распространение данных, управление процессом и управление памятью, которые необходимы для работы аналитики наряду с реляционной обработкой.
Распределенные вычисления
Идея аналитических вычислений в среде грид реализована в продукте SAS Grid Manager. Он предназначен для организации распределенной вычислительной среды с централизованным управлением, которая обеспечивает высокую производительность аналитических вычислений за счет распараллеливания.
Рис. 4. Схема распределенной вычислительной среды |
На рис. 4 показана функциональная схема среды грид с основными компонентами: сервер метаданных, сервер управления, узлы грид и клиентские места.
Информационные потоки в среде SAS Grid Computing разбиты на шесть течений:
- поток метаданных для обеспечения обмена, управления информацией о данных и конфигурирования системы (управление потоком реализовано в SAS Metadata Server);
- поток для управления планировщиком заданий, синхронизацией управляющих воздействий между сервером управления и узлами грид, мониторингом состояния всех составных частей грид (реализуется в Platform LSF);
- поток управления из консоли SAS Management Console;
- основной поток обработки данных, передачи журналов работы приложений и сервисов SAS;
- поток управления вычислительными ресурсами сервера и узлов грид;
- поток управления высокой доступностью сервера метаданных (реализуется средствами Enterprise Grid Orchestrator) — при сбое основного сервиса метаданных его копия запускается на другой машине.
На стороне клиента создается задание — программа, которая разделяется на независимые блоки, отправляемые в грид для выполнения расчетов. Каждый блок адресуется к наименее загруженному в данный момент узлу. Затем ответы возвращаются на клиент для формирования общего результата выполнения задания. Для эффективной работы рекомендуется размещать каждый из компонентов на отдельной машине. Производительность зависит от количества узлов — чем их больше и чем мощнее каждый из них, тем выше производительность всей системы. Ограничением будет пропускная способность сети и контроллеров системы хранения.
Инструментарий SAS Grid Computing позволяет масштабировать инфраструктуру путем добавления новых узлов для обслуживания новых пользователей и обработки новых объемов данных. Можно проводить изменения в динамическом режиме без нарушения работоспособности системы — обновляемые узлы будут недоступны на момент обновления, а их нагрузка будет распределяться между оставшимися узлами.
При работе в среде SAS Grid Manager у продуктов и решений SAS появляются новые возможности.
- Планировщик заданий. Типичная задача для администраторов состоит обычно в правильном планировании выполнения таких зависимых друг от друга заданий, как загрузка данных, создание аналитических отчетов, расчет маркетинговых кампаний. Компонент Schedule Manager позволяет создавать потоки заданий и регламентировать их выполнение в зависимости от времени или файла с описанием необходимых действий (событий).
- Балансировка нагрузки. Используется при одновременном запуске пользователями нескольких ресурсоемких приложений, что типично для большинства корпоративных аналитических сред. Бесконтрольность этого процесса приводит к нехватке вычислительных ресурсов и к сбою в работе системы. SAS Grid Manager предоставляет интерфейс управления политиками, определяющими приоритеты для пользователей и заданий, предотвращает массовое выполнение запросов, приводящих к деградации производительности.
- Управление параллельными заданиями. Эта возможность предоставляется в приложениях SAS, которые распараллеливают задания, состоящие из независимых блоков. Главное преимущество распределенного параллельного выполнения заданий — увеличение производительности.
- Обеспечение отказоустойчивости сервисов. При использовании одного большого сервера его сбой может привести к прекращению работы всей системы. Для исключения такой ситуации в грид предусмотрена избыточность — при выходе из строя одного из узлов, задания будут выполняться на другом.
- Обеспечение высокой доступности сервисов. В системах с большим количеством сервисов возникает ситуация, когда недоступность одного из них может привести к потере работоспособности всей системы. В таком случае копия недоступного сервиса выполняется на другом узле грид.
- Обеспечение высокой доступности заданий. В случае, если большое задание нельзя разделить на независимые блоки, важно выполнять мониторинг процесса его выполнения при помощи контрольных точек, автоматически перезапуская ресурсоемкие задания с момента сбоя.
***
Задачи исследования, анализа и обработки Больших Данных не могут быть решены с использованием традиционных подходов. Применение SAS High Performance Analytics позволяет решать задачи обработки больших объемов аналитических данных, строить и выполнять комплексные сценарии анализа и почти в режиме реального времени принимать оперативные управленческие решения.
Алексей Лоншаков (Alexey.Lonshakov@rus.sas.com) — руководитель отдела технических архитекторов компании SAS Россия/СНГ (Москва), Олег Бродецкий (Oleg.Brodetsky@eur.sas.com) — технический архитектор SAS Россия/СНГ (Киев).