Рубрика «big data» - 136

Всем привет!

Давно хотел написать статью. Я сам мало люблю длинные тексты с небольшим количеством полезной информации, поэтому постараюсь сделать этот максимально насыщенным.

Обобщенная тема – эффективная упаковка данных, сериализация и десериализация объектов.
Основная цель – поделиться своими размышлениями по этому поводу и обсудить структуру данных DSV.

Проблема:
Известные мне на текущий момент (2013-09-19 18:09:56) механизмы бинарной сериализации обладают недостаточной гибкостью или избыточность занимаемого пространства. Например:
QString s1(“123”); -> 4 байта размера данных = 0x00000003, 3 байта полезных данных = “123”, эффективность = 3/7;
U32 val1(123); -> 4 байта данных (0x0000007B), 1 байт из которых является значимым = 123 (0x7B), эффективность = 1/4.
Читать полностью »

Меня спросили: «Сколько у вас опыта с большими данными и Hadoop?» Я ответил, что часто использую Hadoop, но редко — с объёмами данных больше нескольких ТБ. Я новичок в больших данных — понимаю идеи, писал код, но не в серьёзных масштабах.

Следующий вопрос был: «Можете ли вы сделать простую группировку и сумму в Hadoop?» Разумеется, могу, и я попросил пример формата данных.

Они вручили мне флэш-диск со всеми 600 МБ данных (да, это были именно все данные, а не выборка). Не понимаю, почему, но им не понравилось моё решение, в котором был pandas.read_csv и не было Hadoop.
Читать полностью »

Аналитика в рознице: сегодня вы не купили презервативы, а магазин уже знает, когда вам пригодится скидка на детское питание
Вот как-то так это хитро работает

Про вашего будущего ребёнка – это, конечно, утрировано, но все может быть. На практике мы помогаем рознице бороться за каждый рубль с помощью математического аппарата. Вот, например, у вас в бумажнике есть карта лояльности, либо вы расплачиваетесь кредиткой. Это значит, что в целом магазин знает, сколько и каких продуктов вам надо. Дальше можно построить оптимальную модель вашего путешествия по магазину и понять, в какой ситуации вы купите больше. Что где должно стоять, какое молоко вы предпочитаете (вдруг вы готовы брать дорогое и натуральное без колебаний?) и так далее. Смоделировать вас по совокупности данных легко.

Такую же аналитику можно применять ко всем аспектам работы розницы.

Из смешного — один раз система просчитала, что будет выгодно уничтожить примерно полтонны бумаги. Сначала думали, что баг — но начали копать и выяснили, что поставщик даёт скидку за определённый порог закупки. А сеть может не успевать продавать нужное количество бумаги. С учётом стоимости склада, поставки и уровня скидки начиная с порога — проще взять и уничтожить кучу товара, чтобы получать его по цене ниже. Скидка минимум вдвое компенсирует убытки от его потери. Читать полностью »

— Мы получаем больше миллиона твитов в день, и наш сервер просто не успевает их обрабатывать. Поэтому мы хотим установить на кластер Hadoop и распределить обработку.

Речь шла о вычислительно тяжёлом сентиментном анализе, поэтому я мог поверить, что у одного сервера действительно не хватает CPU, чтобы справиться с большим потоком твитов.

— А что вы собираетесь делать с уже обработанными данными?
— Скорее всего, мы будем складывать их в MySQL, как делали это раньше, или даже удалять.
— Тогда вам определённо не нужен Hadoop.

Мой бывший коллега был далеко не первым, кто говорил про распределённые вычисления на Hadoop. И каждый раз я видел полное непонимание того, зачем была придумана и разработана эта платформа.

Читать полностью »

20 сентября в 19.00 в кафе «Циферблат» на Пушкинской состоится митап на тему «Открытые данные и геотехнологии».

Максим Дубинин, один из создателей независимого информационного ресурса о геоинформационных системах GIS-Lab, поделиться своим опытом использования открытых данных в области геотехнологий и расскажет про реализованные общественные проекты ГИС-лаборатории.

На встрече вы узнаете:

Что такое геоинформационные технологии;
Где взять открытые данные и инструменты для проектов, использующих карты;
Что интересного происходит в мире геоинформатики.

Читать полностью »

image
Уже сегодня крупные компании начали движения в области сбора и анализа больших массивов данных, а некоторые начали их применять на практике. Рамин Алиев, CEO RBK Offers, приводит кейс работы с Big Data на примере проекта RBK Offers.
Читать полностью »


Читать полностью »

N-Tier vs eXtreme Application Platform
Проблемы Трёхуровневой Архитектуры

Большинство современных софт приложений для бизнесов состоят из 3-ех уровней. Первый слой содержит данные, которые в своем большинстве хранятся в реляционной базе данных (relational database). Здесь данные сохраняются, модернизируются, извлекаются и отправляются в следующий, логический слой. Второй слой это бизнес-логика (business logic), который обрабатывает команды и вычисления, выполняет логические решения и передает и обрабатывает данные между окружающими слоями. В мире JEE этот уровень обычно представлен при помощи JEE application servers, такими как WebSphere, WebLogic и JBoss. В большинстве случаев существует отдельный веб уровень, или слой клиента, который ответственен за представление задач и результатов, понятных пользователю. Как правило, перед веб уровнем стоит балансировщик нагрузки (load balancer).
Множество приложений также используют уровень сообщений (messaging), обеспечивая надежное асинхронное взаимодействие с компонентами приложений и возможность внедрения обработки информации при помощи событийно-ориентированных (event-driven) шаблонов. Сервисы бизнес-логики принимают сообщения из этого уровня в порядке их поступления в систему и обрабатывают их. Для достижения высокой доступности (high availability) и увеличения способности обработки большего количества данных все уровни используют кластерную архитектуру (cluster).

image
Анализируя эту архитектуру с легкостью можно выявить несколько очевидных проблем:
1. Трудности в управлении: все уровни имеют различные модели кластеризации. Для управления такой системой требуются знания и опыт работы со всеми из них. Это влечет за собой:
a. Высокую стоимость: компании вынуждены приобретать отдельные лицензии для всех составных частей и нанимать экспертов для установки и поддержки каждого из уровней. Кроме того, кластеризация некоторых составляющих не всегда проста и, зачастую, полна непредвиденных трудностей даже для самых опытных специалистов.
b. Трудности в контролировании: отслеживание и мониторинг такого большого количества компонентов в настоящей работающей системе в очередной раз требует дополнительных ресурсов. В большинстве случаев, необходимо приобретать дополнительные софт приложения для таких целей.
c. Трудности в идентификации и решении проблем: трудно определить что и на каком уровне случилось если система вышла из строя
d. Трудности во внедрении программного обеспечения: межмодульная интеграция и конфигурация также может послужить дополнительным источником расходов. Заставить все модули «общаться» правильно один с другим, как правило, займет некоторое время и дополнительные ресурсы.
2. Такая архитектура привязана к статическим ресурсам, таким как жесткие диски и имена серверов. Очень трудно будет установить такое приложение на виртуализированных платформах (virtual platforms/environments), так как те (платформы) очень динамичны по своей натуре.
3. Время ожидания (latency) и производительность (performance): в таких архитектурах бизнес-транзакция (transaction) обычно проходит через большинство (если не через все) уровней системы перед ее завершением. Это включает в себя множество сетевых прыжков (network hops) между уровнями и внутри них.
В добавок, гарантирование достоверности бизнес-транзакций подразумевает запись на диск в тот или иной этап программы. Сетевой и дисковой I/O значительно ограничивает масштабируемость (scalability) и увеличивает latency бизнес-транзакций. Как результат, Трехуровневая Архитектура не может быть предсказуемо масштабирована. Если увеличить нагрузку на систему, что в свою очередь потребует больше ресурсов для обработки информации, то добавка дополнительного аппаратного обеспечения вряд ли решит проблему. Встроенная опора на сетевое и дисковое I/O по сути ограничивает возможности системы. Более того, зачастую добавка дополнительных ресурсов в один из уровней (например, слой данных) не только не поможет, но может даже повысить время ожидания и понизить производительность системы в целом из-за накладных расходов связанных с синхронизацией узлов кластера.

Почему cache и datagrid решения не разрешают проблему
Чтобы решить проблемы времени ожидания и масштабируемости обычно ставят in-memory datagrid перед реляционной базой данных. Несомненно, это решение в правильном направлении, которое частично разгружает систему и, в основном, подходит для считывания данных (data cashing). Стоит обратить внимание, что большинство datagrids ограничены своей возможностью извлекать данные только при помощи уникального идентификатора. Хотя такое решение может быть применено в отдельных случаях, все же оно не идеально по следующим причинам:
1. Оно добавляет еще один уровень, для которого требуются дополнительные лицензии. Как и все другие, новый уровень нужно интегрировать, конфигурировать, контролировать и удалять неисправности, если возникнут. Таким образом, это увеличивает общую сложность управления данной архитектурой и расходы на ее установку, поддержку и обслуживание.
2. Как было упомянуто выше, решения данного образца помогут для систем, где в большинстве операций извлекаются данные. Но это абсолютно бесполезно для систем, где данные нужно сохранять или модернизировать.

Пример из реального мира
После столь длинного предисловия, я предлагаю продемонстрировать всю вышесказанную теорию на примере, иначе все это не имеет никакого смысла. Рассмотрим реальную многоуровневую архитектуру системы компании Kohl’s из сферы интернет продаж.
image
Сразу бросается в глаза, что везде нас поджидают те самые «узкие места» (bottlenecks), через которые любыми способами нужно пропустить всю приходящую информацию. Явно, что добавление дополнительных ресурсов в каждый из уровней никак не поможет избавиться от существующих критических элементов (bottlenecks) всей системы (между уровнями).
Сервера WebLogic, Apache и база данных Oracle прекрасно справлялись с заданием, используя 50 физических серверов. 30,000 одновременно подсоединенных пользователей исправно получали ответы на все требования и запросы. Оно бы все продолжало работать и впредь, если бы, например, компания должна была бы обслуживать определенное фиксированное количество транзакций ежесекундно, и не происходило бы никаких резких изменений в требованиях к системе.
Однако, та самая «черная пятница» (Black Friday, когда миллионы американцев рвутся в магазины, а ритейлеры делают 20, а иногда и 30 процентов от годовой выручки за один день) 2009-го года потребовала следующие условия: система должна справляться с нагрузкой в 500,000 пользователей одновременно. К такому удару вышеупомянутая архитектура была не готова, а впоследствии не было смысла чинить тонущий корабль без его полной реконструкции. Результат: мульти-миллионная потеря доходов.

Альтернатива
На протяжении последних десяти лет на рынке появились приложения, которые с легкостью справляются с данными задачами и находятся в эксплуатации в критически важных системах (mission critical systems) в сферах финансовых услуг, интернет продаж (как у Kohl’s), онлайн игр и других. Одним из таких является XAP (eXtreme Application Platform) так же известно как In-Memory Computing Platform.
image
XAP это платформа для разработки программного обеспечения, которая:
1. Позволяет запускать всё приложение в целом на одной платформе, в то время как все уровни из многоуровневой архитектуры работают в одном контейнере (container).
2. Позволяет быстрое обращение к данным, так как всё хранится в памяти. Хранение данных близко к бизнес-логике ликвидирует задержки в транзакциях связанные с обращениями к дискам или сетевыми проблемами. Следовательно, расположение данных, бизнес-логики и messaging в одном контейнере существенно увеличивает производительность (performance). Увеличение производительности измеряется в десятки, сотни, а иногда и в тысячи раз.
3. Позволяет секционирование данных (data partitioning) для автономных вычеслительных единиц (processing units), предоставляет механизмы, чтобы эластично подключать компоненты приложения для обработки любых нагрузок и динамично выделять ресурсы для оптимального использования. Как результат, мы получаем линейную масштабируемость, оптимизированную балансировку нагрузки и эффективное использование ресурсов.
4. Гарантирует нулевое время простоя (zero downtime) при помощи горячего резервирования (hot backup) и автоматического восстановления после сбоя. Вместе это также известно, как высокая доступность (high availability). Дополнительно XAP предоставляет многоуровневые мониторинговые возможности для нахождения и идентификации операционных и функциональных проблем.
Общая диаграмма архитектуры приложения разработанного на XAP:
image
(видео: www.gigaspaces.com/xap-in-memory-computing-event-processing/Meet-XAP)
Читать полностью »

Эдварда Сноудена не существует и о нем говорят только в России. «Сноуден — предатель, враг и изменник», — считают жители США. «Сноуден — международный герой и пример для подражания», — говорят… ну где-то наверняка говорят, думали мы. Когда мы приступали к работе над новой задачей, нам казалось, что тема Эдварда Сноудена заинтриговала весь мир. Поэтому задача, поставленная нашими партнерами из фонда «Vox Populi», специализирующегося на исследованиях общественного мнения в социальных медиа, казалась нам довольно простой: оценить интерес населения к ситуации по Сноудену в мире, и в России и США в частности. Но мониторинг соцмедиа для социологических исследований — сущность новая, а потому вдвойне интересная: во-первых, никогда не знаешь, какой именно результат получишь; во-вторых, восхищаешься возможностями социовселенной, созданной человечеством. Результат и в этот раз получился несколько бОльшим и довольно неожиданным: мы проанализировали многоязычный поток сообщений из 230 (!) стран мира. О том, как мы разделяли по языкам и геолоцировали это царство Вавилонское — под катом.
Международная популярность Сноудена — миф или реальность? Результаты глобального мониторинга социальных медиа
Читать полностью »

В качестве вступительного слова

На Хабре и других источниках уже было описание HP Vertica, но, в основном, вся информация сводилась к теории. До недавнего времени в реальной промышленной эксплуатации Vertica использовалась (так как мы называем ее Вертика, предлагаю назначить женский род) в Штатах и немного в Европе, на Хабре же о ней писали ребята с LifeStreet Media. Уже прошло полтора года работы с Vertica, наше хранилище данных содержит десятки терабайт данных. В минуту сервер данных обрабатывает тысячи запросов, многие из которых охватывают десятки миллиардов записей. Загрузка данных идет не переставая в реалтайме объемами порядка 150 гб в сутки … В общем я подумал, что стоит восполнить пробел и поделиться ощущениями от езды на реально современных новых технологиях под BigData.

Кому это будет полезно

Думаю, это будет полезно для разработчиков, архитекторов и интеграторов, которые сталкиваются с задачами хранения и аналитической обработки больших данных по объему, содержанию и сложности анализа. Тем более, у Vertica сейчас наконец то есть вменяемая бесплатная полноценная версия Community Edition, которая позволяет развернуть кластер из 3 серверов и загрузить в хранилище данных до 1 тб сырых данных. С учетом производительности и легкости развертывания решений на Vertica, считаю это предложение достойным для того, чтобы его рассмотреть при выборе хранилища данных для компаний, у которых объем данных впишется в 1 тб.

В один абзац о том, как мы выбирали

Кратко без повода к холивару:
При выборе сервера хранилищ данных нас интересовали принципы ценообразования, высокая производительность и масштабируемость работы с большими объемами данных, возможность загрузки данных в реалтайм с множества разных источников данных, легкость стартапа проекта своими силами и минимальная стоимость сопровождения: в итоге по всем этим показателям лучше всего для нас выступила Vertica, победив IBM Netezza и EMC GreenPlum, которые не смогли полностью удовлетворить всем нашим требованиям, что вылилось бы в дополнительные издержки на разработку и сопровождение нашего проекта.

Как выглядит Verica с точки зрения архитектора

Архитектор — это самый важный для хранилища данных человек в Vertica. Именно в первую очередь от него зависит успешность и производительность функционирования хранилища данных. У архитектора две сложных задачи — грамотно подобрать техническую начинку кластера Vertica и правильно спроектировать физическую модель базы данных.

На что влияет техническая архитектура

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js