Как стать автором
Обновить

Эволюция аналитической инфраструктуры

Время на прочтение8 мин
Количество просмотров11K
Этой статьей я открываю серию материалов про инфраструктуру для аналитики вообще и экзотическую для России базу данных Vertica в частности. Статьи описывают опыт серии проектов в моей компании LifeStreet и не претендуют на полноту. Однако, где это представляется возможным, я буду пытаться давать общие обзоры. Прежде чем начать разговор собственно о Вертике, я хочу рассказать немного о том, как мы к ней пришли. Начнем с истории развития аналитической инфраструктуры в нашей компании.

Часть 1. Немного истории, теории и практики


Традиционно мы исповедуем итеративный процесс разработки всего нового. То есть сначала делается быстрый прототип, чтобы “пощупать” некоторую предметную или технологическую область. Затем, отталкиваясь от прототипа, разрабатывается архитектура и дизайн “как надо”, причем предпочтение отдается быстрым в реализации достаточно хорошим решениям, нежели академически правильным, но долгим и сложным. Затем, понятие о том, “как надо”, меняется, и архитектура модифицируется, “как на самом деле надо”. И так далее. Все изменения происходят на работающем и динамично развивающемся бизнесе, что требует осторожного эволюционного подхода. Так было и с аналитической платформой.

Первая версия “инфраструктуры” была сделана “на коленке” за два дня в далеком 2006 году, когда в компании было 4 человека разработчиков, и примерно столько же людей из бизнеса.
Читать дальше →

Эволюция аналитической инфраструктуры (продолжение)

Время на прочтение10 мин
Количество просмотров8.2K
В предыдущей статье я рассказал, как и почему мы выбрали Вертику. В этой части я постараюсь рассказать об особенностях этой необычной базы данных, которой мы пользуемся уже более двух лет. Написание этой статьи заняло несколько больше времени, чем я планировал, в частности из-за того, что надо было рассказать с одной стороны достаточно технически подробно, с другой — доступно, и при этом не нарушить NDA. В результате я пошел по компромиссному пути: я попытаюсь описать, как Вертика устроена и работает в принципе, не касаясь деталей.

Часть 3. Vertica. Simply Fast


Simply Fast — этот вертиковский слоган возник не на пустом месте. Она, действительно, очень быстрая. Быстрая даже с “коробочными” настройками, что показали наши тесты во время выбора решения. В процессе миграции инфраструктуры мы хорошо изучили, как сделать Вертику еще быстрее и получать от нее максимальную производительность. Но обо всем по порядку.
Читать дальше →

Big Systems / Big Data в Москве

Время на прочтение3 мин
Количество просмотров2.6K
В среду вечером мы провели мероприятие в формате meetup, посвященное большим системам и большим данным: habrahabr.ru/events/836

Если среди читателей есть те, кто там был (а это 80-100 человек из примерно 150 зарегистрировавшихся), то огромное вам спасибо. И огромное спасибо всем, кто помогал в организации и проведении.

Я не знаю, как правильно перевести слово meetup на русский. Не митапом же называть. Это не еще одна конференция, это другое. На больших конференциях, типа HighLoad, РИТ и т.д., специалисты из крупных компаний рассказывают о задачах, проблемах и решениях, которые часто находятся за пределами горизонта возможностей компаний поменьше. Это бывает очень интересно и познавательно, но по большой части малополезно с практической точки зрения. Формат meetup — он совсем другой, и больше напоминает «круглый стол». Его цель — обменяться опытом с коллегами из других компанией, с клиентами и партнерами. Обменяться «шишками» и «граблями», чтобы учиться не только на своих, но и на чужих ошибках. В Силиконовой долине такие мероприятия обычно проходят либо в офисах компаний-организаторов, либо в каких-нибудь нейтральных кафе. В Москве мы попробовали собрать людей после работы в Digital October. И это вполне получилось.

Читать дальше →

Просто и доступно о аналитических БД

Время на прочтение17 мин
Количество просмотров76K
Интерес к технологиям Big Data постоянно растет, а сам термин приобретает все большую популярность, многие люди хотят поговорить об этом, обсудить перспективы и возможности в этой области. Однако немногие конкретизируют — какие компании представлены на этом рынке, не описывают решения этих компаний, а также не рассказывают про методы, лежащие в основе решений Big Data. Область информационных технологий, относящихся к хранению и обработке данных, претерпела существенные изменения к настоящему моменту и представляет собой стремительно растущий рынок, а значит лакомый кусок для многих всемирно известных и небольших, только начинающих, компаний в этой сфере. У типичной крупной компании имеется несколько десятков оперативных баз данных, хранящих данные об оперативной деятельности компании (о сделках, запасах, остатках и т.п.), которые необходимы аналитикам для бизнес-анализа. Так как сложные, непредвиденные запросы могут привести к непредсказуемой нагрузке на оперативные базы данных, то запросы аналитиков к таким базам данных стараются ограничить. Кроме того, аналитикам необходимы исторические данные, а также данные из нескольких источников. Для того чтобы обеспечить аналитикам доступ к данным, компании создают и поддерживают так называемые хранилища данных, представляющие собой информационные корпоративные базы данных, предназначенные для подготовки отчетов, анализа бизнес-процессов и поддержки системы принятия решений. Хранилища данных служат также источником для оценки эффективности маркетинговых кампаний, прогнозированию, поиску новых возможных рынков и аудиторий для продажи, всевозможному анализу предыдущих периодов деятельности компаний. Как правило, хранилище данных – это предметно-ориентированная БД, строящаяся на временной основе, т.е. все изменения данных отслеживаются и регистрируются по времени, что позволяет проследить динамику событий. Также хранилища данных хранят долговременные данные — это означает, что они никогда не удаляются и не переписываются – вносятся только новые данные, это необходимо для изучения динамики изменения данных во времени. И последнее, хранилища данных, в большинстве случае, консолидированы с несколькими источниками, т.е. данные попадают в хранилище данных из нескольких источников, причем, прежде чем попасть в хранилище данных, эти данные проходят проверку на непротиворечивость и достоверность.
Читать дальше →

Vertica на HighLoad++

Время на прочтение2 мин
Количество просмотров6K
Вчера было мое выступление на HighLoad++. Тезисы и слайды на сайте организаторов. Конференция организована, кстати, отлично. Но времени на полноценное выступление было мало — 45 минут с вопросами. Тестовый прогон у меня занял 60 минут, после некоторой реорганизации и без вопросов на HL я уложился за 42. Некоторые важные архитектурные моменты пришлось проговаривать быстро и без примеров, от чего, конечно, страдала ясность. Я пытался построить презентацию таким образом, чтобы показать, как мы необходимым образом пришли к Вертике и к текущей архитектуре, и в то же время сделать акцент на важных архитектурных принципах работы с большими данными вообще. Не уверен, что цель была в полной мере достигнута. Мало, мало времени. Но я всегда открыт для вопросов. Вертика, впрочем, вызвала заслуженный интерес, вопросы были по делу.

А сегодня было выступление Криса Бонна из etsy.com, и, удивительное дело, он тоже рассказывал про Вертику.
Читать дальше →

HP Vertica, первый запущенный проект в РФ, опыт полтора года реальной эксплуатации

Время на прочтение17 мин
Количество просмотров36K

В качестве вступительного слова


На Хабре и других источниках уже было описание HP Vertica, но, в основном, вся информация сводилась к теории. До недавнего времени в реальной промышленной эксплуатации Vertica использовалась (так как мы называем ее Вертика, предлагаю назначить женский род) в Штатах и немного в Европе, на Хабре же о ней писали ребята с LifeStreet Media. Уже прошло полтора года работы с Vertica, наше хранилище данных содержит десятки терабайт данных. В минуту сервер данных обрабатывает тысячи запросов, многие из которых содержат десятки миллиардов записей. Загрузка данных идет не переставая в реалтайме объемами порядка 150 гб в сутки … В общем я подумал, что стоит восполнить пробел и поделиться ощущениями от езды на реально современных новых технологиях под BigData.

Кому это будет полезно


Думаю, это будет полезно для разработчиков, архитекторов и интеграторов, которые сталкиваются с задачами хранения и аналитической обработки больших данных по объему, содержанию и сложности анализа. Тем более, у Vertica сейчас наконец то есть вменяемая бесплатная полноценная версия Community Edition. Она позволяет развернуть кластер из 3 серверов и загрузить в хранилище данных до 1 тб сырых данных. С учетом производительности и легкости развертывания решений на Vertica, считаю это предложение достойным для того, чтобы его рассмотреть при выборе хранилища данных для компаний, у которых объем данных впишется в 1 тб.

В один абзац о том, как мы выбирали


Кратко без повода к холивару:
При выборе сервера хранилищ данных нас интересовали принципы ценообразования, высокая производительность и масштабируемость работы с большими объемами данных, возможность загрузки данных в реалтайм с множества разных источников данных, легкость стартапа проекта своими силами и минимальная стоимость сопровождения: в итоге по всем этим показателям лучше всего для нас выступила Vertica, победив IBM Netezza и EMC GreenPlum. Последние не смогли полностью удовлетворить всем нашим требованиям. Это могло вылиться в дополнительные издержки на разработку и сопровождение нашего проекта, имеющего не сильно большой бюджет.

Как выглядит Verica с точки зрения архитектора


Архитектор — это самый важный для хранилища данных человек в Vertica. Именно в первую очередь от него зависит успешность и производительность функционирования хранилища данных. У архитектора две сложных задачи: грамотно подобрать техническую начинку кластера Vertica и правильно спроектировать физическую модель базы данных.

На что влияет техническая архитектура
Читать дальше →

И снова Vertica на HighLoad++

Время на прочтение2 мин
Количество просмотров5.6K
Как и в прошлом году, выступил на HighLoad++. На этот раз мой доклад шел в секции «Базы данных», я рассказывал о том, какие системы хранения рационально использовать для задач многомерного анализа больших данных. Слайдов на сайте организаторов пока нет, как только появятся — я добавлю ссылку. Вкратце, презентация была построена так:
  • Постановка задачи, то есть что такое многомерный анализ больших данных
  • Функциональные требования, которые следуют из постановки задачи
  • Технические сложности
  • Как их можно решать, при помощи каких архитектурных решений и систем

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

Новая версия HP Vertica: Кран № 7

Время на прочтение10 мин
Количество просмотров5.9K
image
В декабре 2013 года вышла новая, седьмая версия HP Vertica. В продолжении традиции большого строительства «не маленьких данных», версия получила название «Кран» (шестая версия называлась «Бульдозер»). В этой статье я опишу, что же изменилось в новой версии.

Работа с неструктурированными данными — Flex Zone


Самым главным шагом вверх по лестнице работы с большими данными в новой версии HP Vertica можно назвать появление поддержки прямой работы с неструктурированными данными CSV и JSON форматов. В шестой версии поддерживалась загрузка данных из CSV файлов и выполнение запросов к ним, как к внешним глобальным таблицам. Если данные файлов имели заранее неизвестную, плавающую структуру, то единственным способом загрузки и работы с такими данными в Vertica являлась их предварительная обработка во внешних приложениях, таких, как ETL инструменты.

Теперь Vertica умеет работать с неструктурированными данными так же просто, как и со структурированными. Выглядит это так:
image

HP Vertica Flex Zone — это специальная область хранения и обработки неструктурированных данных. В БД Vertica можно создавать flex таблицы, загружать в них данные из файлов с CSV и JSON форматами и выполнять к ним запросы, соединяя эти данные в запросах с реляционными таблицами Vertica. Загруженные данные в flex таблицах хранятся на нодах кластера сервера в специальном формате, но по тем же принципам, что и реляционные данные БД. Для них так же поддерживается сжатие, зеркалирование и сегментирование данных (распределение между нодами кластера). При таком хранении, неструктурированные данные при обработке используют все преимущества MPP архитектуры Vertica, работают в отказоустойчивой масштабируемой архитектуре и участвуют в резервном копировании.
Читать дальше →
2