SlideShare a Scribd company logo
1 of 49
Практика миграции
реляционных баз данных в экосистему Hadoop
Юрий Петров
@gobigdatainfo
апрель, 2015
На сколько данные должны быть
"большими", чтобы оправдать
использование экосистемы Hadoop?
На сколько данные должны быть
"большими", чтобы оправдать
использование экосистемы Hadoop?
На сколько данные должны быть
"большими", чтобы оправдать
использование экосистемы Hadoop?
Что же мне сделать чтобы продлить
жизнь нашей базы данных
еще хотя бы на полгода?
Если же у вас все хорошо и вы уверены
Что БД не будет тормозить еще года 3
JUST RELAX…
Что не так с реляционными БД?
•Реляционная модель была создана
в 70х годах
•3я нормальная форма
•Построковое хранение
Что не так с реляционными БД?
•умеют работать только
со структурированными данными
•имеют плоскую структуру
Что не так с реляционными БД?
Чтобы сохранить в реляционной БД 2 разные бизнес-сущности нам
потребуется как минимум 2 таблицы
Чтобы данные из этих 2х таблиц объединить:
• loop join
• merge join
• hash join
Плюс реляционной модели - простота
• не надо думать о типах контейнеров, в которых хранятся
данные
• о ключах распределения
• о сложной многомерной структуре таблиц
• необходимость выбора единственно правильного индекса и партиций
• резкая деградация производительности по мере роста количества данных
• сложности масштабирования
• не видно другие данные, которые не были загружены непосредственно в БД
• сложность ETL - например, приходится парсить многомерный JSON-файл и
разворачивать его в реляционную модель
Проблемы реляционной модели
Исключением является
• с версии 9.4 появился полноценный
json тип данных – jsonb
• документо-ориентированное
хранилище HSTORE
• cпасибо Олегу Бартунову
и Александру Короткову за это
Нереляционный подход
NoSQL, BigData
Требования бизнеса
к современным системам обработки данных
• Shared nothing – распределённая вычислительная архитектура
• MPP (Massive Parallel Processing) – параллельная обработка
данных на многих вычислительных узлах
• Различные типы контейнеров с данными, а так же просто
файлы, видны друг другу и доступны для прямых запросов,
операций объединения и трансформации
Требования бизнеса
к современным системам обработки данных
• Одинаково эффективная работа как со структурированными
так и с неструктурированными данными
• Выполнение сложных вычислений на лету
• Снижение сложности модели БД и ETL-процесса
Требования бизнеса
к современным системам обработки данных
• Автошардинг
• Кроссплатформенность
• Неограниченное линейное масштабирование
• Повышенная отказоустойчивость
Смотря на эти требования можно предположить,
что разработать такую платформу достаточно сложно
Но решение пришло,
и пришло откуда
не ждали
Всему виной взрывной рост данных
Дуг Каттинг и Майк Кафарелла в 2005 году
возглавили разработку Hadoop в Yahoo
Спасибо,
За счет чего в экосистеме Hadoop
удалось удовлетворить все те требования,
которые мы сформировали немного ранее?
• вычислительный узел в экосистеме
Hadoop это независимый полноценный
компьютер
• на каждом вычислительном узле
расположена своя уникальная часть
данных
• задача Map запускается на том узле, где
лежат входные данные, т.е. вычисления
перемещаются к данным
• Данные равномерно распределяются по
узлам кластера
• Редьюсеры запускаются на наиболее
свободных вычислительных нодах
• Мастер-нода не перегружена
метаданными и не является единой
точкой отказа
• Промежуточные данные map-reduce
джоба больше не приземляются на диск,
а кешируются в памяти
Что объединяет всю экосистему Hadoop?
Распределенная файловая система HDFS
Переходим
к практической
части доклада
Описание контейнеров
• Текстовые файлы и документы (csv, json, pdf etc.)
• SequenceFile - список ключ-значение (например ключ:
название файла, значение: содержимое файла)
• MapFile - сортированный по ключу список ключ-значение
Описание контейнеров
• Avro - многомерное row-oriented хранилище, таблицы
которого описываются json-схемой
• ORCFile - многомерное column-oriented хранилище с
поддержкой требований ACID
• HFile - контейнер с данными NoSQL базы данных HBase
SQL-запросы и HIVE
Спасибо,
HIVE и загрузка csv-файлов
1. Создаем таблицу test_data
HIVE и загрузка csv-файлов
2. Загрузим csv в таблицу
3. Парсим csv-файл на лету
HIVE и загрузка json-файла в контейнер AVRO
1. Конвертируем json во внутренный формат AVRO
2. В HIVE создаем таблицу
3. ... и загружаем в нее наш json
Нереляционная (NoSQL) БД HBase
Спасибо,
Структура данных HBase
• таблица - пространство имен, объединяющее множество строк
• строка (row) - контейнер, состоящий из набора произвольного
количества версионированных пар ключ-значение и ключа
строки (row key)
• regions - объединяет строки по ключу строки и физически
разделяет по разным файлам Hfile
Структура данных HBase
• Column - ключ в паре ключ-значение
• Column Family - физически разделяет один или несколько
столбцов по разным файлам HFile
• Value - значение в паре ключ-значение
• Timestamp - время в паре ключ-значение, определяющее
версию значения. По-умолчанию отображается значение с
самой свежей версией
Таблица с данными HBASE в виде json-файла
Phoenix
быстрый SQL-интерфейс для HBASE
Реляционная vs NoSQL модель
Реляционная модель
NoSQL модель
Требования ACID и ограничения целостности
• в HIVE 0.14 добавлена поддержка требований ACID для
контейнера ORCFile
• Yahoo разрабатывает Omid для HBASE
• Facebook разрабатывает HydraBase для HBASE
ЗАКЛЮЧЕНИЕ
•минимальный стек технологий
•что сделать, чтобы проект миграции все-же
начался
•состав и компетенции команды
Нужно совсем немного
• ETL - Talend либо Python, PIG, Sqoop
• Подсистема хранения - файлы as-is и контейнеры
MapFile, Avro, HBASE
• Запросы - Hive
Почему пилот не стартует?
• недостаточная осведомленность менеджеров
• будет ли профит от Hadoop
• взлетит ли вообще что-нибудь?
• а не потратим ли мы впустую деньги на новую
необкатанную технологию?
Мифы о команде
• 1 человек сможет
во всем разобраться
• нам обязательно
нужен JAVA-разработчик
Состав команды
• Hadoop-евангелист и архитектор (это я )
• Linux-гуру
• ETL developer
• HIVE developer/Data Mining Analyst
Юрий Петров
Hadoop-консалтинг, корпоративное обучение
Мои контакты:
SKYPE: petrov.y.v
Email: petrov@gobigdata.info
Facebook: http://facebook.com/gobigdata.info
Linkedin: https://www.linkedin.com/in/petrovgobigdata
Блог: http://gobigdata.info
Спасибо за внимание!

More Related Content

What's hot

Как снизить нагрузку на высокопосещаемый проект
Как снизить нагрузку на высокопосещаемый проектКак снизить нагрузку на высокопосещаемый проект
Как снизить нагрузку на высокопосещаемый проект
sportgid
 
Продвинутый анализ и машинное обучение с помощью виртуализации данных
Продвинутый анализ и машинное обучение с помощью виртуализации данныхПродвинутый анализ и машинное обучение с помощью виртуализации данных
Продвинутый анализ и машинное обучение с помощью виртуализации данных
Denodo
 
Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
Ontico
 

What's hot (20)

DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
 
Модернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиМодернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитики
 
Как снизить нагрузку на высокопосещаемый проект
Как снизить нагрузку на высокопосещаемый проектКак снизить нагрузку на высокопосещаемый проект
Как снизить нагрузку на высокопосещаемый проект
 
1 big data oracle digi oct
1 big data oracle digi oct1 big data oracle digi oct
1 big data oracle digi oct
 
HighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data GridsHighLoad++ 2009 In-Memory Data Grids
HighLoad++ 2009 In-Memory Data Grids
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
 
Модернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитикиМодернизация хранилища данных для использования передовой аналитики
Модернизация хранилища данных для использования передовой аналитики
 
Andrei Kirilenkov. Vertica
Andrei Kirilenkov. VerticaAndrei Kirilenkov. Vertica
Andrei Kirilenkov. Vertica
 
Архитектура бесконечного хранилища для пользовательского контента — Артём Сок...
Архитектура бесконечного хранилища для пользовательского контента — Артём Сок...Архитектура бесконечного хранилища для пользовательского контента — Артём Сок...
Архитектура бесконечного хранилища для пользовательского контента — Артём Сок...
 
Продвинутый анализ и машинное обучение с помощью виртуализации данных
Продвинутый анализ и машинное обучение с помощью виртуализации данныхПродвинутый анализ и машинное обучение с помощью виртуализации данных
Продвинутый анализ и машинное обучение с помощью виртуализации данных
 
ClickHouse
ClickHouseClickHouse
ClickHouse
 
Защита данных от Dell Software
Защита данных от Dell SoftwareЗащита данных от Dell Software
Защита данных от Dell Software
 
Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
Что нужно знать об архитектуре ClickHouse / Алексей Зателепин (Яндекс)
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Александр Ефанов, IBS. Преобразование Big Data в Smart Data
Александр Ефанов, IBS. Преобразование Big Data в Smart DataАлександр Ефанов, IBS. Преобразование Big Data в Smart Data
Александр Ефанов, IBS. Преобразование Big Data в Smart Data
 
High load++2016.highlights (dropbox+clickhouse)
High load++2016.highlights (dropbox+clickhouse)High load++2016.highlights (dropbox+clickhouse)
High load++2016.highlights (dropbox+clickhouse)
 
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
 

Viewers also liked

Itransition: Talend - о компании и решениях
Itransition:  Talend - о компании и решенияхItransition:  Talend - о компании и решениях
Itransition: Talend - о компании и решениях
Itransition Group Ltd.
 
Презентация Informatica MDM
Презентация Informatica MDMПрезентация Informatica MDM
Презентация Informatica MDM
Oleksii Tsipiniuk
 
Великие географические открытия
Великие географические открытияВеликие географические открытия
Великие географические открытия
Katty Zimina
 
Sas rule based codebook generation for exploratory data analysis - wuss 2012
Sas rule based codebook generation for exploratory data analysis - wuss 2012Sas rule based codebook generation for exploratory data analysis - wuss 2012
Sas rule based codebook generation for exploratory data analysis - wuss 2012
RossBettinger
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
Alexey Zinoviev
 
a Secure Public Cache for YARN Application Resources
a Secure Public Cache for YARN Application Resourcesa Secure Public Cache for YARN Application Resources
a Secure Public Cache for YARN Application Resources
DataWorks Summit
 
Scaling HDFS to Manage Billions of Files with Key-Value Stores
Scaling HDFS to Manage Billions of Files with Key-Value StoresScaling HDFS to Manage Billions of Files with Key-Value Stores
Scaling HDFS to Manage Billions of Files with Key-Value Stores
DataWorks Summit
 
June 10 145pm hortonworks_tan & welch_v2
June 10 145pm hortonworks_tan & welch_v2June 10 145pm hortonworks_tan & welch_v2
June 10 145pm hortonworks_tan & welch_v2
DataWorks Summit
 
Bigger, Faster, Easier: Building a Real-Time Self Service Data Analytics Ecos...
Bigger, Faster, Easier: Building a Real-Time Self Service Data Analytics Ecos...Bigger, Faster, Easier: Building a Real-Time Self Service Data Analytics Ecos...
Bigger, Faster, Easier: Building a Real-Time Self Service Data Analytics Ecos...
DataWorks Summit
 
Hadoop Performance Optimization at Scale, Lessons Learned at Twitter
Hadoop Performance Optimization at Scale, Lessons Learned at TwitterHadoop Performance Optimization at Scale, Lessons Learned at Twitter
Hadoop Performance Optimization at Scale, Lessons Learned at Twitter
DataWorks Summit
 

Viewers also liked (20)

Itransition: Talend - о компании и решениях
Itransition:  Talend - о компании и решенияхItransition:  Talend - о компании и решениях
Itransition: Talend - о компании и решениях
 
Презентация Informatica MDM
Презентация Informatica MDMПрезентация Informatica MDM
Презентация Informatica MDM
 
Apache Hadoop
Apache HadoopApache Hadoop
Apache Hadoop
 
Великие географические открытия
Великие географические открытияВеликие географические открытия
Великие географические открытия
 
Реализация bi-системы собственными силами или как снизить стоимость проекта. ...
Реализация bi-системы собственными силами или как снизить стоимость проекта. ...Реализация bi-системы собственными силами или как снизить стоимость проекта. ...
Реализация bi-системы собственными силами или как снизить стоимость проекта. ...
 
Talend - about company and solutions
Talend - about company and solutionsTalend - about company and solutions
Talend - about company and solutions
 
Talend Data Quality - catalyst for CRM deployment
Talend Data Quality - catalyst for CRM deploymentTalend Data Quality - catalyst for CRM deployment
Talend Data Quality - catalyst for CRM deployment
 
Sas rule based codebook generation for exploratory data analysis - wuss 2012
Sas rule based codebook generation for exploratory data analysis - wuss 2012Sas rule based codebook generation for exploratory data analysis - wuss 2012
Sas rule based codebook generation for exploratory data analysis - wuss 2012
 
Особенности ETL — инструмента pentaho data integrator. Опыт КРОК
Особенности ETL — инструмента pentaho data integrator. Опыт КРОКОсобенности ETL — инструмента pentaho data integrator. Опыт КРОК
Особенности ETL — инструмента pentaho data integrator. Опыт КРОК
 
Очистка данных на практике: мифы и легенты Excel и R
Очистка данных на практике: мифы и легенты Excel и RОчистка данных на практике: мифы и легенты Excel и R
Очистка данных на практике: мифы и легенты Excel и R
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
 
Hadoop Eagle - Real Time Monitoring Framework for eBay Hadoop
Hadoop Eagle - Real Time Monitoring Framework for eBay HadoopHadoop Eagle - Real Time Monitoring Framework for eBay Hadoop
Hadoop Eagle - Real Time Monitoring Framework for eBay Hadoop
 
a Secure Public Cache for YARN Application Resources
a Secure Public Cache for YARN Application Resourcesa Secure Public Cache for YARN Application Resources
a Secure Public Cache for YARN Application Resources
 
Apache Kylin - Balance Between Space and Time
Apache Kylin - Balance Between Space and TimeApache Kylin - Balance Between Space and Time
Apache Kylin - Balance Between Space and Time
 
Scaling HDFS to Manage Billions of Files with Key-Value Stores
Scaling HDFS to Manage Billions of Files with Key-Value StoresScaling HDFS to Manage Billions of Files with Key-Value Stores
Scaling HDFS to Manage Billions of Files with Key-Value Stores
 
From Beginners to Experts, Data Wrangling for All
From Beginners to Experts, Data Wrangling for AllFrom Beginners to Experts, Data Wrangling for All
From Beginners to Experts, Data Wrangling for All
 
June 10 145pm hortonworks_tan & welch_v2
June 10 145pm hortonworks_tan & welch_v2June 10 145pm hortonworks_tan & welch_v2
June 10 145pm hortonworks_tan & welch_v2
 
Bigger, Faster, Easier: Building a Real-Time Self Service Data Analytics Ecos...
Bigger, Faster, Easier: Building a Real-Time Self Service Data Analytics Ecos...Bigger, Faster, Easier: Building a Real-Time Self Service Data Analytics Ecos...
Bigger, Faster, Easier: Building a Real-Time Self Service Data Analytics Ecos...
 
Hadoop Performance Optimization at Scale, Lessons Learned at Twitter
Hadoop Performance Optimization at Scale, Lessons Learned at TwitterHadoop Performance Optimization at Scale, Lessons Learned at Twitter
Hadoop Performance Optimization at Scale, Lessons Learned at Twitter
 
Sqoop on Spark for Data Ingestion
Sqoop on Spark for Data IngestionSqoop on Spark for Data Ingestion
Sqoop on Spark for Data Ingestion
 

Similar to Практика миграции реляционных баз данных в экосистему Hadoop

Web весна 2012 лекция 6
Web весна 2012 лекция 6Web весна 2012 лекция 6
Web весна 2012 лекция 6
Technopark
 
Aлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetAлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreet
Ontico
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Ontico
 
Блеск и нищета распределённых кэшей
Блеск и нищета распределённых кэшейБлеск и нищета распределённых кэшей
Блеск и нищета распределённых кэшей
aragozin
 

Similar to Практика миграции реляционных баз данных в экосистему Hadoop (20)

BigIntegrate - разрушение мифов по поводу ETL на Hadoop
BigIntegrate - разрушение мифов по поводу ETL на HadoopBigIntegrate - разрушение мифов по поводу ETL на Hadoop
BigIntegrate - разрушение мифов по поводу ETL на Hadoop
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
 
HighLoad systems: tips & tricks
HighLoad systems: tips & tricksHighLoad systems: tips & tricks
HighLoad systems: tips & tricks
 
Web весна 2012 лекция 6
Web весна 2012 лекция 6Web весна 2012 лекция 6
Web весна 2012 лекция 6
 
Short enterprise data hub on apache hadoop ru
Short enterprise data hub on apache hadoop ruShort enterprise data hub on apache hadoop ru
Short enterprise data hub on apache hadoop ru
 
Aлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreetAлександр Зайцев, LifeStreet
Aлександр Зайцев, LifeStreet
 
Управление данными (хранилища данных и OLAP)
Управление данными (хранилища данных и OLAP)Управление данными (хранилища данных и OLAP)
Управление данными (хранилища данных и OLAP)
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 Rus
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
 
Nrdbms
NrdbmsNrdbms
Nrdbms
 
InterSystems news Meetup Sankt-Peterburg2015
InterSystems news Meetup Sankt-Peterburg2015InterSystems news Meetup Sankt-Peterburg2015
InterSystems news Meetup Sankt-Peterburg2015
 
Блеск и нищета распределённых кэшей
Блеск и нищета распределённых кэшейБлеск и нищета распределённых кэшей
Блеск и нищета распределённых кэшей
 
Подходы к построению хранилищ данных в крупных организациях
Подходы к построению хранилищ данных в крупных организацияхПодходы к построению хранилищ данных в крупных организациях
Подходы к построению хранилищ данных в крупных организациях
 
HBase inside
HBase insideHBase inside
HBase inside
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
 
Fors и big data appliance
Fors и big data applianceFors и big data appliance
Fors и big data appliance
 
12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra12 - Hadoop. HBase и Cassandra
12 - Hadoop. HBase и Cassandra
 
SQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management PlatformsSQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management Platforms
 
10 субд
10 субд10 субд
10 субд
 

Практика миграции реляционных баз данных в экосистему Hadoop

  • 1. Практика миграции реляционных баз данных в экосистему Hadoop Юрий Петров @gobigdatainfo апрель, 2015
  • 2. На сколько данные должны быть "большими", чтобы оправдать использование экосистемы Hadoop?
  • 3. На сколько данные должны быть "большими", чтобы оправдать использование экосистемы Hadoop?
  • 4. На сколько данные должны быть "большими", чтобы оправдать использование экосистемы Hadoop? Что же мне сделать чтобы продлить жизнь нашей базы данных еще хотя бы на полгода?
  • 5. Если же у вас все хорошо и вы уверены Что БД не будет тормозить еще года 3 JUST RELAX…
  • 6. Что не так с реляционными БД?
  • 7. •Реляционная модель была создана в 70х годах •3я нормальная форма •Построковое хранение Что не так с реляционными БД?
  • 8. •умеют работать только со структурированными данными •имеют плоскую структуру Что не так с реляционными БД?
  • 9. Чтобы сохранить в реляционной БД 2 разные бизнес-сущности нам потребуется как минимум 2 таблицы Чтобы данные из этих 2х таблиц объединить: • loop join • merge join • hash join
  • 10. Плюс реляционной модели - простота • не надо думать о типах контейнеров, в которых хранятся данные • о ключах распределения • о сложной многомерной структуре таблиц
  • 11. • необходимость выбора единственно правильного индекса и партиций • резкая деградация производительности по мере роста количества данных • сложности масштабирования • не видно другие данные, которые не были загружены непосредственно в БД • сложность ETL - например, приходится парсить многомерный JSON-файл и разворачивать его в реляционную модель Проблемы реляционной модели
  • 12. Исключением является • с версии 9.4 появился полноценный json тип данных – jsonb • документо-ориентированное хранилище HSTORE • cпасибо Олегу Бартунову и Александру Короткову за это
  • 14. Требования бизнеса к современным системам обработки данных • Shared nothing – распределённая вычислительная архитектура • MPP (Massive Parallel Processing) – параллельная обработка данных на многих вычислительных узлах • Различные типы контейнеров с данными, а так же просто файлы, видны друг другу и доступны для прямых запросов, операций объединения и трансформации
  • 15. Требования бизнеса к современным системам обработки данных • Одинаково эффективная работа как со структурированными так и с неструктурированными данными • Выполнение сложных вычислений на лету • Снижение сложности модели БД и ETL-процесса
  • 16. Требования бизнеса к современным системам обработки данных • Автошардинг • Кроссплатформенность • Неограниченное линейное масштабирование • Повышенная отказоустойчивость
  • 17. Смотря на эти требования можно предположить, что разработать такую платформу достаточно сложно
  • 18. Но решение пришло, и пришло откуда не ждали
  • 19. Всему виной взрывной рост данных
  • 20. Дуг Каттинг и Майк Кафарелла в 2005 году возглавили разработку Hadoop в Yahoo
  • 22. За счет чего в экосистеме Hadoop удалось удовлетворить все те требования, которые мы сформировали немного ранее?
  • 23. • вычислительный узел в экосистеме Hadoop это независимый полноценный компьютер • на каждом вычислительном узле расположена своя уникальная часть данных • задача Map запускается на том узле, где лежат входные данные, т.е. вычисления перемещаются к данным
  • 24. • Данные равномерно распределяются по узлам кластера • Редьюсеры запускаются на наиболее свободных вычислительных нодах • Мастер-нода не перегружена метаданными и не является единой точкой отказа • Промежуточные данные map-reduce джоба больше не приземляются на диск, а кешируются в памяти
  • 25. Что объединяет всю экосистему Hadoop?
  • 28. Описание контейнеров • Текстовые файлы и документы (csv, json, pdf etc.) • SequenceFile - список ключ-значение (например ключ: название файла, значение: содержимое файла) • MapFile - сортированный по ключу список ключ-значение
  • 29. Описание контейнеров • Avro - многомерное row-oriented хранилище, таблицы которого описываются json-схемой • ORCFile - многомерное column-oriented хранилище с поддержкой требований ACID • HFile - контейнер с данными NoSQL базы данных HBase
  • 31. HIVE и загрузка csv-файлов 1. Создаем таблицу test_data
  • 32. HIVE и загрузка csv-файлов 2. Загрузим csv в таблицу 3. Парсим csv-файл на лету
  • 33. HIVE и загрузка json-файла в контейнер AVRO 1. Конвертируем json во внутренный формат AVRO 2. В HIVE создаем таблицу 3. ... и загружаем в нее наш json
  • 36. Структура данных HBase • таблица - пространство имен, объединяющее множество строк • строка (row) - контейнер, состоящий из набора произвольного количества версионированных пар ключ-значение и ключа строки (row key) • regions - объединяет строки по ключу строки и физически разделяет по разным файлам Hfile
  • 37. Структура данных HBase • Column - ключ в паре ключ-значение • Column Family - физически разделяет один или несколько столбцов по разным файлам HFile • Value - значение в паре ключ-значение • Timestamp - время в паре ключ-значение, определяющее версию значения. По-умолчанию отображается значение с самой свежей версией
  • 38. Таблица с данными HBASE в виде json-файла
  • 43. Требования ACID и ограничения целостности • в HIVE 0.14 добавлена поддержка требований ACID для контейнера ORCFile • Yahoo разрабатывает Omid для HBASE • Facebook разрабатывает HydraBase для HBASE
  • 44. ЗАКЛЮЧЕНИЕ •минимальный стек технологий •что сделать, чтобы проект миграции все-же начался •состав и компетенции команды
  • 45. Нужно совсем немного • ETL - Talend либо Python, PIG, Sqoop • Подсистема хранения - файлы as-is и контейнеры MapFile, Avro, HBASE • Запросы - Hive
  • 46. Почему пилот не стартует? • недостаточная осведомленность менеджеров • будет ли профит от Hadoop • взлетит ли вообще что-нибудь? • а не потратим ли мы впустую деньги на новую необкатанную технологию?
  • 47. Мифы о команде • 1 человек сможет во всем разобраться • нам обязательно нужен JAVA-разработчик
  • 48. Состав команды • Hadoop-евангелист и архитектор (это я ) • Linux-гуру • ETL developer • HIVE developer/Data Mining Analyst
  • 49. Юрий Петров Hadoop-консалтинг, корпоративное обучение Мои контакты: SKYPE: petrov.y.v Email: petrov@gobigdata.info Facebook: http://facebook.com/gobigdata.info Linkedin: https://www.linkedin.com/in/petrovgobigdata Блог: http://gobigdata.info Спасибо за внимание!