Сергей Ахметов
6 853
Блоги

Big Data: с чего начать

Каждый обмен с социальными медиа, каждый цифровой процесс, каждое подключённое устройство генерирует большие данные, которые будут использоваться различными компаниями.

Поделиться

В избранное

В избранном

Сегодня компании используют Big Data для углубленного взаимодействия с клиентами, оптимизации операций, предотвращения угроз и мошенничества. За последние два года такие компании, как IBM, Google, Amazon, Uber, создали сотни рабочих мест для программистов и Data science.

Область больших данных слишком размылась на просторах интернета, и это может быть очень сложной задачей для тех, кто начинает изучать большие данные и связанные с ними технологии. Технологии данных многочисленны это может быть огромным препятствием для начинающих. Давайте попробуем разложить все по полочкам.

1. Как начать

В сфере Big Data существует много направлений. Но в широком смысле можно разделить на две категории:

  1. Big Data engineering.
  2. Big Data Analytics (Scientist).

Эти поля взаимозависимы, но отличаются друг от друга.

Big Data engineering занимается разработкой каркаса, сбора и хранения данных, а также делают соответствующие данные доступными для различных потребительских и внутренних приложений.

У вас хорошие навыки программирования и вы понимаете, как компьютеры взаимодействуют через интернет, но у вас нет интереса к математике и статистике. В этом случае вам больше подойдёт Big data engineering.

В то время как Big Data Analytics — среда использования больших объемов данных из готовых систем, разработанных Big data engineering. Анализ больших данных включает в себя анализ тенденций, закономерностей и разработку различных систем классификации и прогнозирования. После магических действий и танцев с бубном Data Analytics (Scientist) интерпретирует результаты.

Если вы хорошо разбираетесь в программировании, за чашкой кофе решаете сложные задачи по высшей математике, понимаете, что такое теория вероятностей, математический анализ, комбинаторики, тогда вам подойдёт Big Data Analytics.

Таким образом, Big data Analytics включает в себя расширенные вычисления по данным. В то время как Big data engineering включает проектирование и развертывание систем, над которыми должны выполняться вычисления.

Как стать специалистом по большим данным

С направлением определились, теперь давайте разберём, что должен знать Data science, чтобы его рассматривали в качестве будущего кандидата.

Терминология данных

Проект с большими данными имеет два основных понятия — требования к данным и требования их обработке.

Требования к данным

Структурированные данные: хранятся в таблицах или в файлах. Если данные хранятся в предопределённой модели данных (то есть в схемах), это называется структурированными данными.

Неструктурированные: если данные хранятся в файлах и не имеют предопределённой модели, это называется неструктурированными данными.

Источники данных: внутренние (CRM, ERP или любые источники, которые находятся внутри системы) и внешние (соцсети, интернет).

Размер: с размером мы оцениваем количество данных. Типы: S, M, L, XL, XXL, передача потоков.

Пропускная способность: определяет, с какой скоростью данные могут быть приняты в систему. Типы: H, M, L.

Пропускная способность источника: определяет, с какой скоростью данные могут быть обновлены и преобразованы в систему. Типы: H, M, L.

Требования к обработке данных

Время запроса: время, за которое система выполняет запрос. Типы: Long, Medium, Short.

Время обработки: время обработки данных. Типы: длинный, средний, короткий.

Точность: точность обработки данных. Типы: точные или приблизительные, Exact или Approximate.

Учимся проектировать решения

Пример.

Задача — разработать Data lake для эффективного анализа продаж банка.

Данные берём из разных источников.

Внутренние:

  • ERP (персональная информация о клиенте, данные о кредитной истории, данные о потенциальных клиентах);
  • CRM (данные от колл-центра, данные о продажах,) данные о продуктах, транзакции проведенные через банковскую систему, CRM системы.

Внешние:

  • социальные сети (BDSMM);
  • интернет;
  • веб-аналитика.

Важно понимать, что первым делом нужно рассчитывать, что система должна быть интегрирована со всеми вышеперечисленными источниками и бесперебойно принимать данные.

Определяем конечные цели:

  1. Создаем Data lake для объединения данных из нескольких источников.
  2. Автоматическое обновление данных через определённые промежутки времени.
  3. Доступность данных для анализа (круглосуточно, возможно ежедневно).
  4. Архитектура для лёгкого доступа к панели инструментов аналитики.

Теперь, когда мы знаем, каковы наши конечные цели, попробуем сформулировать наши требования более формальными терминами.

Требования к данным

Структура: большая часть данных структурирована и имеет определённую модель. Но источники данных, такие как веб-журналы, взаимодействия с клиентами или данные колл-центра, изображения из каталога продаж, данные рекламы продукта —доступность и требования к изображениям и мультимедийной рекламной информации могут зависеть от компании.

Тип данных: структурированные и неструктурированные данные.

Размер: L или XL.

Пропускная способность: высокая.

Качество: средний.

Полнота данных: неполная.

Требования к обработке

Время запроса: от среднего до длинного.

Время обработки: от среднего до короткого.

Точность: точное.

Поскольку несколько источников данных интегрируются, важно отметить, что разные данные поступают в систему с разной скоростью. Например, данные из веб-аналитики будут доступны в непрерывном потоке с высокой степенью детализации.

Основываясь на приведённом выше анализе наших требований к системе, мы можем порекомендовать следующую настройку данных.

Путь обучения работе с большими данными

Теперь рассмотрим, по какой цепочке вам нужно пройти.

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

Пошаговая инстркуция по изучению Big Data. PDF-версию можно скачать здесь

Одна из основных концепций, которые должен знать любой чувак, который видит себя в этой области, развертывание сервера на Linux, написание скриптов в командной строке Bash Scripting. Это необходимое условие для работы с Big Data.

В основном большая часть технологий данных написана на Java или Scala. Не переживайте, если вы не хотите кодить на этих языках, вы можете выбрать Python или R, потому что большая часть технологий обработки больших данных теперь поддерживает Python и R.

Вы можете начать свой путь с изучения любого из вышеуказанных языков. Я рекомендую выбрать Python или Java.

Как мы видели на примере выше, данные могут распределяться на большое количество серверов. Поэтому для быстрого нахождения пакетов и выгрузки массивов потребуется написанию SQL-запросов. Без базового знания SQL вряд ли получится устроиться даже на позицию junior.

Также не помешает поработать с облаком. Попробуйте использовать небольшие наборы данных на AWS, Softlayer или любом другом облачном провайдере. Большинство из них имеют свободный уровень, чтобы учащиеся могли практиковаться. Вы можете пропустить этот шаг сейчас, если хотите, но не забрасывайте в тёмный угол работу с облаком, прежде чем идти на какое-либо собеседование.

Затем вам нужно узнать о распределённой файловой системе. Наиболее популярной DFS является файловая система Hadoop. На этом этапе вы также можете изучить некоторые базы данных NoSQL.

Путь до сих пор является обязательным основанием, которое должен знать каждый специалист.

Теперь решайте, хотите ли вы работать с потоками данных. Это выбор между двумя из четырех V, которые используются для определения больших данных — Volume, Velocity, Variety и Veracity.

Предположим, вы решили работать с потоками данных для разработки систем анализа в реальном времени. Тогда вы должны пойти по ветке Apache Kafka с помощью Mapreduce. Обратите внимание, что в пути Mapreduce вам не нужно изучать Pig и Hive. Достаточно изучить только один из них.

Это не единственный способ получить знания. Вы можете создать свой собственный путь по ходу дела самостоятельно.

Ресурсы для обучения

Bash Scripting

Пошаговое Руководство Bash Scripting (rus).

Python

  1. Python для каждой специализации Coursera (eng).
  2. Путь обучения для науки о данных в Python для Coursera (eng).

Java

  1. Введение в программирование с помощью Java 1: Базовый уровень Java Udemy (eng).
  2. Продвинутое программирование на Java от Udemy (eng).
  3. Введение в программирование на Java 2 от Udemy (eng).
  4. Объектно-ориентированное программирование на Java: структуры данных и последующая специализация Coursera (eng).

Cloud

  1. Основы технологии больших данных от Amazon Web Services (eng).
  2. Большие данные по AWS от Amazon Web Services (eng).

HDFS

  1. Большие данные и основные решения Hadoop от Udemy (eng).
  2. Основы больших данных от Big Data University (eng).
  3. Набор для начинающих Hadoop от Udemy (eng).
  4. Документация Apache Hadoop (eng).

Apache Zookeeper

Документация Apache Zookeeper (eng).

Apache Kafka

  1. Полный курс Apache Kafka для начинающих Udemy (eng).
  2. Изучите основы Apache Kafka и расширенную тему от Udemy (eng).
  3. Apache Kafka Documentatio (eng).

SQL

  1. Управление большими данными с помощью MySQL Coursera (eng).
  2. SQLCourse от SQLcourse.com (eng).
  3. Руководство для начинающих по PostgreSQL от Udemy (eng).
  4. Высокопроизводительная MySQL (eng).

Hive

  1. Доступ к данным Hadoop с использованием Hive от Big Data University (eng).
  2. Изучение экосистемного улочка Apache Hadoop Udemy (eng).
  3. Документация Apache Hive (eng).
  4. Программирование (eng).

PIG

  1. Apache Pig 101 от Big Data University (eng).
  2. Программирование Hadoop с Apache Pig от Udemy (eng).
  3. Документация Apache Pig (eng).

Apache Storm

  1. Аналитика в режиме реального времени с помощью Apache Storm от Udacity (eng).
  2. Документация Stache Storm (eng).

Apache Kinesis

  1. Документация Apache Kinesis (eng).
  2. Ресурсы разработчика Amazon Kinesis Streams от Amazon Web Services (eng).

Apache Spark

  1. Наука и технология данных с Apache от Еdx (eng).
  2. Документация Apache Spark (eng).

Apache Spark Streaming

Документация Apache Spark Streaming (eng).

Лекции «Школы анализа данных» от «Яндекса»

ШАД — курсы по анализу данных от сотрудников «Яндекса». Поступить в школу не так просто, потребуются знания в высшей математике. К счастью, есть записи прошлых занятий.

Big Data University

Big Data University — бесплатный онлайн-курс, созданный совместно с IBM для самых маленьких. Можно начать с изучения языка Python до обработки данных. В том числе: основы больших данных, основы Hadoop, программирование Scala и много полезной информации.

Часть статьи была переведена с analyticsvidhya.com.

Автор материала — Сергей Ахметов,консультант по Big Data.

#большиеданные

{ "author_name": "Сергей Ахметов", "author_type": "self", "tags": ["\u0431\u043e\u043b\u044c\u0448\u0438\u0435\u0434\u0430\u043d\u043d\u044b\u0435"], "comments": 25, "likes": 29, "favorites": 76, "is_advertisement": false, "section_name": "blog", "id": "37763", "is_wide": "" }
{ "is_needs_advanced_access": false }

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } } ]