Причём здесь дата и почему ею должен заниматься целый инженер?
Учёный может открыть новую звезду, но не сможет её создать.
Ему придётся просить инженера сделать это.
Информация может быть разной: от статистических данных потребителей зубной пасты до списка переменных и их значений в условиях некой формулы. Как раз благодаря возможностям сбора, накапливания и последующей обработки данных получилось создать все концепции и технологии “умных” городов, “интеллектуальных” алгоритмов рекомендаций и прочие новомодные взаимодействия с информацией.
Накопленная информация сама по себе ничего не даёт: для получения выгоды её нужно обработать. Тут в дело вступает дата-инженер.
Чем дата-инженер отличается от аналитика?
Дата-инженер (от англ. data engineer), как можно понять по названию профессии, напрямую занимается доставкой, хранением и обработкой информации. Он выстраивает рабочие процессы, конвейеры обработки данных и ETL-процессы (обработка/преобразование информации).
Термин дата-сайентист (от англ. data scientist) у всех на слуху и обозначает коллегу дата-инженера. С учётом современных трендов на объединение или работу в команде, штатные единицы сайентиста (ученого, аналитика) и инженера представлены либо в одном лице, либо эти специалисты тесно сотрудничают друг с другом.
Итак, инженер выстраивает все каналы связи – от процесса сбора информации до её преобразования в нужный формат. Как в каком-нибудь промышленном симуляторе Factorio или Satisfactory: он находит источник данных, выстраивает конвейер для их передачи, а также создаёт инфраструктуру для обрабоки и преобразования информации.
Дальше вступает в дело аналитик: получив нужные данные он трансформирует их в необходимую форму. Именно аналитики создают различные модели, графики и прочую визуализацию. И они же красиво подают менеджменту выводы в текстовом формате. Грубо говоря, инженер собирает информацию, проводит её первичную обработку и отправляет аналитику. Тот же издевается над данными по полной: анализирует, проверяет гипотезы и на основе полученной информации создает новые знания и прочую ценность для бизнеса.
Что нужно знать дата-инженеру?
Так как наша задача – собрать данные, сохранить их, преобразовать и отдать дальше, то основными языками для инженера являются Python и SQL. С учётом популярности облачных технологий – ещё и Java (вкупе с её универсальностью). Нужно также разбираться в облачных платформах.
Для первичной обработки информации и организации её хранения инженеру понадобятся знания бекенда и в области разработки ПО. В качестве основного и самого популярного хранилища выступают СУБД (SQL и noSQL), поэтому в начале пути можно сфокусироваться на них.
Базовые требования
Дата-инженер работает с данными, а значит ему нужно знать о данных всё:
- Алгоритмы и структуры данных. Здесь важна не теоретическая подготовка с вызубренными определениями, а понимание всех рабочих процессов.
- SQL – язык структурированных запросов. Почти каждая реляционная СУБД поддерживает этот язык организации запросов для получения или обработки данных.
- Python, Java/Scala. Python считается одним из лучших языков для работы с данными (и, определенно, самым популярным), а Java/Scala следует знать, поскольку на них написаны почти все инструменты для работы с информацией.
- Инструменты для работы с большими данными (Hadoop, Spark, Kafka).
- Облачные платформы (MS Azure или Amazon Web Services).
- Распределённые системы. Большие объёмы данных предполагают, что работать с ними придётся в кластерах. Новичкам стоит прочесть книгу Эндрю Таненбаума “Распределённые системы”. Для начала она может показаться сложной, но потом это пройдет.
- Конвейеры данных. Выстраивание путей сбора, обработки и хранения информации занимают большую часть рабочего времени дата-инженера.
Заключение
От дата-инженера напрямую зависит возможность компании развиваться, получая ценность из генерируемой ею информации. Тренд на обработку данных, особенно в больших объёмах, только усиливается – в обозримом будущем представители этой профессии не будут иметь проблем с трудоустройством.
Порог входа в профессию довольно высок, причём даже от новичка требуется понимание технологий, а не простое заучивание методов работы с инструментами, но в итоге потраченные усилия окупятся.
Источник: proglib.io