Никакой суеты, прямой разговор.

Одной из самых популярных фраз, подчеркивающих важность данных, является:

данные - новое масло.

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

Насколько велики большие данные?

Очень большой.

А теперь пора заканчивать… Шучу, шучу.

Расчет реального объема данных является сложной задачей, учитывая размер Интернета. Однако, если мы говорим об объеме данных, которые квалифицируются как большие данные, мы можем классифицировать их как таковые, если они не помещаются в Excel или Sheets.

Резюме статьи

  1. Малые данные против больших данных
  2. Потребность в больших данных
  3. Хранилище данных
  4. Пакетная обработка против потоковой обработки
  5. Масштабируемость данных
  6. Экосистема Hadoop
  7. Извлечение нагрузки преобразования (ETL)
  8. Что такое Искра?

Малые данные против больших данных

Давайте сравним небольшие данные, иногда называемые традиционными данными, с большими данными.

Небольшие данные:

  1. Малые данные — это набор данных фиксированного размера, который часто имеет табличную структуру.
  2. Небольшие данные могут быть получены до МБ, ГБ или от максимального до максимального ТБ.
  3. Небольшие данные неуклонно растут в размерах. И постепенный процесс иногда может быть незначительным.
  4. В результате централизации все пользователи должны иметь доступ к одному серверу, на котором хранятся данные на одном узле.
  5. Небольшие данные можно быстро сохранять в файлах Excel, на серверах SQL и серверах баз данных.

Большие данные:

  1. Большие массивы организованных и преимущественно неструктурированных данных могут использоваться для представления больших данных. Для больших данных можно использовать любой тип формата, включая видео, WARC, XML и т. д.
  2. Большие данные могут храниться в петабайтах, эксабайтах или петабайтах.
  3. Большие данные растут экспоненциально.
  4. Глобальные данные могут присутствовать и быть доступными. Таким образом, он децентрализован.
  5. Большие данные требуют чрезвычайно сложного программного обеспечения и технологий, таких как Hadoop, Spark, Big Query, Hive и т. д., для хранения данных.

Необходимость больших данных.

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

  1. Объем. Пользователи заметили, что объем их данных быстро растет и хранятся огромные объемы данных.
  2. Скорость. Данные постоянно увеличивались с молниеносной скоростью.
  3. Разнообразие. Форматы данных росли во всех типах форм, включая PDF, mp4 и изображения.
  4. Достоверность.Имевшиеся данные были довольно неорганизованными и требовали тщательной очистки.

На каждом этапе приходилось сталкиваться с проблемами, чтобы преодолеть все это. Тремя основными трудностями были Хранение, Обработка и Масштабируемость.

Хранилище данных:

Хранилища данных предназначены для хранения больших объемов данных, чтобы упростить их хранение. Большинство хранилищ данных бывают двух типов:

  1. Монолитные.Монолитные хранилища данных подразумевают, что мы установили очень большой сервер и добавили огромное количество ресурсов для хранения данных на одном сервере.
  2. Распределенное. Распределенное хранилище данных представляет собой набор различных серверов, связанных друг с другом через сеть. Идея состоит в том, чтобы эти отдельные серверы выглядели как единое глобальное хранилище данных.

Обработка данных:

Обработка данных определяет два метода обработки данных, хранящихся в хранилищах.

  1. Обработка транзакций:

Сохраненные данные используются для выполнения операций CURD с хранимыми данными внутри хранилищ. Эта обработка включает в себя все процессы, такие как извлечение данных из хранилища, обновление их до другого значения или удаление данных из хранилища. Это верно для подавляющего большинства онлайн-приложений и сайтов электронной коммерции.

2. Аналитическая обработка:

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

Большинство процессов машинного обучения и глубокого обучения полагаются на аналитическую обработку для получения полезных данных для моделей обучения.

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

  1. Пакетная обработка
  2. Потоковая обработка

Пакетная обработка

Пакетная обработка — это пакетная обработка больших объемов данных в течение заданного периода времени. Он обрабатывает большое количество данных одновременно. Когда размер данных известен и конечен, выполняется пакетная обработка.

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

Потоковая обработка

Потоковая обработка — это обработка непрерывного потока данных по мере их создания. Он анализирует потоковые данные в реальном времени. Когда размер данных неизвестен, неограничен и непрерывен, используется потоковая обработка.

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

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

Масштабируемость данных

По мере увеличения объема данных инженеры и ученые начали исследовать проблему, и впервые в истории человечества Google взяла на себя инициативу и выпустила две исследовательские работы, посвященные технике GFS (файловой системе Google). Позже в 2013 году он был переименован в HDFS (распределенная файловая система Hadoop) под Apache.

Компоненты Hadoop

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

  1. Хранилище: HDFS

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

2. Compute Engine: уменьшение карты

Вычислительный движок MapReduce отвечает за выполнение процесса. Процесс разделен между различными серверами или локациями с помощью карты. И каждый кусок материала хранится в рабочем узле. Сокращение используется для объединения процессов после завершения действия карты.

3. Менеджер ресурсов: YARN

YARN отвечает за определение того, как работник получит инструкции для выполнения процесса.

Извлечение нагрузки преобразования (ETL)

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

В то время как ETL имело решающее значение, с экспоненциальным ростом источников и типов данных создание и поддержка надежных конвейеров данных стало одним из наиболее сложных аспектов обработки данных.

Экосистема Hadoop

После нескольких успешных лет инженеры столкнулись с трудностями при написании своего конвейера ETL в Hadoop, поскольку большинство компонентов были созданы на JAVA. Такие компании, как Facebook, создали собственную систему, похожую на Hadoop, под названием Hive.

Но что было главной причиной?

Видите ли, Facebook всегда стремился к системе, в которой им не нужно было бы нанимать множество инженеров с разным опытом, таких как JAVA, просто для завершения процесса. Опять же, они хотели что-то, что служило бы системой-посредником, которая позволяла бы им использовать SQL-запросы для доступа к хранилищу больших данных.

Однако из-за того, что было доступно всего несколько компонентов, технические специалисты всегда хотели иметь решение, которое могло бы удовлетворить все их потребности, а также, что наиболее важно, различные языки программирования. Из-за этих недостатков родился Spark, один из самых мощных инструментов для работы с большими данными.

Какой взлом Spark?

Spark — это просто распределенная вычислительная машина общего назначения, работающая в памяти.

Одна из основных причин, по которой Spark считается лучшим в области больших данных, заключается в том, что, хотя он был создан на Scala, наш процесс ETL можно написать на Python, JAVA, SCALA, SQL и R.

Spark заменяет вычислительный движок Hadoop для уменьшения карты. В результате Spark не зависит от Hadoop.

Однако мы продолжаем использовать HDFS в качестве единиц хранения и YARN в качестве менеджера ресурсов. Что, если мы решим не использовать их?
Да, теперь у нас есть множество вариантов хранения больших данных для замены HDFS, таких как AWS S3, и мы также можем заменить YARN на Kubernetes или Apache Mesos.

Заворачивать

В настоящее время независимо от того, используем ли мы мобильное устройство для открытия приложения, выполнения поиска в Google или просто перемещаемся, данные создаются непрерывно.
Миллионы точек данных генерируются каждый раз, когда кто-либо из нас открывает устройство или делает онлайн-запрос. транзакций.
По прогнозам, к 2030 году общий объем данных, генерируемых во всем мире, превысит 570 зеттабайт.
Когда возникнет вопрос «насколько велики большие данные», возможно, в 2030 году, будет интересно как мы будем обрабатывать такой большой объем данных.

В следующем посте будет подробно рассказано о Spark и о том, как мы можем начать писать конвейер данных с использованием pySpark (фреймворк Python на основе Spark).

Я надеюсь, вы найдете эти идеи полезными для своего варианта использования, и дайте мне знать, если у вас есть какие-либо другие предложения для меня!

Если вы увлечены этой темой или просто хотите оставаться на связи, подписывайтесь на меня на Medium.

Спасибо за чтение!

Подпишитесь на меня в LinkedIn, чтобы быть в курсе всех последних обновлений.🚀