среда, 6 февраля 2013 г.

Первый запущенный проект HP Vertica в России

Вводная часть

Весной 2012 года команда HP Vertica провела первую продажу своего аналитического сервера хранилищ данных в Россию для компании Yota Networks. На текущий момент времени в базу данных Vertica уже загружены терабайты исходных данных, кластер на базе нескольких серверов обслуживает множество систем и пользователей, постоянно идут подключения к загрузке новых источников данных.

В задачи компании входит построение сети 4G по технологии LTE на территории Российской Федерации. Думаю все слышали про беспроводной скоростной интернет Yota. Так вот все, что касается предоставления интернета конечным абонентам, это Yota. А строит сеть для Yota и других операторов предоставления услуг уже Yota Networks. Тысячи базовых станций работают в десятках регионов нашей страны. Каждая станция генерирует большой объем информации: текущая конфигурация работы, статистика использования каналов и трафика, статистика работы абонентов, данные сессий и многое другое. Для оперативного управления такой сетью требовалось мощная система сбора и анализа данных. Главным требованием к такой системе было обеспечение оперативного сбора и анализа большого количества информации в режиме реального времени. Дополнительным, но не менее важным требованием, стояла задача построить архивное хранилище данных за длительные промежутки времени с возможностью быстрого поиска и анализа информации по неизвестным заранее критериям, то есть выполнению ad-hoc запросов. В идеале, эти требования должны были совместиться в виде единого централизованного хранилища данных.

В результате выбора между HP Vertica, IBM Netezza и EMC GreenPlum, компания Yota Networks выбрала решение Vertica. Не буду вдаваться в подробности выбора — в сфере разработки решений хранилищ данных каждый проект имеет уникальные требования и то, что здесь для проекта мы считали плюсами, может спокойно оказаться для другого проекта минусами и наоборот. Желающие могут прочитать в нашем блоге более подробное обоснование нашего выбора. 

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

Хорошее про Vertica


Колонко-ориентированное хранение

Аналогично другим СУБД такого класса, традиционно это позволяет минимизировать затраты сервера доступа к данным на носителях и ускорить выполнение аналитических запросов за счет чтения значений только тех полей, которые участвуют в запросе.

Автоматическая компрессия данных

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

In-memory область записываемых данных (WOS)

В памяти выделена специальная область. Она позволяет сессиям производить вставку или изменение данных в реалтайм с моментальным COMMIT без ожидания их записи на дисковое пространство базы данных (ROS). Специальный сервис Vertica ToupleMover в фоновом режиме обрабатывает поступающую информацию в WOS, перестраивает в колонко-ориентированный формат хранения, производит компрессию, дефрагментирует и сортирует данные, распределяет их по партициям и записывает конечный результат в область ROS. В итоге скорость вставки данных фантастически возрастает и это позволяет организовывать многопоточную параллельную загрузку непрерывных потоков данных транзакциями в хранилище в реалтайм режиме.

Отсутствие требований ручного тюнинга запросов

Достигается за счет архитектуры MPP, умного оптимизатора, секционирования таблиц, определения сортировки хранения записей в таблицах, созданием к таблицам дополнительных оптимизированных хранимых структур (проекций), распределением нагрузок через пулы ресурсов.

Прочее

Дополнительно замечу, с частым постукиванием по дереву, что в Vertica на удивление мало багов, новые версии сразу выходят стабильными, а служба поддержки работает очень оперативно и толково. В плюсы так же запишу бодрое развитие функционала и оптимизации работы Vertica с каждой версией, выходящей не реже раза в полгода. Серверу есть куда расти, так как критики конкурентов и пользователей Vertica на тему " не хватает" достаточно. Команда разработчиков учитывает пожелания и критику, поэтому каждая новая версия радует своих клиентов появлением новых расширений SQL, новых функций и возможностей администрирования сервера.

Капля дегтя в бочке мёда

У меня не так много претензий к серверу Vertica, часть из них заявлена нами как запрос на расширение функциональности продукта. Нижу перечислю список всего, что нам не хватает для полного счастья.

Отсутствие хранимых процедур, позволяющих вернуть набор данных

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

Отсутствие явного управления сетевыми и дисковыми нагрузками

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

Отсутствие рекомендаций производителя по реализации типовых задач хранилищ данных

В инсталляции Vertica входят демонстрационные примеры структур и данных под различные отраслевые решения, но они простые и не могут служить примером проектирования реальных задач, таких как хранение SDT (Slow Dimension Time) измерений, организация хранения оперативных и архивных областей данных и прочее.

Workload

Касательно хранимых процедур разработчики Vertica обещали «подумать», нагрузки на диски и сеть решаются увеличением серверов в кластере, а вот с рекомендациями разработчикам придется сражаться самим. Надеюсь, мои статьи помогут в части решения проблем проектирования.  Так же, на проектах с Vertica, уже во всю в нашей стране набирают опыт интеграторы. Думаю проблема с недостатком информации и опыта со временем будет решена. Так как Vertica достаточно молодой сервер, пока ему это простительно.

Постскриптум

Выбор хранилища данных дело ответственное и неправильный выбор может критически сказаться на всем проекте. Но хочу заметить - мало выбрать подходящий под требования проекта сервер хранилища данных, не меньшую роль для успешной реализации проекта играют инструменты аналитики и загрузки данных. Под задачи данного проекта были выбраны продукты, о которых так же мало слышали в нашей стране, как и о Vertica - это Talend DataIntegrator (ETL) и Tableau (BI). Каждый из них обладают рядом очень интересных возможностей, о которых в нашем блоге я постараюсь как нибудь рассказать.

На этом пока все, до свидания и до новых статей!

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

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