SlideShare a Scribd company logo
Ламбда Архитектура на Практике
Кирилл Алешин
IDEXX Laboratories

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
План Доклада
• Что такое Ламбда Архитектура?
• Описание проекта
• Характеристики масштабной аналитической системы
данных
• Суп технологий: Твиттер Сторм, Редис, Хадуп.
• Выученые уроки
• Ответы на вопросы

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Ламбда Архитектура
• Инвентор – Натан Марц
(Твиттер)
• Обещание –
«неограниченная
масштабируемость данных
в реальном времени»

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Описание Проекта
• Несколько слов об Айдексе
• Глобальный лидер в ветеринарной сфере
• Рыночная капитализация - $5.5 млрд.
• Самые высокие расходы на R&D во всей вет. индустрии
– как реальные, так и пропорцианальные обороту

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Описание Проекта
• Циклическое импортирование тысяч баз данных из
ветеринарных клиник в реальном времени
• Складирование этих данных в хорошо масштабируемой
системе
• Открытие центрального доступа к этим данным как
внутри, так и вне компании
• Научная аналитика
• ...и все это должно быть не сильно дорого 

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Какие данные?
• Финансовые:
• Ветеринарные платежи

• Медицинские:
• Результаты лабораторных тестов
• Вакцинации
• Истории болезни
• Медицинский нарратив (неструктурированные данные)

• Общие:
• Клиентские визиты
• Напоминания о визитах

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Бизнес Цели – Данные Это Продукт
• Сопоставление итогов маркетинговых компаний
• Определение характеристик лучших клиентов
• Упреждающая детекция эпидемий
• Превентивная медицина

• Перепродажа данных крупным фармацевтическим
компаниям

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Проблемы...
• Импортируемые базы данных не позволяют определять
новые или измененные значения
• Каждая база данных должна обрабатываться каждый
раз заново
• ... четыре раза в день
• 10 тысяч баз данных х 4 раза в день = 1 база в 2
секунды
• Средняя база данных содержит в себе 4-5 млн рядов.

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Задачи
Наша система данных должна:
• Быстро сохранять и обрабатывать огромное количество данных
(масштабируемость).
• Делать это относительно недорого (стоимость).
• Быть настоящей системой данных – представлять данные на
протяжении всего временного континуума (особая модель
данных).

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Фундаментальный принцип:
Неизменяемость (Immutability)
• Неизменяемые данные никогда не обновляются.
• Как следствие, неизменяемые системы данных
предствляют собой полнyю репрезентацию фактов на
временном континууме.
• Как следствие, неизменяемые системы данных гораздо
более устойчивы к человеческим ошибкам, так как
ошибочные данные могут быть просто удалены без
всяких усилий на восстановление правдивых значений.

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Пример: Изменяемые Данные
id

name

gender

color

species

1

Sam

male

brown

canine

2

Rover

male

yellow

canine

3

Fluffy

female

white

feline

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Пример: Изменяемые Данные
id

name

gender

color

species

1

Sam

male

brown

canine

2

Rover

neutered male

yellow

canine

3

Fluffy

female

white

feline

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Пример: Неизменяемые Данные
Name Data
id
1
2
3

name
Sam
Rover
Fluffy

Timestamp
4/3/2011 10:25:44
7/4/2010 16:35:20
10/12/2012 19:45:45

id
1
2
3
Sex Data

id

name

timestamp

1

Male

4/3/2011 10:25:44

2

Male

7/4/2010 16:35:20

3

Female

10/12/2012 19:45:45

Sex Data
id

name

timestamp

1

Male

4/3/2011 10:25:44

2

Male

7/4/2010 16:35:20

3

Female

10/12/2012 19:45:45

2

Neutered Male

04/02/2013 22:34:56

Copyright © 2013 Kyrill Alyoshin. All rights reserved.

Species Data
Species
timestamp
canine
4/3/2011 10:25:44
canine
7/4/2010 16:35:20
feline
10/12/2012 19:45:45
Еще раз о плюсах такой модели данных

• Позволяет осуществлять запрос в любой временной момент
• Толерантна к человеческой ошибке
• Фундаментальна столбчата – минимизирует усилия на чтение

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Основные Компоненты

• Клиент для выкачивания данных из ветеринарных практик
• Твиттер Сторм – как высокоскорстная ETL система
• Редис – как высокоскоростная система фильтрации

• Хадуп – как аналитическая система
• Системы материализованных представлений – serving layer.

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Клиент для выкачки данных
• Софт, который устанавливается в клинике и:
• Переодически выкачивает все данные
• Сохраняет их в «облаке»
• Посылает сигнал готовности

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Сторм – потоковая система обработки данных
• Любые потоковые вычисления
• Источником данных может быть что угодно: обычно
какая-то очередь.
• Ключевые абстракции (spouts and bolts)
конфигурируются в топологии и распределяются по
серверам (supervisors) и Ява процессам (workers).
• Легкая горизонтальная масштабируемость.
• Сторм предоставляет гарантированную доставку
данных. Akka, Erlang – отдыхают. 

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Редис: фильтр для неизмененных рядов
• Для каждого ряда, который будет сохраняться в Хадупе,
мы сцепляем все значения в единую строку и
вычисляем ее 128 битный хэш.
• Этот хэш сохраняется в Редисе вместе с первичным
ключом каждого для каждого ряда.
• Точно также мы вычисляем этот хэш для каждого ряда
из пришедшей базы данных и сравниваем его со
значением в Редисе.
• Если оно одно и то же, то ряд отфильтровывается.

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Хадуп – Ключевые Идеи
• HDFS – данные сохраняются на распределенной
файловой системе.
• Код выполняется прямо на узлах данных (локальность).
• Распределение данных и кода автоматическое и
незаметное.
• Падение узлов незаметно для приложения.
• Масштабируемость достигается простым добавлением
узлов без остановки кластера.

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Уроки Хадупа: Часть 2
• Общая оркестровка рабочего процесса пока слаба –
используем Spring Batch.
• Если нужны быстрые результаты,то надо много узлов.
• Никогда не используйте MapReduce напрямую – пользуйтесь
высокоуровневыми библиотеками – Cascading, JCascalog –
особенно, когда данные структурированы.
• dfs-datastores – неплохая библиотека для прямого
складирования и чтения структурированных данных прямо на
HDFS.
• Легко интегрируется с S3, что позволяет использование
Amazon EMR, для особо тяжелых процессов.
Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Как читать данные?
• Ламбда архитектура говорит, что они должны поставляться из
некоторого дополнительного уровня материализованных
представлений – the serving layer.
• Фактически это может быть что угодно. Основное требование –
скорость обновления и консистенция чтения на клиенте в момент
обновления.
• Можно делать и в реляционной базе данных через
материализованные представления (если обем данных не сильно
большой)

• Есть и специализированные базы данных: ElephantDB, Voldemort

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Общие Заметки
• Твиттер Сторм оказался чрезвычайно стабильной системой –
работает фактически на автопилоте.
• Редис также невероятно стабильная высокоскоростная система.
Мы буквально не можем его перегрузить.
• Хадуп – требует заботы и внимания, но тем не менее легко
масштабируется и позволяет обрабатывать огромное колличество
данных.

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Реализованная Ламбда Архитектура
• Горизонтально масштабируемая система на всех уровнях.
• Неизменная модель данных, позволяющая любой уровень
аналитики данных.
• Поскольку данные никогда не удаляются (кроме человеческих
ошибок) и сохраняются «сырыми», то ошибки в анализе легко
исправляются – новый код и получите новое представление
данных (view) на уровне, на котором данные читаются.

Copyright © 2013 Kyrill Alyoshin. All rights reserved.
Вопросы Пожалуйста!
Кирилл Алешин
kyrill@alyoshin-consulting.com
Twitter: kyrill007

Copyright © 2013 Kyrill Alyoshin. All rights reserved.

More Related Content

PDF
Кирилл Алешин, Ламбда Архитектура на практике
PDF
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
PPTX
Машинное обучение в электронной коммерции — практика использования и подводны...
PPTX
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
PPTX
Распределённый кэш или хранилище данных. Что выбрать?
PPTX
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
PPTX
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
PPTX
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
Кирилл Алешин, Ламбда Архитектура на практике
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Машинное обучение в электронной коммерции — практика использования и подводны...
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
Распределённый кэш или хранилище данных. Что выбрать?
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...

What's hot (20)

PDF
Александр Соловьёв, Griddynamics.com
PDF
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
PDF
Архитектура HAWQ / Алексей Грищенко (Pivotal)
PDF
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
PDF
Мастер-класс по BigData Tools для HappyDev'15
PDF
Всеволод Поляков "История одного мониторинга"
PDF
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
PDF
Andrei Kirilenkov. Vertica
PDF
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
PPTX
Борьба с GС паузами в JVM
PDF
HappyDev'15 Keynote: Когда все данные станут большими...
PDF
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
PDF
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
PDF
High load2007 scaling-web-applications-rus
PPTX
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
PDF
Short Infrastructure Overview ru hpe Vertica
PDF
My talk on LeoFS, Highload++ 2014
PDF
Блеск и нищета распределённых кэшей
PPTX
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
PDF
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"
Александр Соловьёв, Griddynamics.com
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Архитектура HAWQ / Алексей Грищенко (Pivotal)
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Мастер-класс по BigData Tools для HappyDev'15
Всеволод Поляков "История одного мониторинга"
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
Andrei Kirilenkov. Vertica
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
Борьба с GС паузами в JVM
HappyDev'15 Keynote: Когда все данные станут большими...
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
High load2007 scaling-web-applications-rus
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Short Infrastructure Overview ru hpe Vertica
My talk on LeoFS, Highload++ 2014
Блеск и нищета распределённых кэшей
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"
Ad

Viewers also liked (15)

PDF
Аналитика над петабайтами в реальном времени
PDF
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
PPTX
SQL Server Security Best Practices - Евгений Недашковский
PPTX
Building a geospatial processing pipeline using Hadoop and HBase and how Mons...
PDF
Константин Осипов
PDF
Using Morphlines for On-the-Fly ETL
PPTX
a real-time architecture using Hadoop and Storm at Devoxx
PPTX
Apache Kudu (Incubating): New Hadoop Storage for Fast Analytics on Fast Data ...
PDF
Максим Кулиш — OWOX-Russia — ICBDA2016
PDF
Realtime Analytics with Hadoop and HBase
PPT
Иван Красников — K☆50 — ICBDA2016
PDF
Александр Куликов — Segmento — ICBDA2016
PDF
The First Class Integration of Solr with Hadoop
PPTX
HBase Vs Cassandra Vs MongoDB - Choosing the right NoSQL database
PPT
HGrid A Data Model for Large Geospatial Data Sets in HBase
Аналитика над петабайтами в реальном времени
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
SQL Server Security Best Practices - Евгений Недашковский
Building a geospatial processing pipeline using Hadoop and HBase and how Mons...
Константин Осипов
Using Morphlines for On-the-Fly ETL
a real-time architecture using Hadoop and Storm at Devoxx
Apache Kudu (Incubating): New Hadoop Storage for Fast Analytics on Fast Data ...
Максим Кулиш — OWOX-Russia — ICBDA2016
Realtime Analytics with Hadoop and HBase
Иван Красников — K☆50 — ICBDA2016
Александр Куликов — Segmento — ICBDA2016
The First Class Integration of Solr with Hadoop
HBase Vs Cassandra Vs MongoDB - Choosing the right NoSQL database
HGrid A Data Model for Large Geospatial Data Sets in HBase
Ad

Similar to Кирилл Алешин - Big Data и Lambda архитектура на практике (20)

PDF
Александр Богданов «Lambda - архитектура»
PDF
Информационные технологии в эру Больших данных
PPTX
Информационные технологии в эру Больших данных
PPTX
DBD lection 4. Big Data, NoSQL. In Russian.
PDF
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
PDF
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
PDF
Лекция 2. Основы Hadoop
PPTX
Переход от монолитной архитектуры к распределенной
PPT
Web весна 2012 лекция 6
PDF
Основы баз данных NoSQL
PDF
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
PDF
SECON'2014 - Александр Бындю - Переход от монолитной архитектуры к распределе...
PDF
HPC vs Big Data (Russian version)
PDF
NoSQL: issues and progress, current status and prospects
PDF
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
PPTX
Управление Данными. Лекция 1
PDF
Платформа и решения НРЕ для больших данных
PDF
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
PDF
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
PPTX
Управление данными (модели данных)
Александр Богданов «Lambda - архитектура»
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
DBD lection 4. Big Data, NoSQL. In Russian.
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
Лекция 2. Основы Hadoop
Переход от монолитной архитектуры к распределенной
Web весна 2012 лекция 6
Основы баз данных NoSQL
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
SECON'2014 - Александр Бындю - Переход от монолитной архитектуры к распределе...
HPC vs Big Data (Russian version)
NoSQL: issues and progress, current status and prospects
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Управление Данными. Лекция 1
Платформа и решения НРЕ для больших данных
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
Управление данными (модели данных)

More from IT Share (14)

PPTX
Cоветs по оптимизации игр, Александр Дежурко
PDF
Citrus Game Engine, Юрий Шумовский
PDF
Pooling is magic, Максим Клыга
PPT
Святослав Панкратов - Оптимизация арта для браузерных проектов на юнити
PDF
Иван Воронов - Пара вещей, которые упростили бы мою гейм-дизайнерскую жизнь, ...
PPT
Александр Яцукевич - Визуальные эффекты в гейм-дизайне
PPTX
Клевакичев и Кравченко - Игровой баланс, методы его поиска и последующее тира...
PPTX
Сергей Сверчков - Оцениваем решения NoSQL: какая база данных подходит для ваш...
PPTX
Роман Белешев - Online backup: технологии хранения больших объемов данных
PDF
Максим Мельников - Wargaming Web
PDF
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.
PPT
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
PDF
«​Масштабируемый DevOps​» Александр Колесень
PPTX
«От CMS к Highload: работа с backend» Алексей Сазанов, Александр Каскевич
Cоветs по оптимизации игр, Александр Дежурко
Citrus Game Engine, Юрий Шумовский
Pooling is magic, Максим Клыга
Святослав Панкратов - Оптимизация арта для браузерных проектов на юнити
Иван Воронов - Пара вещей, которые упростили бы мою гейм-дизайнерскую жизнь, ...
Александр Яцукевич - Визуальные эффекты в гейм-дизайне
Клевакичев и Кравченко - Игровой баланс, методы его поиска и последующее тира...
Сергей Сверчков - Оцениваем решения NoSQL: какая база данных подходит для ваш...
Роман Белешев - Online backup: технологии хранения больших объемов данных
Максим Мельников - Wargaming Web
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
«​Масштабируемый DevOps​» Александр Колесень
«От CMS к Highload: работа с backend» Алексей Сазанов, Александр Каскевич

Кирилл Алешин - Big Data и Lambda архитектура на практике

  • 1. Ламбда Архитектура на Практике Кирилл Алешин IDEXX Laboratories Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 2. План Доклада • Что такое Ламбда Архитектура? • Описание проекта • Характеристики масштабной аналитической системы данных • Суп технологий: Твиттер Сторм, Редис, Хадуп. • Выученые уроки • Ответы на вопросы Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 3. Ламбда Архитектура • Инвентор – Натан Марц (Твиттер) • Обещание – «неограниченная масштабируемость данных в реальном времени» Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 4. Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 5. Описание Проекта • Несколько слов об Айдексе • Глобальный лидер в ветеринарной сфере • Рыночная капитализация - $5.5 млрд. • Самые высокие расходы на R&D во всей вет. индустрии – как реальные, так и пропорцианальные обороту Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 6. Описание Проекта • Циклическое импортирование тысяч баз данных из ветеринарных клиник в реальном времени • Складирование этих данных в хорошо масштабируемой системе • Открытие центрального доступа к этим данным как внутри, так и вне компании • Научная аналитика • ...и все это должно быть не сильно дорого  Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 7. Какие данные? • Финансовые: • Ветеринарные платежи • Медицинские: • Результаты лабораторных тестов • Вакцинации • Истории болезни • Медицинский нарратив (неструктурированные данные) • Общие: • Клиентские визиты • Напоминания о визитах Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 8. Бизнес Цели – Данные Это Продукт • Сопоставление итогов маркетинговых компаний • Определение характеристик лучших клиентов • Упреждающая детекция эпидемий • Превентивная медицина • Перепродажа данных крупным фармацевтическим компаниям Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 9. Проблемы... • Импортируемые базы данных не позволяют определять новые или измененные значения • Каждая база данных должна обрабатываться каждый раз заново • ... четыре раза в день • 10 тысяч баз данных х 4 раза в день = 1 база в 2 секунды • Средняя база данных содержит в себе 4-5 млн рядов. Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 10. Задачи Наша система данных должна: • Быстро сохранять и обрабатывать огромное количество данных (масштабируемость). • Делать это относительно недорого (стоимость). • Быть настоящей системой данных – представлять данные на протяжении всего временного континуума (особая модель данных). Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 11. Фундаментальный принцип: Неизменяемость (Immutability) • Неизменяемые данные никогда не обновляются. • Как следствие, неизменяемые системы данных предствляют собой полнyю репрезентацию фактов на временном континууме. • Как следствие, неизменяемые системы данных гораздо более устойчивы к человеческим ошибкам, так как ошибочные данные могут быть просто удалены без всяких усилий на восстановление правдивых значений. Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 13. Пример: Изменяемые Данные id name gender color species 1 Sam male brown canine 2 Rover neutered male yellow canine 3 Fluffy female white feline Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 14. Пример: Неизменяемые Данные Name Data id 1 2 3 name Sam Rover Fluffy Timestamp 4/3/2011 10:25:44 7/4/2010 16:35:20 10/12/2012 19:45:45 id 1 2 3 Sex Data id name timestamp 1 Male 4/3/2011 10:25:44 2 Male 7/4/2010 16:35:20 3 Female 10/12/2012 19:45:45 Sex Data id name timestamp 1 Male 4/3/2011 10:25:44 2 Male 7/4/2010 16:35:20 3 Female 10/12/2012 19:45:45 2 Neutered Male 04/02/2013 22:34:56 Copyright © 2013 Kyrill Alyoshin. All rights reserved. Species Data Species timestamp canine 4/3/2011 10:25:44 canine 7/4/2010 16:35:20 feline 10/12/2012 19:45:45
  • 15. Еще раз о плюсах такой модели данных • Позволяет осуществлять запрос в любой временной момент • Толерантна к человеческой ошибке • Фундаментальна столбчата – минимизирует усилия на чтение Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 16. Основные Компоненты • Клиент для выкачивания данных из ветеринарных практик • Твиттер Сторм – как высокоскорстная ETL система • Редис – как высокоскоростная система фильтрации • Хадуп – как аналитическая система • Системы материализованных представлений – serving layer. Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 17. Клиент для выкачки данных • Софт, который устанавливается в клинике и: • Переодически выкачивает все данные • Сохраняет их в «облаке» • Посылает сигнал готовности Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 18. Сторм – потоковая система обработки данных • Любые потоковые вычисления • Источником данных может быть что угодно: обычно какая-то очередь. • Ключевые абстракции (spouts and bolts) конфигурируются в топологии и распределяются по серверам (supervisors) и Ява процессам (workers). • Легкая горизонтальная масштабируемость. • Сторм предоставляет гарантированную доставку данных. Akka, Erlang – отдыхают.  Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 19. Редис: фильтр для неизмененных рядов • Для каждого ряда, который будет сохраняться в Хадупе, мы сцепляем все значения в единую строку и вычисляем ее 128 битный хэш. • Этот хэш сохраняется в Редисе вместе с первичным ключом каждого для каждого ряда. • Точно также мы вычисляем этот хэш для каждого ряда из пришедшей базы данных и сравниваем его со значением в Редисе. • Если оно одно и то же, то ряд отфильтровывается. Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 20. Хадуп – Ключевые Идеи • HDFS – данные сохраняются на распределенной файловой системе. • Код выполняется прямо на узлах данных (локальность). • Распределение данных и кода автоматическое и незаметное. • Падение узлов незаметно для приложения. • Масштабируемость достигается простым добавлением узлов без остановки кластера. Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 21. Уроки Хадупа: Часть 2 • Общая оркестровка рабочего процесса пока слаба – используем Spring Batch. • Если нужны быстрые результаты,то надо много узлов. • Никогда не используйте MapReduce напрямую – пользуйтесь высокоуровневыми библиотеками – Cascading, JCascalog – особенно, когда данные структурированы. • dfs-datastores – неплохая библиотека для прямого складирования и чтения структурированных данных прямо на HDFS. • Легко интегрируется с S3, что позволяет использование Amazon EMR, для особо тяжелых процессов. Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 22. Как читать данные? • Ламбда архитектура говорит, что они должны поставляться из некоторого дополнительного уровня материализованных представлений – the serving layer. • Фактически это может быть что угодно. Основное требование – скорость обновления и консистенция чтения на клиенте в момент обновления. • Можно делать и в реляционной базе данных через материализованные представления (если обем данных не сильно большой) • Есть и специализированные базы данных: ElephantDB, Voldemort Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 23. Общие Заметки • Твиттер Сторм оказался чрезвычайно стабильной системой – работает фактически на автопилоте. • Редис также невероятно стабильная высокоскоростная система. Мы буквально не можем его перегрузить. • Хадуп – требует заботы и внимания, но тем не менее легко масштабируется и позволяет обрабатывать огромное колличество данных. Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 24. Реализованная Ламбда Архитектура • Горизонтально масштабируемая система на всех уровнях. • Неизменная модель данных, позволяющая любой уровень аналитики данных. • Поскольку данные никогда не удаляются (кроме человеческих ошибок) и сохраняются «сырыми», то ошибки в анализе легко исправляются – новый код и получите новое представление данных (view) на уровне, на котором данные читаются. Copyright © 2013 Kyrill Alyoshin. All rights reserved.
  • 25. Вопросы Пожалуйста! Кирилл Алешин kyrill@alyoshin-consulting.com Twitter: kyrill007 Copyright © 2013 Kyrill Alyoshin. All rights reserved.