обработка больших данных и разработка интеллектуальных приложений
Обработка больших данных и разработка интеллектуальных приложений
Институт онлайн-образования – синтез современных IT-технологий и фундаментальных знаний профессорского-преподавательского состава Финансового университета. Мы верим, что современные технологии – наши друзья и помощники, и успешно применяем их в образовательном процессе.
Основная идея, заложенная в концепцию магистерской программы — применение современных интеллектуальных методов при разработке приложений и решение задачи обработки больших данных (BigData), что дает возможность повысить эффективность управления предприятиями в различных областях.
Одной из особенностей данной программы является ее ориентация на потребности крупных предприятий. Программа концентрирует свое внимание на предприятии, как на системе с развитой информационной инфраструктурой, обеспечивающей автоматизацию решения управленческих задач с применением классических подходов, интеллектуальных методов и средств обработки больших данных. Такой подход позволяет получить новые характеристики деятельности для принятия управленческого решения, прогноза и формирования управляющих воздействий.
Заложенный в программу подход направлен на развитие компетенций, которые позволят специалисту ускорить внедрение технологий разработки интеллектуальных систем и обработки больших данных при разработке современных программных средств в практику, и обеспечат высокую востребованность специалистов такого рода на рынке труда.
Big Data от А до Я. Часть 1: Принципы работы с большими данными, парадигма MapReduce
Привет, Хабр! Этой статьёй я открываю цикл материалов, посвящённых работе с большими данными. Зачем? Хочется сохранить накопленный опыт, свой и команды, так скажем, в энциклопедическом формате – наверняка кому-то он будет полезен.
Проблематику больших данных постараемся описывать с разных сторон: основные принципы работы с данными, инструменты, примеры решения практических задач. Отдельное внимание окажем теме машинного обучения.
Начинать надо от простого к сложному, поэтому первая статья – о принципах работы с большими данными и парадигме MapReduce.
История вопроса и определение термина
Термин Big Data появился сравнительно недавно. Google Trends показывает начало активного роста употребления словосочетания начиная с 2011 года (ссылка):
При этом уже сейчас термин не использует только ленивый. Особенно часто не по делу термин используют маркетологи. Так что же такое Big Data на самом деле? Раз уж я решил системно изложить и осветить вопрос – необходимо определиться с понятием.
В своей практике я встречался с разными определениями:
· Big Data – это когда данных больше, чем 100Гб (500Гб, 1ТБ, кому что нравится)
· Big Data – это такие данные, которые невозможно обрабатывать в Excel
· Big Data – это такие данные, которые невозможно обработать на одном компьютере
· Вig Data – это вообще любые данные.
· Big Data не существует, ее придумали маркетологи.
В этом цикле статей я буду придерживаться определения с wikipedia:
Большие данные (англ. big data) — серия подходов, инструментов и методов обработки структурированных и неструктурированных данных огромных объёмов и значительного многообразия для получения воспринимаемых человеком результатов, эффективных в условиях непрерывного прироста, распределения по многочисленным узлам вычислительной сети, сформировавшихся в конце 2000-х годов, альтернативных традиционным системам управления базами данных и решениям класса Business Intelligence.
Таким образом под Big Data я буду понимать не какой-то конкретный объём данных и даже не сами данные, а методы их обработки, которые позволяют распредёлено обрабатывать информацию. Эти методы можно применить как к огромным массивам данных (таким как содержание всех страниц в интернете), так и к маленьким (таким как содержимое этой статьи).
Приведу несколько примеров того, что может быть источником данных, для которых необходимы методы работы с большими данными:
· Логи поведения пользователей в интернете
· GPS-сигналы от автомобилей для транспортной компании
· Данные, снимаемые с датчиков в большом адронном коллайдере
· Оцифрованные книги в Российской Государственной Библиотеке
· Информация о транзакциях всех клиентов банка
· Информация о всех покупках в крупной ритейл сети и т.д.
Количество источников данных стремительно растёт, а значит технологии их обработки становятся всё более востребованными.
Принципы работы с большими данными
Исходя из определения Big Data, можно сформулировать основные принципы работы с такими данными:
1. Горизонтальная масштабируемость. Поскольку данных может быть сколь угодно много – любая система, которая подразумевает обработку больших данных, должна быть расширяемой. В 2 раза вырос объём данных – в 2 раза увеличили количество железа в кластере и всё продолжило работать.
2. Отказоустойчивость. Принцип горизонтальной масштабируемости подразумевает, что машин в кластере может быть много. Например, Hadoop-кластер Yahoo имеет более 42000 машин (по этой ссылке можно посмотреть размеры кластера в разных организациях). Это означает, что часть этих машин будет гарантированно выходить из строя. Методы работы с большими данными должны учитывать возможность таких сбоев и переживать их без каких-либо значимых последствий.
3. Локальность данных. В больших распределённых системах данные распределены по большому количеству машин. Если данные физически находятся на одном сервере, а обрабатываются на другом – расходы на передачу данных могут превысить расходы на саму обработку. Поэтому одним из важнейших принципов проектирования BigData-решений является принцип локальности данных – по возможности обрабатываем данные на той же машине, на которой их храним.
Все современные средства работы с большими данными так или иначе следуют этим трём принципам. Для того, чтобы им следовать – необходимо придумывать какие-то методы, способы и парадигмы разработки средств разработки данных. Один из самых классических методов я разберу в сегодняшней статье.
MapReduce
Про MapReduce на хабре уже писали (раз, два, три), но раз уж цикл статей претендует на системное изложение вопросов Big Data – без MapReduce в первой статье не обойтись J
MapReduce – это модель распределенной обработки данных, предложенная компанией Google для обработки больших объёмов данных на компьютерных кластерах. MapReduce неплохо иллюстрируется следующей картинкой (взято по ссылке):
MapReduce предполагает, что данные организованы в виде некоторых записей. Обработка данных происходит в 3 стадии:
1. Стадия Map. На этой стадии данные предобрабатываются при помощи функции map(), которую определяет пользователь. Работа этой стадии заключается в предобработке и фильтрации данных. Работа очень похожа на операцию map в функциональных языках программирования – пользовательская функция применяется к каждой входной записи.
Функция map() примененная к одной входной записи и выдаёт множество пар ключ-значение. Множество – т.е. может выдать только одну запись, может не выдать ничего, а может выдать несколько пар ключ-значение. Что будет находится в ключе и в значении – решать пользователю, но ключ – очень важная вещь, так как данные с одним ключом в будущем попадут в один экземпляр функции reduce.
2. Стадия Shuffle. Проходит незаметно для пользователя. В этой стадии вывод функции map «разбирается по корзинам» – каждая корзина соответствует одному ключу вывода стадии map. В дальнейшем эти корзины послужат входом для reduce.
3. Стадия Reduce. Каждая «корзина» со значениями, сформированная на стадии shuffle, попадает на вход функции reduce().
Функция reduce задаётся пользователем и вычисляет финальный результат для отдельной «корзины». Множество всех значений, возвращённых функцией reduce(), является финальным результатом MapReduce-задачи.
Несколько дополнительных фактов про MapReduce:
1) Все запуски функции map работают независимо и могут работать параллельно, в том числе на разных машинах кластера.
2) Все запуски функции reduce работают независимо и могут работать параллельно, в том числе на разных машинах кластера.
3) Shuffle внутри себя представляет параллельную сортировку, поэтому также может работать на разных машинах кластера. Пункты 1-3 позволяют выполнить принцип горизонтальной масштабируемости.
4) Функция map, как правило, применяется на той же машине, на которой хранятся данные – это позволяет снизить передачу данных по сети (принцип локальности данных).
5) MapReduce – это всегда полное сканирование данных, никаких индексов нет. Это означает, что MapReduce плохо применим, когда ответ требуется очень быстро.
Примеры задач, эффективно решаемых при помощи MapReduce
Word Count
Начнём с классической задачи – Word Count. Задача формулируется следующим образом: имеется большой корпус документов. Задача – для каждого слова, хотя бы один раз встречающегося в корпусе, посчитать суммарное количество раз, которое оно встретилось в корпусе.
Раз имеем большой корпус документов – пусть один документ будет одной входной записью для MapRreduce–задачи. В MapReduce мы можем только задавать пользовательские функции, что мы и сделаем (будем использовать python-like псевдокод):
Функция map превращает входной документ в набор пар (слово, 1), shuffle прозрачно для нас превращает это в пары (слово, [1,1,1,1,1,1]), reduce суммирует эти единички, возвращая финальный ответ для слова.
Обработка логов рекламной системы
Второй пример взят из реальной практики Data-Centric Alliance.
Задача: имеется csv-лог рекламной системы вида:
Необходимо рассчитать среднюю стоимость показа рекламы по городам России.
Функция map проверяет, нужна ли нам данная запись – и если нужна, оставляет только нужную информацию (город и размер платежа). Функция reduce вычисляет финальный ответ по городу, имея список всех платежей в этом городе.
Резюме
В статье мы рассмотрели несколько вводных моментов про большие данные:
· Что такое Big Data и откуда берётся;
· Каким основным принципам следуют все средства и парадигмы работы с большими данными;
· Рассмотрели парадигму MapReduce и разобрали несколько задач, в которой она может быть применена.
Первая статья была больше теоретической, во второй статье мы перейдем к практике, рассмотрим Hadoop – одну из самых известных технологий для работы с большими данными и покажем, как запускать MapReduce-задачи на Hadoop.
В последующих статьях цикла мы рассмотрим более сложные задачи, решаемые при помощи MapReduce, расскажем об ограничениях MapReduce и о том, какими инструментами и техниками можно обходить эти ограничения.
Спасибо за внимание, готовы ответить на ваши вопросы.
Обработка больших данных и разработка интеллектуальных приложений
Институт онлайн-образования – синтез современных IT-технологий и фундаментальных знаний профессорского-преподавательского состава Финансового университета. Мы верим, что современные технологии – наши друзья и помощники, и успешно применяем их в образовательном процессе.
Основная идея, заложенная в концепцию магистерской программы — применение современных интеллектуальных методов при разработке приложений и решение задачи обработки больших данных (BigData), что дает возможность повысить эффективность управления предприятиями в различных областях.
Одной из особенностей данной программы является ее ориентация на потребности крупных предприятий. Программа концентрирует свое внимание на предприятии, как на системе с развитой информационной инфраструктурой, обеспечивающей автоматизацию решения управленческих задач с применением классических подходов, интеллектуальных методов и средств обработки больших данных. Такой подход позволяет получить новые характеристики деятельности для принятия управленческого решения, прогноза и формирования управляющих воздействий.
Заложенный в программу подход направлен на развитие компетенций, которые позволят специалисту ускорить внедрение технологий разработки интеллектуальных систем и обработки больших данных при разработке современных программных средств в практику, и обеспечат высокую востребованность специалистов такого рода на рынке труда.
30 лучших инструментов больших данных для анализа данных
Возможность поиска и очистки больших данных имеет важное значение в 21 веке. Правильные инструменты являются обязательным условием для конкуренции с конкурентами и добавления преимуществ для вашего бизнеса. Я делаю список из 30 лучших инструментов для больших данных для вас.
Часть 1. Инструменты извлечения данных
Parsehub es un rastreador basado en web (web-based crawler). Puede extraer datos que manejan sitios web dinámicos con AJax, JavaScripts y detrás del inicio de sesión. Tiene una ventana de prueba gratuita de una semana para que los usuarios experimenten sus funcionalidades.
Часть 2: Инструменты с открытым исходным кодом
Это бесплатное программное обеспечение языка программирования и графики и статистического расчета программного обеспечения. Язык R популярен среди майнеров данных для разработки статистического программного обеспечения и анализа данных. Заработайте кредиты и популярность в последние годы благодаря простоте использования и обширной функциональности.
Помимо интеллектуального анализа данных, он также предоставляет статистические и графические методы, линейное и нелинейное моделирование, классические статистические тесты, анализ временных рядов, классификацию, группирование и многое другое.
Это программное обеспечение с открытым исходным кодом, предназначенное для преобразования данных в информацию. Он предоставляет различные услуги и программное обеспечение, включая облачное хранилище, интеграцию бизнес-приложений, управление данными и т. Д. При поддержке обширного сообщества он позволяет всем пользователям и членам Talend обмениваться информацией, опытом, вопросами из любого места.
Это программный пакет с открытым исходным кодом для Microsoft Excel. В качестве дополнительного расширения у него нет сервисов и функций интеграции данных. Основное внимание уделяется анализу социальных сетей. Интуитивно понятные сети и описательные отношения облегчают анализ социальных сетей. Являясь одним из лучших статистических инструментов для анализа данных, он включает в себя расширенные сетевые метрики, доступ к импортерам данных из социальных сетей и автоматизацию.
Microsoft PowerBI предоставляет локальные и облачные сервисы. Впервые он был представлен как надстройка Excel. Вскоре PowerBI набирает популярность благодаря своим мощным функциям. На данный момент вы воспринимаетесь как лидер в аналитике. Он обеспечивает визуализацию данных и возможности бизнес-аналитики, которые позволяют пользователям творчески и инновационно создавать отчеты и информационные панели с минимальными затратами.
Solver специализируется на программном обеспечении корпоративного управления эффективностью (CPM). Его программное обеспечение BI360 доступно для локального и облачного развертывания, которое сосредоточено на четырех ключевых аналитических областях, включая финансовую отчетность, бюджетирование и информационные панели, а также хранилище данных.
Infogram предоставляет более 35 интерактивных диаграмм и более 500 карт, которые помогут вам визуализировать данные. В дополнение к различным диаграммам (включая гистограммы, гистограммы, круговые диаграммы или облака слов) существуют инновационные форматы инфографики.
Он имеет инструмент обратной связи с клиентами, который собирает отзывы и мнения клиентов. Затем они анализируют языки, используя НЛП, чтобы прояснить положительные и отрицательные намерения. Просмотр результатов с графиками и таблицами на панелях. Также вы можете подключить HubSpot ServiceHub к системе CRM. В результате вы можете связать результаты опроса с конкретным контактом. Таким образом, вы можете выявлять недовольных клиентов и своевременно предоставлять качественные услуги, чтобы увеличить удержание клиентов.
Инструменты мониторинга социальных сетей Trackur могут отслеживать информацию в Интернете из разных источников. Отслеживайте большое количество веб-страниц, включая видео, блоги, форумы и изображения, чтобы найти связанные сообщения. С его сложными функциями, вы можете получить необходимые данные. Не преследуйте телефон и не отправляйте рекламные письма.
Наиболее сложной частью анализа веб-текста является поиск плохо написанного текста. SAS может легко исправить и сгруппировать его. Благодаря обработке на естественном языке на основе правил SAS может эффективно классифицировать сообщения.
Он превосходит Oracle, MySQL, Microsoft SQL Server и становится четвертой по популярности базой данных. Обладая высокой стабильностью, он может обрабатывать большие объемы данных.
Это облачное программное обеспечение для баз данных, которое имеет широкие возможности таблиц данных для сбора и отображения информации. Он также имеет электронную таблицу и встроенный календарь, чтобы легко отслеживать задачи. Работать с вашими начальными шаблонами легко с помощью Lead Management, Bug Tracking и Lead Tracking.
Это бесплатная база данных с открытым исходным кодом для хранения, вставки, изменения и восстановления данных. Кроме того, Мария поддерживает сильное сообщество с активными членами для обмена информацией и знаниями.
Big Data: с чего начать
Каждый обмен с социальными медиа, каждый цифровой процесс, каждое подключённое устройство генерирует большие данные, которые будут использоваться различными компаниями.
Сегодня компании используют Big Data для углубленного взаимодействия с клиентами, оптимизации операций, предотвращения угроз и мошенничества. За последние два года такие компании, как IBM, Google, Amazon, Uber, создали сотни рабочих мест для программистов и Data science.
Область больших данных слишком размылась на просторах интернета, и это может быть очень сложной задачей для тех, кто начинает изучать большие данные и связанные с ними технологии. Технологии данных многочисленны это может быть огромным препятствием для начинающих. Давайте попробуем разложить все по полочкам.
В сфере Big Data существует много направлений. Но в широком смысле можно разделить на две категории:
Эти поля взаимозависимы, но отличаются друг от друга.
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 для эффективного анализа продаж банка.
Данные берём из разных источников.
Важно понимать, что первым делом нужно рассчитывать, что система должна быть интегрирована со всеми вышеперечисленными источниками и бесперебойно принимать данные.
Определяем конечные цели:
Теперь, когда мы знаем, каковы наши конечные цели, попробуем сформулировать наши требования более формальными терминами.
Структура: большая часть данных структурирована и имеет определённую модель. Но источники данных, такие как веб-журналы, взаимодействия с клиентами или данные колл-центра, изображения из каталога продаж, данные рекламы продукта —доступность и требования к изображениям и мультимедийной рекламной информации могут зависеть от компании.
Тип данных: структурированные и неструктурированные данные.