Что такое большие данные? Характеристики, типы и технологии

Что такое большие данные База данных

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

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

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

Что такое большие данные?

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

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

Все наборы больших данных имеют три определяющих свойства, известных как 3 V:

  • Объем: наборы больших данных должны включать миллионы неструктурированных точек данных с низкой плотностью. Компании, использующие большие данные, могут хранить от десятков терабайт до сотен петабайт пользовательских данных. С появлением облачных вычислений у компаний теперь есть доступ к зеттабайтам данных! Все данные сохраняются независимо от кажущейся важности. Специалисты по большим данным утверждают, что иногда ответы на вопросы бизнеса могут заключаться в неожиданных данных.
  • Скорость: скорость означает быстрое создание и применение больших данных. Большие данные принимаются, анализируются и интерпретируются в быстрой последовательности, чтобы предоставить самые свежие результаты. Многие платформы больших данных даже записывают и интерпретируют данные в режиме реального времени.
  • Разнообразие: наборы больших данных содержат разные типы данных в одной неструктурированной базе данных. Традиционные системы управления данными используют структурированные реляционные базы данных, которые содержат определенные типы данных с установленными отношениями с другими типами данных. Программы анализа больших данных используют множество различных типов неструктурированных данных, чтобы найти все корреляции между всеми типами данных. Подходы с использованием больших данных часто позволяют получить более полную картину взаимосвязи каждого фактора.

Корреляция против причинно-следственной связи

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

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

История больших данных

Концепция больших данных существует с 1960-х и 1970-х годов, но в то время у них не было средств для сбора и хранения такого количества данных.

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

Примерно в то же время новые передовые фреймворки и системы хранения, такие как базы данных Hadoop и NoSQL, позволили специалистам по данным хранить и анализировать более крупные наборы данных, чем когда-либо прежде. Фреймворки с открытым исходным кодом, такие как Apache Hadoop и Apache Spark, обеспечивают идеальную платформу для роста больших данных.

Большие данные продолжают развиваться, и все больше компаний признают преимущества прогнозной аналитики. Современные подходы к большим данным используют стратегии Интернета вещей (IoT) и облачных вычислений для записи большего количества данных со всего мира и машинного обучения для создания более точных моделей.

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

Для чего используются большие данные?

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

  • Принятие решений о продуктах: такие компании, как Netflix и Amazon, используют большие данные для разработки продуктов на основе будущих тенденций в сфере продуктов. Они могут использовать комбинированные данные о прошлых характеристиках продукта, чтобы предугадывать, какие продукты потребители захотят, прежде чем они захотят. Они также могут использовать данные о ценах, чтобы определить оптимальную цену для максимальной продажи своим целевым клиентам.
  • Тестирование: Большие данные позволяют анализировать миллионы отчетов об ошибках, спецификации оборудования, показания датчиков и прошлые изменения, чтобы распознавать точки отказа в системе до того, как они возникнут. Это помогает специалистам по обслуживанию предотвратить проблемы и дорогостоящие простои системы.
  • Маркетинг: маркетологи собирают большие данные из предыдущих маркетинговых кампаний для оптимизации будущих рекламных кампаний. Объединяя данные от розничных продавцов и интернет-рекламы, большие данные могут помочь в оптимизации стратегий, обнаружив тонкие предпочтения для рекламы с определенными типами изображений, цветами или выбором слов.
  • Здравоохранение: медицинские работники используют большие данные для выявления побочных эффектов лекарств и выявления ранних признаков болезни. Например, представьте, что есть новое заболевание, которое быстро и без предупреждения поражает людей. Однако многие пациенты сообщили о головной боли во время последнего ежегодного осмотра. Это будет отмечено как явная корреляция при использовании анализа больших данных, но человеческий глаз может не заметить это из-за различий во времени и местоположении.
  • Клиентский опыт: большие данные используются продуктовыми командами после запуска для оценки клиентского опыта и восприятия продукта. Системы больших данных могут анализировать большие наборы данных из упоминаний в социальных сетях, онлайн-обзоров и отзывов о продуктах, чтобы лучше понять, с какими проблемами сталкиваются клиенты и насколько хорошо продукт воспринимается.
  • Машинное обучение: большие данные стали важной частью технологий машинного обучения и искусственного интеллекта, поскольку они предлагают огромный объем данных, из которых можно извлечь. Инженеры машинного обучения используют большие наборы данных в качестве разнообразных обучающих данных для создания более точных и устойчивых систем прогнозирования.
Читайте также:  Оконная функция PostgreSQL NTILE

Как работают большие данные?

Сами по себе большие данные не могут предоставить бизнес-аналитику, которую ищут многие компании. Вам нужно будет обработать данные, прежде чем они смогут дать полезную информацию.

Этот процесс включает 3 основных этапа:

1. Потребление потока данных

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

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

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

2. Анализ данных

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

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

На этом этапе у вас будут необработанные результаты, но не то, что с ними делать. Например, служба совместного использования может обнаружить, что более 50% пользователей отменят поездку, если прибывающий водитель будет остановлен более чем на 1 минуту.

3. Принятие решений на основе данных

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

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

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

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

Структурированные данные

У этих данных есть некоторые предопределенные организационные свойства, которые упрощают поиск и анализ. Данные поддерживаются моделью, которая определяет размер каждого поля: его тип, длину и ограничения на то, какие значения оно может принимать. Пример структурированных данных «блок производится в день», так как каждый элемент имеет определенный product typeи number producedполе.

Неструктурированные данные

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

База данных

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

Система управления базой данных

Обычно, говоря о базах данных, таких как MySQL и PostgreSQL, мы говорим о системе, называемой системой управления базами данных. СУБД — это программное обеспечение для создания, обслуживания и удаления нескольких отдельных баз данных. Он предоставляет периферийные службы и интерфейсы для взаимодействия конечного пользователя с базами данных.

Реляционная база данных (SQL)

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

Читайте также:  PostgreSQL Generate Series для создания ряда дат

Например, форум, подобный 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 имеет следующие характеристики:

  • Распределенный: MapReduce — это распределенная структура, состоящая из кластеров стандартного оборудования, которое запускается mapили reduceвыполняет задачи.
  • Параллельно: задачи сопоставления и сокращения всегда работают параллельно.
  • Отказоустойчивый: в случае сбоя какой-либо задачи она переносится на другой узел.
  • Масштабируемость: масштабирование можно произвольно. По мере того, как проблема становится больше, можно добавить больше машин для решения проблемы в разумные сроки; каркас можно масштабировать по горизонтали, а не по вертикали.

Класс Mapper в Java

Давайте посмотрим, как мы можем реализовать MapReduce в Java.

Сначала мы будем использовать класс Mapper, добавленный пакетом Hadoop ( org.apache.hadoop.mapreduce) для создания mapоперации. Этот класс сопоставляет входные пары ключ / значение с набором промежуточных пар ключ / значение. По сути, преобразователь выполняет синтаксический анализ, проекцию (выбор интересующих полей из входных данных) и фильтрацию (удаление неинтересных или искаженных записей).

Например, мы создадим картограф, который берет список автомобилей и возвращает марку автомобиля и итератор; список из Honda Pilot и Honda Civic будет возвращаться (Honda 1), (Honda 1).

public class CarMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
    @Override
    protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
        // We can ignore the key and only work with value
        String[] words = value.toString().split(» «);
        for (String word : words) {
            context.write(new Text(word.toLowerCase()), new IntWritable(1));
        }
    }
}

Reducer класс в Java

Самая важная часть этого кода находится в строке 9. Здесь мы выводим пары ключ / значение, которые позже сортируются и объединяются редукторами.

Не путайте ключ и значение, которые мы пишем, с ключом и значениями, передаваемыми в map(…) method. Ключ — это название марки автомобиля. Поскольку каждое вхождение ключа обозначает один физический счетчик этой марки автомобиля, мы выводим 1 в качестве значения. Мы хотим вывести тип ключа, который может быть как сериализуемым, так и сопоставимым, но тип значения должен быть только сериализуемым.

Класс редуктора в Java

Далее мы реализуем reduceоперацию, используя Reducerкласс, добавленный Hadoop. Функция Reducerавтоматически выводит Mapperи возвращает общее количество автомобилей каждой марки.

Задача сокращения разделена между одним или несколькими узлами-редукторами для более быстрой обработки. Все задачи одного ключа (бренда) выполняются одним и тем же узлом.

public class CarReducer extends Reducer<Text, IntWritable, Text, LongWritable> {
    @Override
    protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
        long sum = 0;
        for (IntWritable occurrence : values) {
            sum += occurrence.get();
        }
        context.write(key, new LongWritable(sum));
    }
}

Строки 8-10 повторяют каждую карту одного и того же ключа и суммируют общее количество с использованием sumпеременной.

Mapperи Reducerявляются основой многих решений Hadoop. Вы можете расширить эти базовые формы для обработки огромных объемов данных или свести к узкоспециализированным сводкам.

Оцените статью
bestprogrammer.ru
Добавить комментарий