Большие данные –большие возможности
Vitali Nikitin,
Big Data Leader, CIS Countries
Мир изменился…
2
“Каждые 2 дня мы создаем
столько информации, сколько
было создано с момента
появления цивилизации до 2003г.″
– CEO Google, EricSchmidt
Растущая реальность больших данных
1027
Наше будущее…
Brontobyte
1024
Это наша цифровая вселенная сегодня
= 250 триллионов DVD
Yottabyte
1021
1.3 ZB сетевого трафика к
2016
Zettabyte
1018
1 EB данных ежедневно создается в Интернет = 250 миллионов DVD.
Создаваемый телескоп SKA буде генерировать EB данных ежедневно
Exabyte
1012
Terabyte500TB ежедневно добавляется в БД Facebook
1015
Petabyte
Большой адронный коллайдер (CERN)
создает 1PB в сек
Сегодня ученые используют Yottabytes чтобы
описать сколько информации о всех людях
есть у правительственных структур (FBI, NSA и
пр.).
Очень скоро Brontobyte станут измерительной
единицей интернета вещей IoT (Internet of Things)
109
Gigabyte
106
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
TripIt
Zynga
Zynga
Baidu
Yammer
Atlassian
Atlassian
MobilieIronSmugMug
SmugMug
Atlassian
Amazon
AmazoniHandy
PingMe
PingMe
Associatedcontent
Flickr
Snapfish
Answers.com
Tumblr.
Urban
Scribd.Pandora
MobileFrame.com
Mixi
CYworld
Renren
Yandex
Yandex
Heroku
RightScale
New Relic
AppFog
Bromium
Splunk
CloudSigma
cloudability
kaggle
nebula
Parse
ScaleXtreme
SolidFire
Zillabyte
dotCloud
BeyondCore
Mozy
FringToggl
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
Microsoft
IntraLinks
Qvidian
Sage
SugarCRM
Volusion
Zoho
Adobe
Avid
Corel
Microsoft
Serif
Yahoo
CyberShift
Saba
Softscape
Sonar6
Ariba
Yahoo!
Quadrem
Elemica
Kinaxis
CCC
DCC
SCMADP VirtualEdge
Cornerstone onDemand
CyberShift
KenexaSaba
Softscape
Sonar6
Workscape
Exact Online
FinancialForce.com
IntacctNetSuite
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 MaterialEngineering
Inventory
Manufacturing Projects
Quality Control
SAP
Cash Management
Accounts Receivable
Fixed AssetsCosting
Billing
Time and Expense
Activity ManagementTraining
Time & Attendance
Rostering
Service
Data Warehousing
Каждые 60 секунд
IBM
Unisys
Burroughs
Hitachi
NECBull
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 TB20 terabytes of
information per
engine every hour
2.5Average duration
for US flights in
hours
2twin-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
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
PostgreSQLведёт свою «родословную» от некоммерческой СУБД Postgres, разработанной, как и многие open-sourceпроекты, в Калифорнийском университете в Беркли. К разработке Postgres, начавшейся в 1986 году, имел непосредственное отношение Майкл Стоунбрейкер
Vertica Systems is an analytic database management software company. Vertica was founded in 2005 by database researcher Michael Stonebraker and Andrew 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 executionClustering 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/095/06/095/05/095/06/09
143.74143.75
37.0337.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
SELECTavg(price)FROMtickstore WHEREsymbol = ‘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
AAPLAAPLBBYBBY
Кодирование и сжатие
• Использует свойства данных (сортировка, мощность - 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
Ve
rtic
aкл
асте
р
Исходный код в 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';
Ve
rtic
a
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 3DFS Block 3
Map
Map
Map
Reduce Vertica
Data
data data data data dadata data data data datadata data data data data data
data data data data data datadata data data data data datadata data data data data data
data data data data data datadata data data data data datadata 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 3DFS 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
– JDBC\ODBC для 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 3DFS Block 3
Map
Map
Map
Reduce Vertica
Data
data data data data dadata data data data datadata data data data data data
data data data data data datadata data data data data datadata data data data data data
data data data data data datadata data data data data datadata 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 3DFS 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 HBaseand Other NoSQL Tools
ВИДЕНИЕ
Fast self-service analytics for consumers
FY14 FY15
Вопросы и ответы
Спасибо!