9 испытаний, или будни современного инженера данных

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

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

Инженеры данных должны учиться по ходу работы 

JavaMentor
JavaMentor

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

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

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

Чрезмерно большой объем данных для обработки 

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

Низкая производительность 

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

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

Сложности с доступом к данным 

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

Обслуживание конвейера данных 

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

К счастью, происходит смена парадигмы программирования: вместо императивного приходит декларативное. Смещение акцента в сторону систем, не требующих написания кода (no-code) или предполагающих минимальный объем программирования (low-code), снимает большую часть забот по обслуживанию. 

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

Управление данными или его отсутствие 

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

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

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

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

Человеческий фактор 

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

Отсутствие четкой стратегии 

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

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

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

Сопротивление переменам 

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

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

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

В качестве альтернативного варианта можно рассмотреть применение другого ПО. Но предварительно следует убедиться, что оно соответствует вашей бизнес-стратегии. 

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи SeattleDataGuy: 9 Real Challenges That Data Engineers Face

Предыдущая статьяДвоичный поиск в Swift и расширение возможностей коллекций
Следующая статья9 советов, как выделиться среди Java-разработчиков