Большие данные –
большие возможности
Vitali Nikitin,
Big Data Leader, CIS Countries
Vitali.Nikitin@hpe.com
Мир изменился…
2
“Каждые 2 дня мы создаем
столько информации, сколько
было создано с момента
появления цивилизации до 2003г.″
– CEO Google, EricSchmidt
Растущая реальность больших данных
1027
Наше будущее…
Brontobyte
10
24
Это наша цифровая вселенная сегодня
= 250 триллионов DVD
Yottabyte
1021
1.3 ZB сетевого трафика к
2016
Zettabyte
10
18
1 EB данных ежедневно создается в Интернет = 250 миллионов DVD.
Создаваемый телескоп SKA буде генерировать EB данных ежедневно
Exabyte
10
12
Terabyte
500TB ежедневно добавляется в БД Facebook
1015
Petabyte
Большой адронный коллайдер (CERN)
создает 1PB в сек
Сегодня ученые используют Yottabytes чтобы
описать сколько информации о всех людях
есть у правительственных структур (FBI, NSA и
пр.).
Очень скоро Brontobyte станут измерительной
единицей интернета вещей IoT (Internet of Things)
109
Gigabyte
10
6
Megabyte
Эволюция данных
695,000 апдейтов статусов
98,000+ твиттов
698,445 Google поиск
1,820TB данных создано
11 млн. сообщений
168 million+ emails отправлено
YouTube
Viber
Qzone
Amazon Web Services
GoGrid
Rackspace
LimeLight
Jive Software
salesforce.com
Xactly
Paint.NET
Business
Education
Entertainment
Games
Lifestyle
Music
Navigation
News
Photo & Video
Productivity
Reference
Social Networking
Sport
Travel
Utilities
Workbrain
SuccessFactors
Taleo
Workday
Finance
box.net
Facebook
LinkedIn
TripIt
Pinterest
Zynga
Zynga
Baidu
Twitter
Twitter
Yammer
Atlassian
Atlassian
MobilieIronSmugMug
SmugMug
Atlassian
Amazon
Amazon
iHandy
PingMe
PingMe
Associatedcontent
Flickr
Snapfish
Answers.com
Tumblr.
Urban
Scribd.Pandora
MobileFrame.com
Mixi
CYworld
Renren
Xing
Yandex
Yandex
Heroku
RightScale
New Relic
AppFog
Bromium
Splunk
CloudSigma
cloudability
kaggle
nebula
Parse
ScaleXtreme
SolidFire
Zillabyte
dotCloud
BeyondCore
Mozy
Fring Toggl
MailChimp
Hootsuite
Foursquare
buzzd
Dragon Diction
SuperCam
UPS Mobile
Fed Ex Mobile
Scanner Pro
DocuSign
HP ePrint
iSchedule
Khan Academy
BrainPOP
myHomework
Cookie Doodle
Ah! Fasion Girl
PaperHost
SLI Systems
NetSuite
OpSource
Joyent
Hosting.com
Tata Communications
Datapipe
PPM
Alterian
Hyland
NetDocuments
NetReach
OpenText
Xerox
Google
Microsoft
IntraLinks
Qvidian
Sage
SugarCRM
Volusion
Zoho
Adobe
Avid
Corel
Microsoft
Serif
Yahoo
CyberShift
Saba
Softscape
Sonar6
Ariba
Yahoo!
Quadrem
Elemica
Kinaxis
CCC
DCC
SCM
ADP VirtualEdge
Cornerstone onDemand
CyberShift
Kenexa
Saba
Softscape
Sonar6
Workscape
Exact Online
FinancialForce.com
Intacct
NetSuite
Plex Systems
Quickbooks
eBay
MRM
Claim Processing
Payroll
Sales tracking & Marketing
Commissions
Database
ERP
CRM
SCM
HCM
HCM
PLM
HP
EMC
Cost Management
Order Entry
Product Configurator
Bills of Material
Engineering
Inventory
Manufacturing Projects
Quality Control
SAP
Cash Management
Accounts Receivable
Fixed AssetsCosting
Billing
Time and Expense
Activity Management
Training
Time & Attendance
Rostering
Service
Data Warehousing
Каждые 60 секунд
IBM
Unisys
Burroughs
Hitachi
NEC
Bull
Fijitsu
217 новых моб. пользователей
Yottabytes
Мейнфрейм
Kilobytes
Интернет
Gigabytes
Клиентсервер
Megabytes
Мобильные у-ва,
Социа, облака,
Big Data
Zettabytes
Как выглядят данные
Объем данных
«Анализируемость»данных
CRM ERP Data Warehouse Web Social Log Files Machine Data Semi-structured
Dark Data
Big DataTraditional
Enterprise Data
Unstructured
A Real-World Example:
Sensor data collected from US commercial jet engines during 1 year
1,041,600,500 TB
20 TB
20 terabytes of
information per
engine every hour
2.5
Average duration
for US flights in
hours
2
twin-engine
Boeing 737
days in a
year
36528,537
# of commercial
flights in the sky in
the United States
on any given day
(That’s 1 Zettabyte!)
СУБД Vertica
Платформа для анализа
«больших данных» в реальном времени
Vitali Nikitin,
Big Data Leader, CIS Countries
Vitali.Nikitin@hpe.com
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
PostgreSQLведётсвою«родословную»отнекоммерческой
СУБДPostgres,разработанной,какимногиеopen-source
проекты,вКалифорнийскомуниверситетевБеркли.К
разработкеPostgres,начавшейсяв1986году,имел
непосредственноеотношениеМайклСтоунбрейкер
VerticaSystemsis an analyticdatabasemanagementsoftware
company.
Verticawasfoundedin 2005by databaseresearcherMichael
StonebrakerandAndrew Palmer.
• Ограничения традиционных платформ
• Big Data
«Узкие места»
• Разделяемый ресурс
• «Массивное» чтение с дисков
• Сеть внутри кластера
Два вызова в хранении и анализе данных
Традиционные платформы
–Не могу загружать данные и одновременно их
анализировать
–Слишком долго выполняются запросы и отчеты
–Строю агрегаты и не могу спуститься к детальным
данным
–Перемещаю данные в инструменты для сложного
анализа и data mining
–Сложно сопровождать
–Не успеваю за ростом нагрузки и объема данных
–Дорого и сложно обеспечить высокую доступность
–Не хватает дополнительных сред (тестирование,
разработка...)
Типовые недоумения клиентов
Объем (Volume)
• 10% организаций обрабатывают 1+ Пб данных
• Социальные сети – миллионы транзакций в минуту
Скорость (Velocity)
• 30% организаций имеют 100+ Гб/день
• Данные обновляются и нужны раз в день, час
Разнообразие (Variety)
• Тексты, Аудио и видео файлы
• Блоги, сообщения в сетях – для изучения клиентов
• Внутренние источники данных
Сложность
• Осмысленные связи
• Преобразование
• Очистка
Разно-
образие
СложностьСкорость
Объем
Цели:
• Эффективность
• Удовлетворение клиентов
• Снижение риска
• Расширение бизнеса
Вызов:
извлечь из Big Data важное
для бизнеса
Big Data: информационный вызов
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Стратегия Vertica - анализ больших и сверх больших
объемов данных. Vertica спроектирована именно для
быстрого анализа ...
Ovum считает, что высокопроизводительные
колоночные СУБД сегодня нужны компаниям,
ищущим замены традиционным платформам. Vertica
вполне отвечает их ожиданиям.
HP Vertica: история и замысел
Vertica Systems основана в 2005 г., куплена НР в 2011 г.
Vertica Analytical DB – коммерческая версия исследовательского
прототипа C-Store (M. Stonebraker)
Платформа для аналитических нагрузок (десятки запросов в сек, большой
объем данных в запросе)
Shared nothing – архитектура, МРР
Простая линейная масштабируемость на «обычных» серверах
ACID (Atomicity, Consistency, Isolation, Durability)
SQL , реляционная СУБД, любая реляционная модель
Гартнер: магический квадрат
2500+ клиентов, начиная с 2006
20 ?
500?
2500+ клиентов, начиная с 2006
20+ Петабайт данных
500+ узлов в кластере
Старое хранилище HP Vertica Выгода для бизнеса
• Загрузка шла 14 hours
• Цена $120К за TB – только
лицензии
• Загрузка за 1 час
• Цена ниже значительно
• Экономия бюджета
• Анализ в реальном времени
(свежие данные)
Невозможен скоринг кредитных карт
в реальном времени
(подтверждение или отказ карты)
Кластер из 4 узлов в 2 раза быстрее
кластера из 12 узлов и дешевле на
70%
• Экономия $20М на лиц.
• Экономия $4М на лиц. и
серверах в смежном проекте
• Достигнуты SLAs
Запросы выполняются по 20 часов • Ускорение запросов в 40-80x раз
• Стоимость нового решения - 5%
от стоимости старого
• Сокрадение операционных
расходов на 90%
• ROI - 3 месяцв
• Находят в 10 раз больше
потенциальных клиентов
HP Vertica в больших компаниях
Базовые принципы
Быстрый отклик на запросы Простая и
линейная масштабируемость
Экономия дискового
пространства
Загрузка и запросы одновременно,
Работа 24x7
Columnar storage
and execution
Clustering Compression
Continuous
performance
Автоматическая настройка
производительности
Дизайн БД
Временные ряды, география, клики,
SDK для разработки
Сложный анализ
Колоночное хранение
• Читает только колонки, нужные для запроса
• Данные в колонках можно обновлять
• Идеально для интенсивной нагрузки ЗАГРУЗКАЧТЕНИЕ, значительное снижение
I/O
AAPL NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74 NYSE NYSE NYSE 5/05/09
5/05/09
5/06/09
5/05/09
5/06/09
143.74
143.75
37.03
37.13
AAPL NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74 NYSE NYSE NYSE 5/06/09
BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.03 NYSE NYSE NYSE 5/05/09
BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.13 NYSE NYSE NYSE 5/06/09
SELECT
avg(price)
FROM
tickstore
WHERE
symbol = ‘AAPL”
and
date = ‘5/06/09’;
Колоночное хранение – Читает 3 колонки
Строчное хранения – Читает все колонки
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
NYSE
NYSE
NYSE
NQDS
AAPL
AAPL
BBY
BBY
Кодирование и сжатие
• Использует свойства данных (сортировка,
мощность - cardinality)
• Работает на большом числе строк
Не медленное обращение к дискам, а быстрая работа CPU (мощное сжатие)
• Раскодирование – как можно позже
• 15 алгоритомов сжатия
• Тип сжатия подбирается автоматически
Проекции: оптимальное хранение
–Основная таблица (супер-проекция) не
отсортирована
–Физический дизайн прозрачен для приложений
–Данные хранятся в отсортированном, сжатом
виде
–Индексы НЕ нужны (колонка сама себе индекс)
–Оптимизатор выбирает лучшую проекцию для
выполнения запроса
–Всегда актуально, не нужно перестраивать /
обновлять
–Предварительное объединение таблиц (pre-join
projections, N:1 joins)
Партиционирование
• Локальные партиции - на одном узле
− CREATE TABLE ... PARTITION BY <expr> - как правило по времени
− Вложенности нет
− Быстрое удаление данных через партиции, быстрее запросы
− На уровне таблиц и распространяется на все проекции
• Сегментация: или распределение по узлам кластера
− Для каждой проекции
− Репликация на каждый узел или сегментация (HASH(col1..coln))
− Создается автоматически с помощью Data base designer
Партиционирование
Массивно-параллельная обработка данных (MPP)
– Распределенное хранение и рабочая нагрузка
– Shared-nothing архитектура
– Линейная масштабируемость на х86_64 серверах. (Больше данных? Выше производительность? Больше пользователей?
Добавь новые узлы)
Клиентская сеть (1 Гбит/с) ODBC, JDBC, ADO.NET
Внутри-кластерная сеть (10 Гбит/с, full duplex)
8-12 TB 8-12 TB 8-12 TB
Node 1
 2 x 10-12 Core
 128+GB RAM
Node 2
 2 x 10-12 Core
 128+GB RAM
Node 3
 2 x 10-12 Core
 128+GB RAM
Узлы кластера
– Все узлы
равнозначны
– Загрузка/Запросы –
на любой узел
– Непрерывная/в
реальном времени
загрузка и анализ
Распределённое выполнение запросов
– Балансировщик (Vertica или Linux) нагрузки отправляет запрос на один из узлов кластера (инициатор)
– Инициатор разбирает запрос и составляет план выполнения (cost-based)
– Инициатор распределяет запрос по исполнителям
– Все узлы выполняет запрос и посылают свою часть результата инициатору
– Инициатор собирает результат и отправляет ответ пользователю
Автоматический дизайн
A B A
(A B C | A) (B A C | B A)
B C C
> Физическая модель, сжатие:
 Быстрое выполнение типовых запросов
 Поддержка всех загрузок
 Гарантия, что все SQL запросы будут отвечены
Database Designer:Архитектор:
> Логическая модель
 Create table
> “Типовой набор”
 Типичные запросы
 Выборки данных
> Уровень устойчивости к
сбоям
 k-safety
• Минимальная нагрузка на архитектора в части управления физической моделью данных
• Инкрементальная перестройка БД под новые данные и запросы
• Запуск в любое время, выполнение без остановки БД
Гибридное и гибкое хранение
–Загрузка и запросы одновременно (гибридное хранение)
–Производительность загрузки масштабируется линейно (реально 35 Tб в час)
–Vertica’s FlexStore™ : размещение горячих данных на быстрых носителях (SSD...)
–Update = Delete (порождает историю) + Insert
–Delete – только метка: снимок БД в момент времени AT TIME 'timestamp' SELECT...
Асинхронный перенос
данных
TUPLE MOVER
Read Optimized Store (ROS)
• На дисках
• Сортировка / Сжатие
• Сегментация
• Прямая загрузка больших объемов
(A B C | A)
A B C
Непрерывная
загрузка
Write Optimized
Store (WOS)
 Находится в памяти
 Нет сортировки / Нет сжатия
 Сегментация
 Свежие данные / Небольшие
быстрые вставки
A B C
Встроенная высокая доступность (k-safety)
– Колонки дублируются на соседних узлах согласна k-safety (1 или 2)
– Не нужно ручное восстановление из журналов
– Система принимает загрузки и запросы, когда узел отключен
– Данные на отключенном узле запрашиваются на других узлах
– Возвращение узла в работу – без остановки кластера
– Восстановление после сбоя: Last good epoch или из резервной копии
A3 B3 C3 A2 B2 C2
B1 A1 C1B2 A2 C2 B1 A1 C1
A3 B3 C3 A1 B1 C1
B3 A3 C3
Защита от катастроф
Вариант 1: Загрузка данных в обе системы.
(Для больших объемов)
За: Обе системы активны
Против: ETL обеспечивает
согласованность данных
Вариант 2: Репликация снимков
Vertica Backup
За: Минимальный риск не-
согласованности данных
Против: Во время синхронизации 2-й
кластер не активен
Легко расширяемый кластер
–Простое добавление новых серверов
– Добавь узел и повысь емкость или быстродействие
– Vertica автоматически перераспределяет данные
–Система работает без остановки
– Система принимает запросы во время ре-балансировки кластера
–Быстрое перераспределение данных
– Пример из жизни: расширение от 11 TB и 16 узлов до 32 nodes
прошло за 65 минут без остановки системы!
Мониторинг: Vertica Management Console
• Управление кластерами через веб-приложение
• Полный контроль за работой БД и кластера
• Корреляция работы системы и БД
Кластер 1 Кластер 2 Кластер 3
Vertica
Management
Console
Browser
Access
Tactical
General
Analytic User 1
Управление рабочей нагрузкой
• Нет главного узла, т.е. нет узкого места в кластере!
− Инициация запросов - равномерно по узлам
− Число одновременных запросов растет по мере добавления новых узлов
• Настраиваемый менеджер ресурсов
− Ресурсные пулы для разных рабочих нагрузок (I/O, CPU, memory, bandwidth, concurrency,
duration)
− Границы ресуров для пула, пользователя, сессии
• Управление в реальном времени
− Сменить приоритет запроса
− Снять запрос
tactical tactical
analytic
Analytic User 2
SQL, адаптированный для Big Data
–Возможности
• ANSI SQL-99
• Развитые функции для работы со временем
• Временные ряды:
– Заполнением пробелов
– Разбивка на окна
– Разбивка на сессии потока «кликов»
• Статистика
• Поддержка R (анализ и data mining)
• Пакет гео-пространственных функций
• Анализ текстов
analytic_function ( arguments ) OVER( analytic_clause )
Примеры
•Ранжировать клиентов по лояльности и регионами
•Вычислить скользящее среднее объема продаж за
период времени
•Найти высший балл среди всех студентов одного
курса
•Сравнить текущий бонус каждого из продавцов с его
предыдущим бонусом
•Анализ «кликов» с помощью шаблонов
Временной ряд: интерполяция
• Система интеллектуального учета нерегулярно поставляет данные о потреблении энергии
• Данные нужно хранить в БД за каждые 10 минут без пробелов
• Все пробелы нужно заполнить
select meter_id,
interval_5min,
ts_first_value(power_consumption, 'linear')
from energy_readings
timeseries interval_5min as '5 minutes'
over (partition by meter_id
order by reading_date);
Пример: Подготовить данные с устройств для анализа (smart meter data)
Поддержка R
• Что такое R?
• Язык для статистического анализа с открытым кодом
• Много пакетов для сложного исследования данных (data mining) и статистического анализа
• Преимущества пользовательских расширений (Udx) в R
• Vertica автоматически за-параллеливает вычисления R
• Оптимизирована передача данных между Vertica и R
Verticaкластер
Исходный код в R
UDx в R, пример: метод K-средних
# Example: K-means (k=5)
# Input: two-dimensional points
# Output: the point coordinates plus their assigned
# cluster
kmeansClu <- function(x)
{
cl <- kmeans(x,5,10)
res <- data.frame(x[,1:2], cl$cluster)
res
kmeansCluFactory <- function()
{
list(name=kmeansClu,
udxtype=c("transform"),
intype=c("float","float"),
outtype=c("float","float","int"),
outnames=c("x","y","cluster") )
}
Создание и использование
функции
-- Define function
CREATE LIBRARY rlib
AS ‘/path/rcode.R’ LANGUAGE 'R';
CREATE TRANSFORM FUNCTION Kmeans
AS LANGUAGE 'R' NAME 'kmeansCluFactory'
LIBRARY rlib;
-- Use function
CREATE TABLE point_data (
x FLOAT, y FLOAT );
SELECT Kmeans(x, y)
OVER() FROM point_data;
Внешние таблицы
• Внешняя таблица: файл доступен для Vertica (SQL), но не управляем ею (DML
невозможен)
• «Холодные» данные хранятся на дешевых носителях – анализ по мере надобности
• Передача данных из других SQL СУБД, HDFS (User Defined Load)
• Можно объединять (Join) данные из внешних источников с данными из Vertica
– VMart=> create external table ext (x integer) as copy from '/home/dbadmin/ext.dat';
Vertica
External Table External TableExternal Table
Unstructured Dark Data
Гибкая таблица, зона (Flex Zone)
Native
Vertica
Data
Flex Zone
Быстрый, ежедневный анализПредварительный анализ
Внешние
структурированные данные
Внешние таблицы
• MapReduce
• Sqoop
• HDFS
Анализируй данные, не зная их структуры
Интеграция с Hadoop
– Быстрая СУБД должна быть
интегрирована с Hadoop, а не встроена
в него
Hadoop / Vertica: Сложный анализ
MapReduce / Pig Job
DFS Block 1
DFS Block 1
DFS Block 1
DFS Block 2
DFS Block 2
DFS Block 2
DFS Block 3 DFS Block 3
Map
Map
Map
Reduce Vertica
Data
data data data data da
data data data data data
data data data data data data
data data data data data data
data data data data data data
data data data data data data
data data data data data data
data data data data data data
data data data data data data
MapReduce / Pig Job
DFS Block 1
DFS Block 1
DFS Block 1
DFS Block 2
DFS Block 2
DFS Block 2
DFS Block 3 DFS Block 3
Map
Map
Map
Reduce
VerticaVertica
Hadoop / Vertica: преобразование данных
HDFS File
Интеграция с Hadoop
HDFS connector
– Загрузка в Vertica из HDFS через COPY оптимальная
параллельность
– SQL к HDFS через внешнюю таблицу
– Безопасность через авторизацию Kerberos
Hadoop & Pig Connector
– Перемещение данных между Hadoop и Vertica
– Запросу к Hadoop из Vertica
– JDBCODBC для Windows, Linux, Solaris, AIX и др.
Hcatalog
– Запросу к Hadoop из Vertica
– Доступ через внешние таблицы
– Open SQL on Hadoop
Hadoop / Vertica: Сложный анализ
MapReduce / Pig Job
DFS Block 1
DFS Block 1
DFS Block 1
DFS Block 2
DFS Block 2
DFS Block 2
DFS Block 3 DFS Block 3
Map
Map
Map
Reduce Vertica
Data
data data data data da
data data data data data
data data data data data data
data data data data data data
data data data data data data
data data data data data data
data data data data data data
data data data data data data
data data data data data data
MapReduce / Pig Job
DFS Block 1
DFS Block 1
DFS Block 1
DFS Block 2
DFS Block 2
DFS Block 2
DFS Block 3 DFS Block 3
Map
Map
Map
Reduce
VerticaVertica
Hadoop / Vertica: преобразование данных
HDFS File
Как работает коннектор к HDFS?
Ближайшая версия Vertica “Dragline”
FY14 FY15
• Проекции-агрегаты: ускорение ресуроемких агрегирующих функций
• Динамическое управление смешанной рабочей нагрузкой
• Vertica Pulse: анализ текстов и окраски высказываний в соц.сетях
• Vertica Place: хранение и анализ гео-пространственных данных
• Расширение SQL над Hadoop
HP Vertica в развитии
Vertica “Crane” (7.0)
- Key-Value Lookups с интерфейсом
к NoSQL
Vertica “Dragline”
- Проекции-агрегаты
- Гео-и-текстовая аналитика
- Текстовый поиск
Vertica “Excavator”
- In-Memory
- Кубы
- Текстовый поиск
Vertica “Frontloader”
- Streaming
- Federation for Read and Write –
Unified SQL
- Navigation and joins-across HBase
and Other NoSQL Tools
ВИДЕНИЕ
Fast self-service
analytics for
consumers
FY14 FY15
Вопросы и ответы
Спасибо!
Vitali.Nikitin@hpe.com

Short Infrastructure Overview ru hpe Vertica

  • 1.
    Большие данные – большиевозможности Vitali Nikitin, Big Data Leader, CIS Countries Vitali.Nikitin@hpe.com
  • 2.
    Мир изменился… 2 “Каждые 2дня мы создаем столько информации, сколько было создано с момента появления цивилизации до 2003г.″ – CEO Google, EricSchmidt
  • 3.
    Растущая реальность большихданных 1027 Наше будущее… Brontobyte 10 24 Это наша цифровая вселенная сегодня = 250 триллионов DVD Yottabyte 1021 1.3 ZB сетевого трафика к 2016 Zettabyte 10 18 1 EB данных ежедневно создается в Интернет = 250 миллионов DVD. Создаваемый телескоп SKA буде генерировать EB данных ежедневно Exabyte 10 12 Terabyte 500TB ежедневно добавляется в БД Facebook 1015 Petabyte Большой адронный коллайдер (CERN) создает 1PB в сек Сегодня ученые используют Yottabytes чтобы описать сколько информации о всех людях есть у правительственных структур (FBI, NSA и пр.). Очень скоро Brontobyte станут измерительной единицей интернета вещей IoT (Internet of Things) 109 Gigabyte 10 6 Megabyte
  • 4.
    Эволюция данных 695,000 апдейтовстатусов 98,000+ твиттов 698,445 Google поиск 1,820TB данных создано 11 млн. сообщений 168 million+ emails отправлено YouTube Viber Qzone Amazon Web Services GoGrid Rackspace LimeLight Jive Software salesforce.com Xactly Paint.NET Business Education Entertainment Games Lifestyle Music Navigation News Photo & Video Productivity Reference Social Networking Sport Travel Utilities Workbrain SuccessFactors Taleo Workday Finance box.net Facebook LinkedIn TripIt Pinterest Zynga Zynga Baidu Twitter Twitter Yammer Atlassian Atlassian MobilieIronSmugMug SmugMug Atlassian Amazon Amazon iHandy PingMe PingMe Associatedcontent Flickr Snapfish Answers.com Tumblr. Urban Scribd.Pandora MobileFrame.com Mixi CYworld Renren Xing Yandex Yandex Heroku RightScale New Relic AppFog Bromium Splunk CloudSigma cloudability kaggle nebula Parse ScaleXtreme SolidFire Zillabyte dotCloud BeyondCore Mozy Fring Toggl MailChimp Hootsuite Foursquare buzzd Dragon Diction SuperCam UPS Mobile Fed Ex Mobile Scanner Pro DocuSign HP ePrint iSchedule Khan Academy BrainPOP myHomework Cookie Doodle Ah! Fasion Girl PaperHost SLI Systems NetSuite OpSource Joyent Hosting.com Tata Communications Datapipe PPM Alterian Hyland NetDocuments NetReach OpenText Xerox Google Microsoft IntraLinks Qvidian Sage SugarCRM Volusion Zoho Adobe Avid Corel Microsoft Serif Yahoo CyberShift Saba Softscape Sonar6 Ariba Yahoo! Quadrem Elemica Kinaxis CCC DCC SCM ADP VirtualEdge Cornerstone onDemand CyberShift Kenexa Saba Softscape Sonar6 Workscape Exact Online FinancialForce.com Intacct NetSuite Plex Systems Quickbooks eBay MRM Claim Processing Payroll Sales tracking & Marketing Commissions Database ERP CRM SCM HCM HCM PLM HP EMC Cost Management Order Entry Product Configurator Bills of Material Engineering Inventory Manufacturing Projects Quality Control SAP Cash Management Accounts Receivable Fixed AssetsCosting Billing Time and Expense Activity Management Training Time & Attendance Rostering Service Data Warehousing Каждые 60 секунд IBM Unisys Burroughs Hitachi NEC Bull Fijitsu 217 новых моб. пользователей Yottabytes Мейнфрейм Kilobytes Интернет Gigabytes Клиентсервер Megabytes Мобильные у-ва, Социа, облака, Big Data Zettabytes
  • 5.
    Как выглядят данные Объемданных «Анализируемость»данных CRM ERP Data Warehouse Web Social Log Files Machine Data Semi-structured Dark Data Big DataTraditional Enterprise Data Unstructured
  • 6.
    A Real-World Example: Sensordata collected from US commercial jet engines during 1 year 1,041,600,500 TB 20 TB 20 terabytes of information per engine every hour 2.5 Average duration for US flights in hours 2 twin-engine Boeing 737 days in a year 36528,537 # of commercial flights in the sky in the United States on any given day (That’s 1 Zettabyte!)
  • 7.
    СУБД Vertica Платформа дляанализа «больших данных» в реальном времени Vitali Nikitin, Big Data Leader, CIS Countries Vitali.Nikitin@hpe.com
  • 8.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. PostgreSQLведётсвою«родословную»отнекоммерческой СУБДPostgres,разработанной,какимногиеopen-source проекты,вКалифорнийскомуниверситетевБеркли.К разработкеPostgres,начавшейсяв1986году,имел непосредственноеотношениеМайклСтоунбрейкер VerticaSystemsis an analyticdatabasemanagementsoftware company. Verticawasfoundedin 2005by databaseresearcherMichael StonebrakerandAndrew Palmer.
  • 9.
    • Ограничения традиционныхплатформ • Big Data «Узкие места» • Разделяемый ресурс • «Массивное» чтение с дисков • Сеть внутри кластера Два вызова в хранении и анализе данных
  • 10.
    Традиционные платформы –Не могузагружать данные и одновременно их анализировать –Слишком долго выполняются запросы и отчеты –Строю агрегаты и не могу спуститься к детальным данным –Перемещаю данные в инструменты для сложного анализа и data mining –Сложно сопровождать –Не успеваю за ростом нагрузки и объема данных –Дорого и сложно обеспечить высокую доступность –Не хватает дополнительных сред (тестирование, разработка...) Типовые недоумения клиентов
  • 11.
    Объем (Volume) • 10%организаций обрабатывают 1+ Пб данных • Социальные сети – миллионы транзакций в минуту Скорость (Velocity) • 30% организаций имеют 100+ Гб/день • Данные обновляются и нужны раз в день, час Разнообразие (Variety) • Тексты, Аудио и видео файлы • Блоги, сообщения в сетях – для изучения клиентов • Внутренние источники данных Сложность • Осмысленные связи • Преобразование • Очистка Разно- образие СложностьСкорость Объем Цели: • Эффективность • Удовлетворение клиентов • Снижение риска • Расширение бизнеса Вызов: извлечь из Big Data важное для бизнеса Big Data: информационный вызов
  • 12.
    © Copyright 2014Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Стратегия Vertica - анализ больших и сверх больших объемов данных. Vertica спроектирована именно для быстрого анализа ... Ovum считает, что высокопроизводительные колоночные СУБД сегодня нужны компаниям, ищущим замены традиционным платформам. Vertica вполне отвечает их ожиданиям.
  • 13.
    HP Vertica: историяи замысел Vertica Systems основана в 2005 г., куплена НР в 2011 г. Vertica Analytical DB – коммерческая версия исследовательского прототипа C-Store (M. Stonebraker) Платформа для аналитических нагрузок (десятки запросов в сек, большой объем данных в запросе) Shared nothing – архитектура, МРР Простая линейная масштабируемость на «обычных» серверах ACID (Atomicity, Consistency, Isolation, Durability) SQL , реляционная СУБД, любая реляционная модель
  • 14.
  • 15.
  • 16.
    2500+ клиентов, начинаяс 2006 20+ Петабайт данных 500+ узлов в кластере
  • 17.
    Старое хранилище HPVertica Выгода для бизнеса • Загрузка шла 14 hours • Цена $120К за TB – только лицензии • Загрузка за 1 час • Цена ниже значительно • Экономия бюджета • Анализ в реальном времени (свежие данные) Невозможен скоринг кредитных карт в реальном времени (подтверждение или отказ карты) Кластер из 4 узлов в 2 раза быстрее кластера из 12 узлов и дешевле на 70% • Экономия $20М на лиц. • Экономия $4М на лиц. и серверах в смежном проекте • Достигнуты SLAs Запросы выполняются по 20 часов • Ускорение запросов в 40-80x раз • Стоимость нового решения - 5% от стоимости старого • Сокрадение операционных расходов на 90% • ROI - 3 месяцв • Находят в 10 раз больше потенциальных клиентов HP Vertica в больших компаниях
  • 18.
    Базовые принципы Быстрый откликна запросы Простая и линейная масштабируемость Экономия дискового пространства Загрузка и запросы одновременно, Работа 24x7 Columnar storage and execution Clustering Compression Continuous performance Автоматическая настройка производительности Дизайн БД Временные ряды, география, клики, SDK для разработки Сложный анализ
  • 19.
    Колоночное хранение • Читаеттолько колонки, нужные для запроса • Данные в колонках можно обновлять • Идеально для интенсивной нагрузки ЗАГРУЗКАЧТЕНИЕ, значительное снижение I/O AAPL NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74 NYSE NYSE NYSE 5/05/09 5/05/09 5/06/09 5/05/09 5/06/09 143.74 143.75 37.03 37.13 AAPL NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74 NYSE NYSE NYSE 5/06/09 BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.03 NYSE NYSE NYSE 5/05/09 BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.13 NYSE NYSE NYSE 5/06/09 SELECT avg(price) FROM tickstore WHERE symbol = ‘AAPL” and date = ‘5/06/09’; Колоночное хранение – Читает 3 колонки Строчное хранения – Читает все колонки NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS NYSE NYSE NYSE NQDS AAPL AAPL BBY BBY
  • 20.
    Кодирование и сжатие •Использует свойства данных (сортировка, мощность - cardinality) • Работает на большом числе строк Не медленное обращение к дискам, а быстрая работа CPU (мощное сжатие) • Раскодирование – как можно позже • 15 алгоритомов сжатия • Тип сжатия подбирается автоматически
  • 21.
    Проекции: оптимальное хранение –Основнаятаблица (супер-проекция) не отсортирована –Физический дизайн прозрачен для приложений –Данные хранятся в отсортированном, сжатом виде –Индексы НЕ нужны (колонка сама себе индекс) –Оптимизатор выбирает лучшую проекцию для выполнения запроса –Всегда актуально, не нужно перестраивать / обновлять –Предварительное объединение таблиц (pre-join projections, N:1 joins)
  • 22.
    Партиционирование • Локальные партиции- на одном узле − CREATE TABLE ... PARTITION BY <expr> - как правило по времени − Вложенности нет − Быстрое удаление данных через партиции, быстрее запросы − На уровне таблиц и распространяется на все проекции • Сегментация: или распределение по узлам кластера − Для каждой проекции − Репликация на каждый узел или сегментация (HASH(col1..coln)) − Создается автоматически с помощью Data base designer
  • 23.
  • 24.
    Массивно-параллельная обработка данных(MPP) – Распределенное хранение и рабочая нагрузка – Shared-nothing архитектура – Линейная масштабируемость на х86_64 серверах. (Больше данных? Выше производительность? Больше пользователей? Добавь новые узлы) Клиентская сеть (1 Гбит/с) ODBC, JDBC, ADO.NET Внутри-кластерная сеть (10 Гбит/с, full duplex) 8-12 TB 8-12 TB 8-12 TB Node 1  2 x 10-12 Core  128+GB RAM Node 2  2 x 10-12 Core  128+GB RAM Node 3  2 x 10-12 Core  128+GB RAM Узлы кластера – Все узлы равнозначны – Загрузка/Запросы – на любой узел – Непрерывная/в реальном времени загрузка и анализ
  • 25.
    Распределённое выполнение запросов –Балансировщик (Vertica или Linux) нагрузки отправляет запрос на один из узлов кластера (инициатор) – Инициатор разбирает запрос и составляет план выполнения (cost-based) – Инициатор распределяет запрос по исполнителям – Все узлы выполняет запрос и посылают свою часть результата инициатору – Инициатор собирает результат и отправляет ответ пользователю
  • 26.
    Автоматический дизайн A BA (A B C | A) (B A C | B A) B C C > Физическая модель, сжатие:  Быстрое выполнение типовых запросов  Поддержка всех загрузок  Гарантия, что все SQL запросы будут отвечены Database Designer:Архитектор: > Логическая модель  Create table > “Типовой набор”  Типичные запросы  Выборки данных > Уровень устойчивости к сбоям  k-safety • Минимальная нагрузка на архитектора в части управления физической моделью данных • Инкрементальная перестройка БД под новые данные и запросы • Запуск в любое время, выполнение без остановки БД
  • 27.
    Гибридное и гибкоехранение –Загрузка и запросы одновременно (гибридное хранение) –Производительность загрузки масштабируется линейно (реально 35 Tб в час) –Vertica’s FlexStore™ : размещение горячих данных на быстрых носителях (SSD...) –Update = Delete (порождает историю) + Insert –Delete – только метка: снимок БД в момент времени AT TIME 'timestamp' SELECT... Асинхронный перенос данных TUPLE MOVER Read Optimized Store (ROS) • На дисках • Сортировка / Сжатие • Сегментация • Прямая загрузка больших объемов (A B C | A) A B C Непрерывная загрузка Write Optimized Store (WOS)  Находится в памяти  Нет сортировки / Нет сжатия  Сегментация  Свежие данные / Небольшие быстрые вставки A B C
  • 28.
    Встроенная высокая доступность(k-safety) – Колонки дублируются на соседних узлах согласна k-safety (1 или 2) – Не нужно ручное восстановление из журналов – Система принимает загрузки и запросы, когда узел отключен – Данные на отключенном узле запрашиваются на других узлах – Возвращение узла в работу – без остановки кластера – Восстановление после сбоя: Last good epoch или из резервной копии A3 B3 C3 A2 B2 C2 B1 A1 C1B2 A2 C2 B1 A1 C1 A3 B3 C3 A1 B1 C1 B3 A3 C3
  • 29.
    Защита от катастроф Вариант1: Загрузка данных в обе системы. (Для больших объемов) За: Обе системы активны Против: ETL обеспечивает согласованность данных Вариант 2: Репликация снимков Vertica Backup За: Минимальный риск не- согласованности данных Против: Во время синхронизации 2-й кластер не активен
  • 30.
    Легко расширяемый кластер –Простоедобавление новых серверов – Добавь узел и повысь емкость или быстродействие – Vertica автоматически перераспределяет данные –Система работает без остановки – Система принимает запросы во время ре-балансировки кластера –Быстрое перераспределение данных – Пример из жизни: расширение от 11 TB и 16 узлов до 32 nodes прошло за 65 минут без остановки системы!
  • 31.
    Мониторинг: Vertica ManagementConsole • Управление кластерами через веб-приложение • Полный контроль за работой БД и кластера • Корреляция работы системы и БД Кластер 1 Кластер 2 Кластер 3 Vertica Management Console Browser Access
  • 32.
    Tactical General Analytic User 1 Управлениерабочей нагрузкой • Нет главного узла, т.е. нет узкого места в кластере! − Инициация запросов - равномерно по узлам − Число одновременных запросов растет по мере добавления новых узлов • Настраиваемый менеджер ресурсов − Ресурсные пулы для разных рабочих нагрузок (I/O, CPU, memory, bandwidth, concurrency, duration) − Границы ресуров для пула, пользователя, сессии • Управление в реальном времени − Сменить приоритет запроса − Снять запрос tactical tactical analytic Analytic User 2
  • 33.
    SQL, адаптированный дляBig Data –Возможности • ANSI SQL-99 • Развитые функции для работы со временем • Временные ряды: – Заполнением пробелов – Разбивка на окна – Разбивка на сессии потока «кликов» • Статистика • Поддержка R (анализ и data mining) • Пакет гео-пространственных функций • Анализ текстов analytic_function ( arguments ) OVER( analytic_clause ) Примеры •Ранжировать клиентов по лояльности и регионами •Вычислить скользящее среднее объема продаж за период времени •Найти высший балл среди всех студентов одного курса •Сравнить текущий бонус каждого из продавцов с его предыдущим бонусом •Анализ «кликов» с помощью шаблонов
  • 34.
    Временной ряд: интерполяция •Система интеллектуального учета нерегулярно поставляет данные о потреблении энергии • Данные нужно хранить в БД за каждые 10 минут без пробелов • Все пробелы нужно заполнить select meter_id, interval_5min, ts_first_value(power_consumption, 'linear') from energy_readings timeseries interval_5min as '5 minutes' over (partition by meter_id order by reading_date); Пример: Подготовить данные с устройств для анализа (smart meter data)
  • 35.
    Поддержка R • Чтотакое R? • Язык для статистического анализа с открытым кодом • Много пакетов для сложного исследования данных (data mining) и статистического анализа • Преимущества пользовательских расширений (Udx) в R • Vertica автоматически за-параллеливает вычисления R • Оптимизирована передача данных между Vertica и R Verticaкластер
  • 36.
    Исходный код вR UDx в R, пример: метод K-средних # Example: K-means (k=5) # Input: two-dimensional points # Output: the point coordinates plus their assigned # cluster kmeansClu <- function(x) { cl <- kmeans(x,5,10) res <- data.frame(x[,1:2], cl$cluster) res kmeansCluFactory <- function() { list(name=kmeansClu, udxtype=c("transform"), intype=c("float","float"), outtype=c("float","float","int"), outnames=c("x","y","cluster") ) } Создание и использование функции -- Define function CREATE LIBRARY rlib AS ‘/path/rcode.R’ LANGUAGE 'R'; CREATE TRANSFORM FUNCTION Kmeans AS LANGUAGE 'R' NAME 'kmeansCluFactory' LIBRARY rlib; -- Use function CREATE TABLE point_data ( x FLOAT, y FLOAT ); SELECT Kmeans(x, y) OVER() FROM point_data;
  • 37.
    Внешние таблицы • Внешняятаблица: файл доступен для Vertica (SQL), но не управляем ею (DML невозможен) • «Холодные» данные хранятся на дешевых носителях – анализ по мере надобности • Передача данных из других SQL СУБД, HDFS (User Defined Load) • Можно объединять (Join) данные из внешних источников с данными из Vertica – VMart=> create external table ext (x integer) as copy from '/home/dbadmin/ext.dat'; Vertica External Table External TableExternal Table
  • 38.
    Unstructured Dark Data Гибкаятаблица, зона (Flex Zone) Native Vertica Data Flex Zone Быстрый, ежедневный анализПредварительный анализ Внешние структурированные данные Внешние таблицы • MapReduce • Sqoop • HDFS Анализируй данные, не зная их структуры
  • 39.
    Интеграция с Hadoop –Быстрая СУБД должна быть интегрирована с Hadoop, а не встроена в него Hadoop / Vertica: Сложный анализ MapReduce / Pig Job DFS Block 1 DFS Block 1 DFS Block 1 DFS Block 2 DFS Block 2 DFS Block 2 DFS Block 3 DFS Block 3 Map Map Map Reduce Vertica Data data data data data da data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data MapReduce / Pig Job DFS Block 1 DFS Block 1 DFS Block 1 DFS Block 2 DFS Block 2 DFS Block 2 DFS Block 3 DFS Block 3 Map Map Map Reduce VerticaVertica Hadoop / Vertica: преобразование данных HDFS File
  • 40.
    Интеграция с Hadoop HDFSconnector – Загрузка в Vertica из HDFS через COPY оптимальная параллельность – SQL к HDFS через внешнюю таблицу – Безопасность через авторизацию Kerberos Hadoop & Pig Connector – Перемещение данных между Hadoop и Vertica – Запросу к Hadoop из Vertica – JDBCODBC для Windows, Linux, Solaris, AIX и др. Hcatalog – Запросу к Hadoop из Vertica – Доступ через внешние таблицы – Open SQL on Hadoop Hadoop / Vertica: Сложный анализ MapReduce / Pig Job DFS Block 1 DFS Block 1 DFS Block 1 DFS Block 2 DFS Block 2 DFS Block 2 DFS Block 3 DFS Block 3 Map Map Map Reduce Vertica Data data data data data da data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data data MapReduce / Pig Job DFS Block 1 DFS Block 1 DFS Block 1 DFS Block 2 DFS Block 2 DFS Block 2 DFS Block 3 DFS Block 3 Map Map Map Reduce VerticaVertica Hadoop / Vertica: преобразование данных HDFS File
  • 41.
  • 42.
    Ближайшая версия Vertica“Dragline” FY14 FY15 • Проекции-агрегаты: ускорение ресуроемких агрегирующих функций • Динамическое управление смешанной рабочей нагрузкой • Vertica Pulse: анализ текстов и окраски высказываний в соц.сетях • Vertica Place: хранение и анализ гео-пространственных данных • Расширение SQL над Hadoop
  • 43.
    HP Vertica вразвитии Vertica “Crane” (7.0) - Key-Value Lookups с интерфейсом к NoSQL Vertica “Dragline” - Проекции-агрегаты - Гео-и-текстовая аналитика - Текстовый поиск Vertica “Excavator” - In-Memory - Кубы - Текстовый поиск Vertica “Frontloader” - Streaming - Federation for Read and Write – Unified SQL - Navigation and joins-across HBase and Other NoSQL Tools ВИДЕНИЕ Fast self-service analytics for consumers FY14 FY15
  • 44.
  • 45.