Что не является характеристикой больших данных выберите несколько вариантов
📊 Что такое Big Data простыми словами
О тенденция развития больших данных мы писали в статье « Почему Big Data так быстро развивается? ». В новой статье расскажем о применениях больших данных простыми словами.
Что такое большие данные?
Big Data – область, в которой рассматриваются различные способы анализа и систематического извлечения больших объемов данных. Она включает применение механических или алгоритмических процессов получения оперативной информации для решения сложных бизнес-задач. Специалисты по Big Data работают с неструктурированными данными, результаты анализа которых используются для поддержки принятия решений в бизнесе.
Источник
Одно из определений больших данных звучит следующим образом: «данные можно назвать большими, когда их размер становится частью проблемы». Такие объемы информации не могут быть сохранены и обработаны с использованием традиционного вычислительного подхода в течение заданного периода времени. Но насколько огромными должны быть данные, чтобы их можно было назвать большими? Обычно мы говорим о гигабайтах, терабайтах, петабайтах, эксабайтах или более крупных единицах измерения. Тут и возникает неправильное представление. Даже данные маленького объема можно назвать большими в зависимости от контекста, в котором они используются.
Например, почтовый сервер может не позволить отправить письмо с вложением на 100 мегабайт, или, допустим, у нас есть около 10 терабайт графических файлов, которые необходимо обработать. Используя настольный компьютер, мы не сможем выполнить эту задачу в течение заданного периода времени из-за нехватки вычислительных ресурсов.
Как классифицируются большие данные?
Выделим три категории:
Характеристики больших данных
Большие данные характеризуются четырьмя правилами (англ. 4 V’s of Big Data: Volume, Velocity, Variety, Veracity) :
Традиционный подход к хранению и обработке больших данных
По мере роста объема данных, становится сложнее ими управлять и тяжелее обрабатывать их с помощью традиционного подхода. К его основным недостаткам относятся:
Термины
Облачные Вычисления
Облачные вычисления или облако можно определить, как интернет-модель вычислений, которая в значительной степени обеспечивает доступ к вычислительным ресурсам. Эти ресурсы включают в себя множество вещей, вроде прикладного программного обеспечение, вычислительных ресурсов, серверов, центров обработки данных и т. д.
Прогнозная Аналитика
Технология, которая учится на опыте (данных) предсказывать будущее поведение индивидов с помощью прогностических моделей. Они включают в себя характеристики (переменные) индивида в качестве входных данных и производит оценку в качестве выходных. Чем выше объясняющая способность модели, тем больше вероятность того, что индивид проявит предсказанное поведение.
Описательная Аналитика
Описательная аналитика обобщает данные, уделяя меньше внимания точным деталям каждой их части, вместо этого сосредотачиваясь на общем повествовании.
Базы данных
Данные нуждаются в кураторстве, в правильном хранении и обработке, чтобы они могли быть преобразованы в ценные знания. База данных – это механизм хранения, облегчающий такие преобразования.
Хранилище Данных
Хранилище данных определяется как архитектура, которая позволяет руководителям бизнеса систематически организовывать, понимать и использовать свои данные для принятия стратегических решений.
Бизнес-аналитика
Apache Hadoop
Apache Hadoop – это фреймворк с открытым исходным кодом для обработки больших объемов данных в кластерной среде. Он использует простую модель программирования MapReduce для надежных, масштабируемых и распределенных вычислений.
Apache Spark
Apache Spark – это мощный процессорный движок с открытым исходным кодом, основанный на скорости, простоте использования и сложной аналитике, с API-интерфейсами на Java, Scala, Python, R и SQL. Spark запускает программы в 100 раз быстрее, чем Apache Hadoop MapReduce в памяти, или в 10 раз быстрее на диске. Его можно использовать для создания приложений данных в виде библиотеки или для выполнения специального анализа в интерактивном режиме. Spark поддерживает стек библиотек, включая SQL, фреймы данных и наборы данных, MLlib для машинного обучения, GraphX для обработки графиков и потоковую передачу.
Интернет вещей
Интернет вещей (IoT) – это растущий источник больших данных. IoT – это концепция, позволяющая осуществлять интернет-коммуникацию между физическими объектами, датчиками и контроллерами.
Машинное Обучение
Машинное обучение может быть использовано для прогностического анализа и распознавания образов в больших данных. Машинное обучение является междисциплинарным по своей природе и использует методы из области компьютерных наук, статистики и искусственного интеллекта. Основными артефактами исследования машинного обучения являются алгоритмы, которые облегчают автоматическое улучшение на основе опыта и могут быть применены в таких разнообразных областях, как компьютерное зрение и интеллектуальный анализ данных.
Интеллектуальный Анализ Данных
Интеллектуальный анализ данных – это применение специфических алгоритмов для извлечения паттернов из данных. В интеллектуальном анализе акцент делается на применении алгоритмов в ходе которых машинное обучение используются в качестве инструмента для извлечения потенциально ценных паттернов, содержащихся в наборах данных.
Источник
Где применяются большие данные
Аналитика больших данных применяется в самых разных областях. Перечислим некоторые из них:
Big Data: размер имеет значение
Leo Matyushkin
Термину Big Data более десяти лет, но вокруг него до сих пор много путаницы. Доступно рассказываем, что же такое «большие данные», откуда эти данные берутся и где используются, кто такие аналитики данных и чем они занимаются.
Три признака больших данных
Традиционно большие данные характеризуют тремя признаками (так называемым правилом VVV):
В качестве простейшего примера можно представить таблицу с миллионами строк клиентов крупной компании. Столбцы – это характеристики пользователей (Ф.И.О., пол, дата, адрес, телефон и т. д.), один клиент – одна строка. Информация обновляется постоянно: клиенты приходят и уходят, данные корректируются.
Но таблицы – это лишь одна из простейших форм отображения информации. Обычно представление больших данных имеет куда более витиеватый и менее структурированный характер. Так, ниже показана схема базы данных проекта MediaWiki:
Большой объем предполагает особую инфраструктуру хранения данных – распределенные файловые системы. Для работы с ними используются реляционные системы управления базами данных. Это требует от аналитика уметь составлять соответствующие запросы к базам данных.
Где живут большие данные?
Инструменты Big Data используются во многих сферах жизни современного человека. Перечислим некоторые из наиболее популярных областей с примерами бизнес-задач:
Для каждой из перечисленных задач можно найти примеры решений с помощью технологий, входящих в сферу Data Science и Machine Learning. Объем используемых данных определяет стратегию и точность решения.
Чем занимаются люди в Big Data?
Анализ Big Data находится на стыке трех областей:
Поэтому аналитик данных – междисциплинарный специалист, обладающий знаниями и в математике, и в программировании, и в базах данных. Вышеперечисленные примеры задач предполагают, что человек должен быстро разбираться в новой предметной области, иметь коммуникативные навыки. Особенно важно уметь находить аналитически обоснованный и полезный для бизнеса результат. Немаловажно грамотно эти выводы визуализировать и презентовать.
Очередность действий в проводимом исследовании примерно сводится к следующему:
Итог работы представляет сжатый отчет с визуализацией результата либо интерактивную панель (dashboard). На такой панели обновляемые данные после обработки предстают в удобной для восприятия форме.
Ключевые навыки и инструменты аналитика
Навыки и соответствующие инструменты, применяемые аналитиками, обычно следующие:
Выбор языка программирования диктуется имеющимися наработками и необходимой скоростью конечного решения. Язык определяет среду разработки и инструменты анализа данных.
Большинство аналитиков используют в качестве языка программирования Python. В этом случае для анализа больших обычно применяется Pandas. При работе в команде общепринятым стандартом документов для хранения и обмена гипотезами являются ipynb-блокноты, обычно обрабатываемые в Jupyter. Этот формат представления данных позволяет совмещать ячейки с программным кодом, текстовые описания, формулы и изображения.
Выбор инструментария для решения задачи зависит от кейса и требований заказчика к точности, надежности и скорости выполнения алгоритма решения. Также важна возможность объяснить составляющие алгоритма от этапа ввода данных до вывода результата.
Так, для задач, связанных с обработкой изображений, чаще применяются нейросетевые инструменты, такие как TensorFlow или один из десятка других фреймворков глубокого обучения. Но, к примеру, при разработке финансовых инструментов нейросетевые решения могут выглядеть «опасными», ведь проследить путь нахождения результата оказывается затруднительно.
Выбор модели анализа и ее архитектуры не менее тривиален, чем вычислительный процесс. Из-за этого в последнее время развивается направление автоматического машинного обучения. Данный подход вряд ли сократит потребность в аналитиках данных, но уменьшит число рутинных операций.
Как разобраться в Big Data?
Как можно понять из приведенного обзора, большие данные предполагают от аналитика и большой объем знаний их различных областей. Разобраться с основами поможет наш учебный план. Если захочется углубиться и попытаться последовательно охватить все аспекты вопроса, изучите roadmap Data Science:
В упомянутом репозитории вы также найдете краткие описания и ссылки к некоторым из компонентов карты.
С чего начать, если хочется попробовать прямо сейчас, но нет данных?
Опытные аналитики советуют пораньше знакомиться с Kaggle. Это популярная платформа для организации конкурсов по анализу больших объемов данных. Здесь найдутся не только соревнования с денежными призами за первые места, но и ipynb-блокноты с идеями и решениями, а также интересные датасеты (наборы данных) различного объема.
Введение в большие данные: основные понятия и термины
Большие данные – это широкий термин для обозначения нетрадиционных стратегий и технологий, необходимых для сбора, упорядочивания и обработки информации из больших наборов данных. Хотя проблема работы с данными, превышающими вычислительную мощность или возможности хранения одного компьютера, не является новой, в последние годы масштабы и ценность этого типа вычислений значительно расширились.
В этой статье вы найдете основные понятия, с которыми вы можете столкнуться, исследуя большие данные. Также здесь рассматриваются некоторые из процессов и технологий, которые используются в этой области в настоящее время.
Что такое большие данные?
Точное определение «больших данных» трудно сформулировать, потому что проекты, вендоры, специалисты-практики и бизнес-специалисты используют его совершенно по-разному. Имея это в виду, большие данные можно определить как:
В этом контексте «большой набор данных» означает набор данных, который слишком велик, чтобы обрабатываться или храниться с помощью традиционных инструментов или на одном компьютере. Это означает, что общий масштаб больших наборов данных постоянно меняется и может значительно варьироваться от случая к случаю.
Системы больших данных
Основные требования к работе с большими данными такие же, как и к любым другим наборам данных. Однако массовые масштабы, скорость обработки и характеристики данных, которые встречаются на каждом этапе процесса, представляют серьезные новые проблемы при разработке средств. Целью большинства систем больших данных является понимание и связь с большими объемами разнородных данных, что было бы невозможно при использовании обычных методов.
В 2001 году Даг Лэйни (Doug Laney) из Gartner представил «три V больших данных», чтобы описать некоторые характеристики, которые отличают обработку больших данных от процесса обработки данных других типов:
Объем данных
Исключительный масштаб обрабатываемой информации помогает определить системы больших данных. Эти наборы данных могут быть на порядки больше, чем традиционные наборы, что требует большего внимания на каждом этапе обработки и хранения.
Поскольку требования превышают возможности одного компьютера, часто возникает проблема объединения, распределения и координации ресурсов из групп компьютеров. Кластерное управление и алгоритмы, способные разбивать задачи на более мелкие части, становятся в этой области все более важными.
Скорость накопления и обработки
Вторая характеристика, которая существенно отличает большие данные от других систем данных, – это скорость, с которой информация перемещается по системе. Данные часто поступают в систему из нескольких источников и должны обрабатываться в режиме реального времени, чтобы обновить текущее состояние системы.
Этот акцент на мгновенной обратной связи заставил многих специалистов-практиков отказаться от пакетно-ориентированного подхода и отдать предпочтение потоковой системе реального времени. Данные постоянно добавляются, обрабатываются и анализируются, чтобы успевать за притоком новой информации и получать ценные данные на ранней стадии, когда это наиболее актуально. Для этого необходимы надежные системы с высокодоступными компонентами для защиты от сбоев по конвейеру данных.
Разнообразие типов обрабатываемых данных
В больших данных существует множество уникальных проблем, связанных с широким спектром обрабатываемых источников и их относительным качеством.
Данные могут поступать из внутренних систем, таких как логи приложений и серверов, из каналов социальных сетей и других внешних API-интерфейсов, с датчиков физических устройств и из других источников. Целью систем больших данных является обработка потенциально полезных данных независимо от происхождения путем объединения всей информации в единую систему.
Форматы и типы носителей также могут значительно различаться. Медиафайлы (изображения, видео и аудио) объединяются с текстовыми файлами, структурированными логами и т. д. Более традиционные системы обработки данных рассчитывают, что данные попадают в конвейер уже помеченными, отформатированными и организованными, но системы больших данных обычно принимают и сохраняют данные, стараясь сохранить их исходное состояние. В идеале любые преобразования или изменения необработанных данных будут происходить в памяти во время обработки.
Другие характеристики
Со временем специалисты и организации предложили расширить первоначальные «три V», хотя эти нововведения, как правило, описывают проблемы, а не характеристики больших данных.
Жизненный цикл больших данных
Итак, как на самом деле обрабатываются большие данные? Существует несколько различных подходов к реализации, но в стратегиях и программном обеспечении есть общие черты.
Основные категории, связанные с обработкой больших данных:
Прежде чем подробно рассмотреть эти четыре категории рабочих процессов, поговорим о кластерных вычислениях, важной стратегии, используемой многими средствами для обработки больших данных. Настройка вычислительного кластера является основой технологии, используемой на каждом этапе жизненного цикла.
Кластерные вычисления
Из-за качества больших данных отдельные компьютеры не подходят для обработки данных. Для этого больше подходят кластеры, так как они могут справляться с хранением и вычислительными потребностями больших данных.
Программное обеспечение для кластеризации больших данных объединяет ресурсы многих небольших машин, стремясь обеспечить ряд преимуществ:
Для работы в кластере необходимы средства для управления членством в кластере, координации распределения ресурсов и планирования работы с отдельными нодами. Членство в кластерах и распределение ресурсов можно обрабатывать с помощью программ типа Hadoop YARN (Yet Another Resource Negotiator) или Apache Mesos.
Сборный вычислительный кластер часто выступает в качестве основы, с которой для обработки данных взаимодействует другое программное обеспечение. Машины, участвующие в вычислительном кластере, также обычно связаны с управлением распределенной системой хранения.
Получение данных
Прием данных – это процесс добавления необработанных данных в систему. Сложность этой операции во многом зависит от формата и качества источников данных и от того, насколько данные отвечают требованиям для обработки.
Добавить большие данные в систему можно с помощью специальных инструментов. Такие технологии, как Apache Sqoop, могут принимать существующие данные из реляционных БД и добавлять их в систему больших данных. Также можно использовать Apache Flume и Apache Chukwa – проекты, предназначенные для агрегирования и импорта логов приложений и серверов. Брокеры сообщений, такие как Apache Kafka, могут использоваться в качестве интерфейса между различными генераторами данных и системой больших данных. Фреймворки типа Gobblin могут объединить и оптимизировать вывод всех инструментов в конце конвейера.
Во время приема данных обычно проводится анализ, сортировка и маркировка. Этот процесс иногда называют ETL (extract, transform, load), что означает извлечение, преобразование и загрузку. Хотя этот термин обычно относится к устаревшим процессам хранения данных, иногда он применяется и к системам больших данных. среди типичных операций – изменение входящих данных для форматирования, категоризация и маркировка, фильтрация или проверка данных на соответствие требованиям.
В идеале, поступившие данные проходят минимальное форматирование.
Хранение данных
После приема данные переходят к компонентам, которые управляют хранилищем.
Обычно для хранения необработанных данных используются распределенные файловые системы. Такие решения, как HDFS от Apache Hadoop, позволяют записывать большие объемы данных на несколько нод в кластере. Эта система обеспечивает вычислительным ресурсам доступ к данным, может загрузить данные в ОЗУ кластера для операций с памятью и обрабатывать сбои компонентов. Вместо HDFS могут использоваться другие распределенные файловые системы, включая Ceph и GlusterFS.
Данные также можно импортировать в другие распределенные системы для более структурированного доступа. Распределенные базы данных, особенно базы данных NoSQL, хорошо подходят для этой роли, поскольку они могут обрабатывать неоднородные данные. Существует множество различных типов распределенных баз данных, выбор зависит от того, как вы хотите организовывать и представлять данные.
Вычисление и анализ данных
Как только данные будут доступны, система может начать обработку. Вычислительный уровень, пожалуй, является самой свободной частью системы, так как требования и подходы здесь могут значительно отличаться в зависимости от типа информации. Данные часто обрабатываются повторно: с помощью одного инструмента, либо с помощью ряда инструментов для обработки различных типов данных.
Пакетная обработка – это один из методов вычисления в больших наборах данных. Этот процесс включает разбивку данных на более мелкие части, планирование обработки каждой части на отдельной машине, перестановку данных на основе промежуточных результатов, а затем вычисление и сбор окончательного результата. Эту стратегию использует MapReduce от Apache Hadoop. Пакетная обработка наиболее полезна при работе с очень большими наборами данных, для которых требуется довольно много вычислений.
Другие рабочие нагрузки требуют обработки в режиме реального времени. При этом информация должна обрабатываться и готовиться немедленно, и система должна своевременно реагировать по мере поступления новой информации. Одним из способов реализации обработки в реальном времени является обработка непрерывного потока данных, состоящих из отдельных элементов. Еще одна общая характеристика процессоров реального времени – это вычисления данных в памяти кластера, что позволяет избежать необходимости записи на диск.
Apache Storm, Apache Flink и Apache Spark предлагают различные способы реализации обработки в реальном времени. Эти гибкие технологии позволяют подобрать наилучший подход для каждой отдельной проблемы. В общем, обработка в режиме реального времени лучше всего подходит для анализа небольших фрагментов данных, которые меняются или быстро добавляются в систему.
Все эти программы являются фреймворками. Однако есть много других способов вычисления или анализа данных в системе больших данных. Эти инструменты часто подключаются к вышеуказанным фреймворкам и предоставляют дополнительные интерфейсы для взаимодействия с нижележащими уровнями. Например, Apache Hive предоставляет интерфейс хранилища данных для Hadoop, Apache Pig предоставляет интерфейс запросов, а взаимодействия с данными SQL обеспечиваются с помощью Apache Drill, Apache Impala, Apache Spark SQL и Presto. В машинном обучении применяются Apache SystemML, Apache Mahout и MLlib от Apache Spark. Для прямого аналитического программирования, которое широко поддерживается экосистемой данных, используют R и Python.
Визуализация результатов
Часто распознавание тенденций или изменений в данных с течением времени важнее полученных значений. Визуализация данных – один из наиболее полезных способов выявления тенденций и организации большого количества точек данных.
Обработка в реальном времени используется для визуализации метрик приложения и сервера. Данные часто меняются, и большие разлеты в показателях обычно указывают на значительное влияние на состояние систем или организаций. Проекты типа Prometheus можно использовать для обработки потоков данных и временных рядов и визуализации этой информации.
Одним из популярных способов визуализации данных является стек Elastic, ранее известный как стек ELK. Logstash используется для сбора данных, Elasticsearch для индексирования данных, а Kibana – для визуализации. Стек Elastic может работать с большими данными, визуализировать результаты вычислений или взаимодействовать с необработанными метриками. Аналогичный стек можно получить, объединив Apache Solr для индексирования форк Kibana под названием Banana для визуализации. Такой стек называется Silk.
Другой технологией визуализации для интерактивной работы в области данных являются документы. Такие проекты позволяют осуществлять интерактивное исследование и визуализацию данных в формате, удобном для совместного использования и представления данных. Популярными примерами этого типа интерфейса являются Jupyter Notebook и Apache Zeppelin.
Что такое большие данные? Характеристики, типы и технологии
Большие данные — это современная аналитическая тенденция, которая позволяет компаниям принимать больше решений на основе данных, чем когда-либо прежде. При анализе эти большие объемы данных открывают реальные коммерческие возможности, будь то маркетинг, разработка продукта или ценообразование.
Компании всех размеров и секторов присоединяются к движению вместе с исследователями данных и архитекторами решений для больших данных. Учитывая, что к 2025 году рынок больших данных вырастет почти вдвое, а объем пользовательских данных будет расти, сейчас лучшее время для того, чтобы стать специалистом по большим данным.
Сегодня мы начнем с вами путь к большим данным и расскажем об основных концепциях, способах использования и инструментах, необходимых для любого начинающего специалиста по данным.
Что такое большие данные?
Под большими данными понимаются большие коллекции данных, которые настолько сложны и обширны, что не могут быть интерпретированы людьми или традиционными системами управления данными. При правильном анализе с использованием современных инструментов эти огромные объемы данных предоставляют предприятиям информацию, необходимую для принятия обоснованных решений.
Новые разработки программного обеспечения недавно сделали возможным использование и отслеживание больших наборов данных. Большая часть этой пользовательской информации может показаться бессмысленной и не связанной с человеческим глазом. Однако инструменты анализа больших данных могут отслеживать взаимосвязи между сотнями типов и источников данных для получения полезной бизнес-аналитики.
Все наборы больших данных имеют три определяющих свойства, известных как 3 V:
Корреляция против причинно-следственной связи
Анализ больших данных находит только корреляции между факторами, но не причинно-следственные связи. Другими словами, он может определить, связаны ли две вещи, но не может определить, является ли одно причиной другого.
Аналитики данных должны решить, какие взаимосвязи данных являются действенными, а какие — просто случайными корреляциями.
История больших данных
Концепция больших данных существует с 1960-х и 1970-х годов, но в то время у них не было средств для сбора и хранения такого количества данных.
Практические большие данные начали развиваться только в 2005 году, когда разработчики из таких организаций, как YouTube и Facebook, осознали объем данных, которые они генерируют в своей повседневной деятельности.
Примерно в то же время новые передовые фреймворки и системы хранения, такие как базы данных Hadoop и NoSQL, позволили специалистам по данным хранить и анализировать более крупные наборы данных, чем когда-либо прежде. Фреймворки с открытым исходным кодом, такие как Apache Hadoop и Apache Spark, обеспечивают идеальную платформу для роста больших данных.
Большие данные продолжают развиваться, и все больше компаний признают преимущества прогнозной аналитики. Современные подходы к большим данным используют стратегии Интернета вещей (IoT) и облачных вычислений для записи большего количества данных со всего мира и машинного обучения для создания более точных моделей.
Хотя трудно предсказать, каким будет следующий прогресс в области больших данных, ясно, что большие данные будут продолжать становиться более масштабируемыми и эффективными.
Для чего используются большие данные?
Приложения для работы с большими данными полезны во всем мире бизнеса, а не только в сфере технологий. Вот несколько примеров использования больших данных:
Как работают большие данные?
Сами по себе большие данные не могут предоставить бизнес-аналитику, которую ищут многие компании. Вам нужно будет обработать данные, прежде чем они смогут дать полезную информацию.
Этот процесс включает 3 основных этапа:
1. Потребление потока данных
На первом этапе данные поступают в систему в огромных количествах. Эти данные бывают разных типов и не могут быть организованы в какую-либо пригодную для использования схему. Данные на этом этапе называются озером данных, потому что все данные сгруппированы вместе и их невозможно различить.
Система вашей компании должна иметь мощность обработки данных и емкость хранилища, чтобы обрабатывать такой объем данных. Локальное хранилище является наиболее безопасным, но оно может быть перегружено в зависимости от объема.
Облачные вычисления и распределенное хранилище часто являются секретом эффективного использования потока. Они позволяют разделить хранилище между несколькими базами данных в системе.
2. Анализ данных
Затем вам понадобится система, которая автоматически очищает и упорядочивает данные. Данные такого масштаба и частоты слишком велики, чтобы их можно было систематизировать вручную.
Популярные стратегии включают в себя установку критериев, которые исключают любые ошибочные данные, или построение аналитики в памяти, которая постоянно добавляет новые данные в текущий анализ. По сути, этот этап похож на сбор стопки документов и их упорядочивание до тех пор, пока она не будет структурирована.
На этом этапе у вас будут необработанные результаты, но не то, что с ними делать. Например, служба совместного использования может обнаружить, что более 50% пользователей отменят поездку, если прибывающий водитель будет остановлен более чем на 1 минуту.
3. Принятие решений на основе данных
На заключительном этапе вы интерпретируете необработанные результаты, чтобы сформировать конкретный план. Ваша задача как специалиста по данным будет заключаться в том, чтобы проанализировать все результаты и создать подтвержденное доказательствами предложение о том, как улучшить бизнес.
В примере совместного использования вы можете решить, что служба должна отправлять водителей по маршрутам, которые обеспечивают им движение, даже если это займет немного больше времени, чтобы уменьшить разочарование клиентов. С другой стороны, вы можете включить стимул для пользователя дождаться прибытия водителя.
Любой из этих вариантов допустим, потому что ваш анализ больших данных не может определить, какой аспект этого взаимодействия необходимо изменить, чтобы повысить удовлетворенность клиентов.
Терминология больших данных
Структурированные данные
У этих данных есть некоторые предопределенные организационные свойства, которые упрощают поиск и анализ. Данные поддерживаются моделью, которая определяет размер каждого поля: его тип, длину и ограничения на то, какие значения оно может принимать. Пример структурированных данных «блок производится в день», так как каждый элемент имеет определенный product typeи number producedполе.
Неструктурированные данные
Это противоположно структурированным данным. У него нет заранее определенного организационного свойства или концептуального определения. Неструктурированные данные составляют большую часть больших данных. Некоторыми примерами неструктурированных данных являются сообщения в социальных сетях, стенограммы телефонных разговоров или видео.
База данных
Организованный набор хранимых данных, который может содержать как структурированные, так и неструктурированные данные. Базы данных предназначены для максимального повышения эффективности извлечения данных. Базы данных бывают двух типов: реляционные и нереляционные.
Система управления базой данных
Обычно, говоря о базах данных, таких как MySQL и PostgreSQL, мы говорим о системе, называемой системой управления базами данных. СУБД — это программное обеспечение для создания, обслуживания и удаления нескольких отдельных баз данных. Он предоставляет периферийные службы и интерфейсы для взаимодействия конечного пользователя с базами данных.
Реляционная база данных (SQL)
Реляционные базы данных состоят из структурированных данных, хранящихся в виде строк в таблицах. Столбцы таблицы следуют определенной схеме, которая описывает тип и размер данных, которые может содержать столбец таблицы. Думайте о схеме как о схеме каждой записи или строки в таблице. Реляционные базы данных должны иметь структурированные данные, и данные должны иметь логические отношения друг с другом.
Например, форум, подобный Reddit, будет использовать реляционную базу данных, поскольку логическая структура данных состоит в том, что пользователи имеют список следующих форумов, форумы имеют список сообщений, а сообщения содержат список опубликованных комментариев. Популярные реализации включают Oracle, DB2, Microsoft SQL Server, PostgreSQL и MySQL.
Нереляционная база данных
Нереляционные базы данных не имеют жесткой схемы и содержат неструктурированные данные. Данные внутри не имеют логической связи с другими данными в базе данных и организованы по-разному в зависимости от потребностей компании. Некоторые распространенные типы включают хранилища ключей и значений (Redis, Amazon Dynamo DB), хранилища столбцов (HBase, Cassandra), хранилища документов ( Mongo DB, Couchbase), графические базы данных (Neo4J) и поисковые системы (Solr, ElasticSearch, Splunk). Большая часть больших данных хранится в нереляционных базах данных, поскольку они могут содержать данные нескольких типов.
Озеро данных
Хранилище данных, хранящихся в необработанном виде. Как и в случае с водой, все данные перемешаны, и никакие данные сбора нельзя использовать, прежде чем их можно будет отделить от озера. Данные в озере данных пока не обязательно должны иметь определенную цель. Он сохраняется на тот случай, если его использование будет обнаружено позже.
Хранилище данных
Репозиторий для отфильтрованных и структурированных данных с заранее определенной целью. По сути, это структурированный эквивалент озера данных.
Технологии больших данных
Наконец, мы рассмотрим основные инструменты, которые используют современные специалисты по данным при создании решений для больших данных.
Hadoop
Hadoop — это надежная, распределенная и масштабируемая платформа распределенной обработки данных для хранения и анализа огромных объемов данных. Он позволяет объединять множество компьютеров в сеть, используемую для простого хранения и вычисления огромных наборов данных.
Соблазн Hadoop заключается в его способности работать на дешевом стандартном оборудовании, в то время как его конкурентам может потребоваться дорогое оборудование для выполнения той же работы. Это тоже с открытым исходным кодом. Он делает решения для больших данных доступными для повседневного бизнеса и делает большие данные доступными для тех, кто не работает в сфере высоких технологий.
Hadoop иногда используется как общий термин, относящийся ко всем инструментам в экосистеме науки о данных Apache.
MapReduce
MapRedu ceпредставляет собой модель программирования, используемую в кластере компьютеров для обработки и создания наборов больших данных с помощью параллельного распределенного алгоритма. Его можно реализовать на Hadoop и других подобных платформах.
Программа MapReduce содержит mapпроцедуру, которая фильтрует и сортирует данные в удобную для использования форму. После сопоставления данных они передаются в reduceпроцедуру, которая суммирует тенденции данных. Несколько компьютеров в системе могут выполнять этот процесс одновременно, чтобы быстро обрабатывать данные из озера необработанных данных и получать полезные результаты.
Модель программирования MapReduce имеет следующие характеристики:
Класс Mapper в Java
Давайте посмотрим, как мы можем реализовать MapReduce в Java.
Сначала мы будем использовать класс Mapper, добавленный пакетом Hadoop ( org.apache.hadoop.mapreduce) для создания mapоперации. Этот класс сопоставляет входные пары ключ / значение с набором промежуточных пар ключ / значение. По сути, преобразователь выполняет синтаксический анализ, проекцию (выбор интересующих полей из входных данных) и фильтрацию (удаление неинтересных или искаженных записей).
Например, мы создадим картограф, который берет список автомобилей и возвращает марку автомобиля и итератор; список из Honda Pilot и Honda Civic будет возвращаться (Honda 1), (Honda 1).