<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 Вопросы