Андрей Кириленков, технический эксперт по решениям Big Data Platform, НРЕ в России
Глобальная экономика входит в эпоху Интернета вещей и массового межмашинного взаимодействия. Это значит, отмечает Дэвид Джонс, старший вице-президент и генеральный директор бизнес-подразделения HPE по управлению информацией и ее организации, что уже скоро, примерно к 2020 году, по всему миру придется обрабатывать данные от 50 миллиардов смарт-устройств и одного триллиона приложений — всего около 44 Збайт. Нет сомнений, что прежние СУБД, ориентированные на обработку транзакционных данных, циркулирующих в традиционных бизнес-приложениях, не справятся с такой нагрузкой. На смену им приходят СУБД нового поколения, изначально рассчитанные на работу с большими объемами и потоками данных. Одна из них — HPE Vertica, способная анализировать в реальном времени огромные объемы информации, получаемой от всевозможных «генераторов» данных — не только традиционных транзакционных систем, но также датчиков и устройств Интернета вещей, систем межмашинного взаимодействия, АСУТП, веб-сайтов и прочих источников.
Плод творчества гения мира СУБД
Работа над Vertica началась в 2005 году в компании Vertica Systems (в 2011 году она вошла в состав Hewlett Packard). Ее автор — профессор Массачусетского технологического института Майкл Стоунбрейкер, лауреат самой престижной в мире ИТ премии Тьюринга за 2014 год, награжденный ею «за фундаментальный вклад в принципы и практики, лежащие в основаниях современных систем управления базами данных». Названия его детищ на слуху у всех специалистов СУБД: Postgres, Ingres, Informix, VoltDB и ряд других.
В основу Vertica Майкл Стоунбрейкер положил следующие принципы.
- Выполнение аналитической (не транзакционной) обработки данных, причем и большие сложные, и короткие аналитические запросы должны обрабатываться очень быстро, в реальном времени.
- Архитектура платформы рассчитана на массивно-параллельную обработку данных без использования разделяемых ресурсов (исключением является сеть, связывающая элементы инфраструктуры, на вычислительных узлах которой данные могут обрабатываться параллельно).
- Платформа линейно масштабируемая, работающая на стандартном серверном оборудовании архитектуры x86.
- Обеспечивается поддержка стандартного языка запросов SQL, применяемого в реляционных СУБД (то есть с точки зрения пользователей платформа выглядит как обычная реляционная СУБД, но выполняет аналитические задачи).
- Платформа должна поддерживать атомарность, целостность, сохранность и изолированность транзакций — принцип ACID (Atomicity, Consistency, Isolation, Durability).
По данным Gartner, в настоящее время Vertica лидирует среди аналитических платформ по числу внедрений с объемом данных от сотен терабайт и больше.
Уникальная СУБД
СУБД Vertica обладает четырьмя уникальными свойствами:
- это по-настоящему колоночная СУБД (true column store),
- поддерживающая массивно-параллельную обработку данных (MPP),
- причем без использования разделяемых ресурсов (shared nothing),
- расширяемая за счет подключения дополнительных серийных серверов архитектуры x86_64.
Разумеется, на рынке есть и другие колоночные СУБД, не использующие разделяемые ресурсы, а также СУБД, поддерживающие MPP, но всеми четырьмя перечисленными свойствами обладает только Vertica.
HPE Vertica — это по-настоящему колоночная СУБД (true column store) |
Первые три из четырех уникальных свойств Vertica обеспечивают ее высочайшую производительность, благодаря которой бизнес может получать самые актуальные данные и анализировать информацию в реальном времени. С помощью MPP обработка разделяется между множеством вычислительных узлов, каждый из которых выполняет свою часть задания. Отказ от применения разделяемых ресурсов позволяет избежать узких мест в архитектуре, таких, например, как ожидание доступа к дисковым системам. А благодаря колоночной архитектуре Vertica автоматически оптимизирует физическое хранение данных, то есть физическую модель данных, что позволяет значительно уменьшить объемы информации, передаваемой в операциях чтения с дисков (эти операции нередко тормозят работу СУБД), и добиваться высокой производительности. Еще сильнее сократить эти объемы помогает сжатие данных.
Важное преимущество Vertica — удобство развертывания: для работы этой СУБД не нужен специализированный программно-аппаратный комплекс (appliance), она прекрасно себя «чувствует» на серийных 64-разрядных X86-серверах на платформе Linux с локальными жесткими дисками. Напомним, Vertica лицензируется только как программный продукт и может быть развернута на оборудовании любого вендора. Важно отметить, что затраты времени на администрирование минимальны.
Еще одно ключевое преимущество этой СУБД — возможность сохранить с ее помощью как ранее сделанные, так и будущие инвестиции. Поскольку Vertica поддерживает стандартный ANSI SQL 99 и принцип ACID, переучивать персонал не придется, а кроме того, удастся избежать расходов на модификацию инфраструктуры приложений, работающих с СУБД посредством SQL. С помощью открытых интерфейсов Vertica легко встраивается в имеющийся аналитический ландшафт при установке вместо прежней СУБД, применявшейся для аналитических задач. Что любопытно, кластер Vertica можно плавно расширять от терабайт до петабайт «сырых», то есть лицензируемых, данных без принципиального изменения его инфраструктуры.
Сохранности инвестиций способствуют и правила лицензирования: один шаг составляет 1 Тбайт «сырых» данных, что дает возможность расширять использование Vertica по мере наращивания объемов информации (кстати, этой СУБД можно пользоваться бесплатно, если объем обрабатываемых данных не превышает 1 Тбайт), причем учитывается общий объем анализируемых данных. Если, к примеру, помимо продуктивного кластера Vertica создается тестовый или резервный, дополнительные лицензии не потребуются (при этом, конечно, общий объем данных не должен превышать показатели, предусмотренные действующей лицензией).
Наконец, важен тот факт, что архитектура Vertica обеспечивает очень хорошую защиту от разного рода сбоев. Функции репликации, резервного копирования и восстановления данных позволяют создавать катастрофоустойчивые конфигурации с размещением «горячих» кластеров в нескольких удаленных один от другого дата-центрах. Кластеризация обеспечивает и защиту от сбоев в ходе линейного масштабирования этой системы.
У Vertica сегодня более 3 тыс. заказчиков, наиболее крупный из них — компания Facebook, которая приобрела лицензии на 20 Пбайт данных. Еще у одного, AT&T, в хранилище имеется уже около 3,2 Пбайт данных, которые поступают от сотовых вышек со скоростью 100 млн файлов в час. Есть заказчики и в России, самые известные среди них — Avito и Yota, они используют эту СУБД в качестве центрального хранилища данных. Кроме того, Vertica применяется в Superjob и Gloria Jeans, а также в различных телекоммуникационных компаниях, банках, розничных сетях, интернет-магазинах, на транспортных предприятиях. Кстати, знаменитая своими инновациями компания Uber тоже пользуется Vertica.
Такой популярности не удалось бы добиться, если бы СУБД не была настолько универсальна: она прекрасно справляется не только с однородной, но и со смешанной аналитической нагрузкой, когда одновременно могут работать приложения, ориентированные на различные виды аналитики — от несложных отчетов до глубокого исследования данных и поиска закономерностей в них. А загрузку данных в Vertica можно осуществлять параллельно с их анализом.
Vertica тесно интегрирована с Hadoop и легко справляется как со структурированными, так и с полуструктурированными данными, такими, например, как всевозможные системные журналы (логи). Для анализа мультимедийных данных HPE рекомендует применять платформу IDOL, интеграция с которой тоже поддерживается.
Функциональность и производительность
СУБД Vertica можно развернуть как на физических серверах, так и в публичном или частном облаке. Уже подготовлены рекомендации по ее развертыванию в облаках Amazon и Microsoft, накоплен опыт интеграции практически со всеми популярными аналитическими платформами и приложениями. Кстати, в России уже есть сертифицированные партнеры с опытом внедрения Vertica, имеется партнер, который может взять на себя обучение специалистов.
Управление СУБД производится посредством управляющей консоли, которая входит в поставку и реализована в виде веб-приложения.
Для обработки данных, поступающих в реальном времени, предусмотрен механизм, позволяющий загружать данные сразу в оперативную память, но ее объем всегда ограничен. Ограничения удалось снять благодаря реализованной в этом году интеграции с Kafka — продуктом с открытым исходным кодом, представляющим собой сервисную шину, обрабатывающую сообщения и обеспечивающую двусторонний обмен данными с Vertica, который позволяет не только отслеживать события Интернета вещей, но и реагировать на них, генерируя управляющие воздействия.
В течение ближайших лет планируется ежегодно выпускать один новый релиз и пять пакетов с существенными улучшениями (функциональных апдейтов). Заказчики, которые приобрели услугу технической поддержки Vertica, станут получать все обновления бесплатно.
В ходе развития системы наибольшее внимание будет уделяться совершенствованию функций ядра платформы и расширению спектра аналитических инструментов и моделей, что приведет к росту производительности Vertica и появлению дополнительных возможностей.