Содержание:
Big data надолго останется среди востребованных информационных технологий. По прогнозам, к 2025 году предприятия будут создавать около 60% всех мировых данных. Практически непрерывно потоки информации генерируют компании в сфере финансов, телекоммуникаций, электронной коммерции. Подобный бизнес нуждается в технологических решениях, которые помогут эффективно собирать, хранить и использовать большие объемы данных. Это одна из причин, почему в ближайшие годы спрос на профессионалов в big data будет только расти.
Мы расскажем, какие есть специальности в сфере big data и какие основные технологии нужно изучить программисту, чтобы связать свою карьеру с большими данными.
В русском языке для термина big data часто используют кальку с английского – «большие данные». Но где проходит та грань, которая разделяет данные на «большие» и «обычные»? Принято считать, что объем big data начинается с терабайта, так как такое количество данных уже сложно хранить и обрабатывать в реляционных системах. Есть и другие критерии, которые объясняют, почему потребовались новые методы для работы с большими данными.
Многообразие. Большие данные чаще всего состоят из неструктурированной информации, которая может поступать из нескольких источников в виде разных по формату данных (видео и аудиофайлы, текст, изображения и др.). Технологии big data позволяют обрабатывать разнородные данные одновременно.
Скорость накопления. Данные генерируются все быстрее. Например, онлайн-магазину нужно постоянно собирать информацию о количестве клиентов и их покупках. Для хранения таких данных лучше подходят нереляционные базы данных, так как их легко масштабировать горизонтально, добавляя новые сервера (большинство реляционных баз данных масштабируются вертикально за счет увеличения оперативной памяти).
Скорость обработки. Большие данные, не смотря на свой внушительный объем, должны очень быстро обрабатываться, часто – в режиме реального времени. Например, рекомендательные системы в онлайн-магазинах мгновенно анализируют поведение клиента и выдают результат, какие еще товары могут ему понравиться. Такая высокая скорость обработки достигается за счет распределенных вычислений.
Таким образом, для программистов работа с большими данными подразумевает решение сложной, противоречивой задачи: как обеспечить сбор и хранение постоянно растущего объема разнородных данных, достигая при этом очень высокой скорости обработки.
Обработка больших данных – непростая задача для программистов, для решения которой постоянно появляются новые методы и инструменты. Однако есть основной стек технологий, которые чаще всего встречаются в вакансиях.
Работая с большими данными, вы будете обращаться к разным парадигмам программирования: императивной, декларативной и параллельной. Например, для программирования баз данных на языке SQL используется декларативный подход, когда задается задача и нужный результат без указания промежуточных шагов. Чтобы справиться с быстрой обработкой большого массива данных, нужно применять многопоточные и параллельные вычисления. Один из вариантов решения проблемы – парадигма MapReduce. Это вычислительная модель параллельной обработки распределенных данных. Алгоритм позволяет разделить задачи между машинами кластера, чтобы обработка данных происходила одновременно на всех задействованных компьютерах.
На этот вопрос нельзя ответить однозначно. Раньше специализированными языками для аналитики данных считались R и MATLAB, но сегодня выбор у разработчиков больше. Возможно, вам не придется менять язык программирования, чтобы заниматься обработкой больших данных. Мы составили список наиболее востребованных языков программирования в этой сфере.
Работу с большими данными можно разделить на два направления. Первое – создание и поддержка инфраструктуры для сбора, хранения и обработки данных, второе – анализ и извлечение полезной информации. Для каждого из этих процессов нужны специалисты со знанием программирования. В первом направлении задействованы привычные для IT специальности – инженеры, архитекторы, администраторы, но владеющие технологиями для работы с большими данными. Анализ данных – более узкая специализация, часто требующая определенного образования или опыта.
Список возможностей для карьеры в сфере больших данных постоянно расширяется – с развитием технологий появляются новые, более узкие направления:
Программист с опытом разработки именно в сфере больших данных – все еще редкая находка для нашей страны. Белорусские компании расширяют фокус поиска и, в первую очередь, обращают внимание на способности кандидатов, а не опыт.
Программисту проще всего перейти на позицию инженера больших данных. Основная часть работы по-прежнему будет связана с кодом, а большие данные станут вашей специализацией. Начните с изучения подходящего для big data языка программирования. Беспроигрышным вариантом будет Java или Python. Если вы сейчас пишите на одном из этих языков, то осваивайте библиотеки для работы с данными. В Python полезно знать библиотеки Numpy, Pandas, SQLAlchemy.
Тем, кто только начнет разбираться с Java или Python, важно понять, как в этих языках реализуется многопоточность и сериализация и как работать с коллекциями. Для позиции junior этих знаний может быть достаточно. Дальше вы сможете изучать технологии, в зависимости от проекта, над которым будете работать. Если хотите повысить свои шансы на получение интересного предложения о работе, то осваивайте Hadoop.
С позиции инженера больших данных в перспективе вы сможете перейти на другую роль. Big data – обширная сфера IT, внутри которой будет появляться все больше специализаций, например, с акцентом на технологии (Hadoop разработчик). Возможно, вас заинтересует архитектура баз данных, и вы будете развиваться в этом направлении. Если у вас есть хорошая математическая подготовка, то можете попробовать себя в машинном обучении. В любом случае, работая над конкретным проектом, легче определиться, что вас увлекает: технические задачи или, например, анализ данных.
В big data сложно практиковаться вне компании – вы не можете дома написать приложение без доступа к терабайтам данных. Если вы уже работаете программистом в IT-секторе, то самым простым способом попробовать свои силы в big data будет проект в вашей компании. Проконсультируйтесь с коллегами, которые занимаются большими данными, узнайте, над чем они сейчас работают и какие технологии используют. Вы можете обсудить с руководством, как вам развиваться в сфере больших данных внутри компании. Если работодатель заинтересован в вашем росте, то он не откажет в помощи.