Подходы к обработке больших данных Алексей Филановский Старший консультант

advertisement
<Insert Picture Here>
Подходы к обработке больших данных
Алексей Филановский
Старший консультант
<Insert Picture Here>
Что такое большие данные?
Что такое большие данные?
- Данные, которые могут очень быстро накапливаться, при этом,
обычно (но не всегда) информационная плотность их низкая.
Логи, данные телеметрии, датчиков, полуструктурированные
данные и неструктурированные данные, записи в социальных
сетях, вебсайты и т.д.
- Данные, которые хранить очень дорого
Часто компании держат в хранилище данные только за последние
несколько месяцев или год не потому, что им больше не нужно, а
потому, что это дорого
Особенности обработки больших данных
•Большие объемы данных
нужно хранить желательно
дешевле, чем в традиционных
СУБД.
•Могут не использоваться
многие возможности РСУБД
•Для того, чтобы найти крупицу
ценной информации, нужно
переработать огромный объем
данных
•При этом экстремальная
производительность может
быть не нужна
Общие принципы построения Big Data систем
• Построены из большого количества (до десятков тысяч)
узлов, на основе относительно дешевого оборудования
• Каждый узел является сервером и хранения и обработки
данных
• Обработка данных ведется в массивно-параллельном режиме
• MapReduce
• Данные хранятся в нескольких копиях (обычно в трех) и отказ
узла или двух не ведет к потере данных
• Система практически неограниченно масштабируется
<Insert Picture Here>
Инструменты для решения задач BigData
Инструменты решения задач BigData
Карл Маркс и Фридрих Энгельс
— это не муж и жена, а четыре
совершенно разных человека
Инструменты решения задач BigData
Задачи BigData:
1) Оработка большого объема данных. Получить информацию из
данных, либо структурировать неструктурированное(построение
инвертированного индекса).
Решение: парадигма MapReduce
Сырье –
неструктурированные даные
Кузнец - MapReduce
Изделие – информация
или структурирование
неструктурированного
Инструменты решения задач BigData
Задачи BigData:
2) Извлечение ничтожно малого объема данных из огромного
колличества информации с низкой предсказуемой задержкой. Достать
иголку из стога сена и очень быстро(поисковый запрос в google).
Решение: парадигма NoSQL
<Insert Picture Here>
Oralce NoSQL Database
Что такое СУБД ключ-значение?
Customer Table
Index
Key
Records
Value
010101010
…
…
…
…
…
010101011
…
…
…
…
…
…
…
…
…
…
…
Opaque Data Structures
• Таблицы из двух колонок – ключ и значение (Key,Value)
• Все объединения производятся внутри приложения
• Приложение знает структуру поля Value
• Простые операции get, put, delete
• Очень быстрые и масштабируемые
Чем сложнее тем медленнее
Key-Value
пара
t, sec
РСУБД
Query Parser
t0 + t1 + t2 + t3 + t4 + t5
Оптимизатор
t0 + t1 + t2 + t3 + t4
Словарь
данных
Безопасность
Java API
Кэширование,
логирование,
блокировки
t, sec
Кэширование,
логирование,
блокировки
t0 + t1 + t2 + t3
t0 + t1 + t2
t0 + t1
Физический слой
Последовательное чтение ~ 100 Мб/сек
Произвольное чтение ~ 15 мкс
Новый продукт - Oracle NoSQL DB
Распределенная, масштабируемая key-value база данных
•
•
•
•
Простая модель данных
• Пара Key-value с подходом major+sub-key
• Операции read/insert/update/delete
Масштабируемость
• Динамическое партиционирование
и перераспределение
• Оптимизированный доступ к данным
Высокая доступность
• Одна или более реплик
• Катастрофоустойчивость засчет
разнесения реплик
• Устойчивость к отказу мастера
• Нет одной точки отказа
Прозрачная балансировка нагрузки
• Чтение с мастера или реплики
• Драйвер знает о сетевой топологии и временах задержки
Application
Application
NoSQLDB Driver
NoSQLDB Driver
Storage Nodes
Storage Nodes
Data Center A
Data Center B
<Insert Picture Here>
Hadoop
Что такое Hadoop?
Hadoop это:
<Insert Picture Here>
- Среда распределенных вычислений MapReduce
- Распределенная файловая система
(одна файловая система на множество физических серверов) HDFS
Предназначение:
- Предварительная обработка неструктурированных данных
- Хранение малоценных данных
- Аналитика сверхбольшого объема данных
Архитектура HDFS
Аналогия для MapReduce
Дано: 5 корзин. В каждой содержатся яблоки, груши и апельсины
Найти: сколько у меня яблок, груш и апельсинов (просто посчитать)
Сервер 1
Сервер 2
Сервер 3
Сервер 4
Сервер 5
Входные
данные
Сервер 1
Сервер 2
Сервер 3
Сервер 4
Сервер 5
Шaг MAP
В каждой корзинке
выделяем яблоки
апельсины и груши.
Аналогия для MapReduce
Сервер 1
Сервер 2
Сервер 3
Сервер 4
Сервер 5
Шаг Shuffle
Сеть
Распределяем разные
фрукты в разные кучки.
Сервер 1
Сервер 2
Сервер 3
Сервер 4
Сервер 5
Аналогия для MapReduce
Сервер 1
Сервер 2
Сервер 3
Сервер 5
Сервер 4
Шаг Reduce
Подсчет количества
фруктов
в каждой кучке.
x30
Сервер 1
Сервер 2
30
x28
Сервер 3
28
x12
Сервер 5
Сервер 4
12
Ответ клиенту
<Insert Picture Here>
Что такое Big Data Appliance?
Предпосылки для Big Data Аppliance
• Oracle NoSQL DB, Hadoop, доступны к
скачиванию и использованию
• Однако, даже несмотря на то, что
Hadoop – Open Source, настройка и
конфигурирование кластера из
десятков узлов требует высокой
квалификации
• Для того, чтобы помочь заказчикам использовать преимущества
работы с Big Data, Oracle создает
оптимизированный комплекс Big Data Appliance
Возможная архитектура
Oracle
Exadata
Oracle
Big Data Appliance
InfiniBand
Поток
Сбор
Организация
Oracle
Exalytics
InfiniBand
Анализ и визуализация
<Insert Picture Here>
Big Data
Пример анализа данных в Twitter
Что такое Twitter?
• Сервис микроблогов
• Каждое сообщение не может быть длиннее 140
символов (как в SMS)
• Большинство сообщений – публичные
• Поддерживается поиск по сообщениям в реальном
времени
• Пользователи часто описывают свой опыт по работе с
какими-то организациями в Twitter
• Часто эмоционально
Если есть вопросы
Alexey.Filanovskiy@oracle.com
http://oracle-nosql.blogspot.com/
http://www.oracle.com/bigdata
Вопросы
Download