Hi-Tech

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

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

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

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 engineering включает проектирование и развертывание систем, над которыми должны выполняться вычисления. Таким образом, Big data Analytics включает в себя расширенные вычисления по данным.

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

С направлением определились, теперь давайте разберём, что должен знать 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-версию можно скачать здесь

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

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

Я рекомендую выбрать 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

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

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

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

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

Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть