Люди, которых нужно первыми нанимать в отдел аналитикиПривет! Меня зовут Даша Ульянова, я Product Manager в karpov.courses.Сегодня расскажу про инженеров данных, или Data Engineer. Это специалисты, которые делают первый шаг в работе с данными, чтобы аналитики и специалисты Data Science могли быстро и удобно использовать полезную для бизнеса информацию и строить прогнозные модели.Даша УльяноваProduct Manager в karpov.coursesЧто будет сегодня в статье:Что за данные, с которыми надо работатьКак собираются и обрабатываются данные: ETLКуда сохраняются данные: хранилище данных Data WarehouseКак используют данные потом: BI-системаЧто делают Data Scientist и какие данные им нужны для работыКак собирают большие данныеТехнологии, с которыми работают инженеры данныхЧто в итоге делает инженер данных и как это выглядит в реальной жизниЧто нужно знать для обучения в Data EngineeringЧто за данные, с которыми надо работатьКомпании, в которых работают инженеры данных, собирают информацию из разных источников, например:сайт, на котором клиенты читают последние новости и делают заказы;метрики, которые подключены к сайту и фиксируют поведение пользователей;CRM-система для общения с клиентами.В каждой из этих систем появляется разная информация, которую потом можно проанализировать и использовать — этим занимаются аналитики данных и Data Scientist.Но пока что с данными сложно работать, потому что они никак не обработаны. Аналитиками и DS-специалистам нужно идти в метрики и CRM и смотреть, что творится там.Задача инженера данных — достать информацию оттуда, где она копится, и сделать так, чтобы работать с ней было удобно и быстро.Вот как это происходит.Как собираются и обрабатываются данные: ETLДля сбора данных Data Engineer должен написать программу для сбора сырых данных из разных источников. Нельзя просто переносить данные вручную в одно место: это сложно, долго и просто невозможно, если компания планирует развиваться.Сырые данные проходят длинный путь до того, как на них посмотрят аналитики.Проблема в их разнородности: данные из разных источников, поэтому среди них и отчёты по продажам, и метрики посещения разных страниц, и статистика рождаемости, и вообще всё, что может собрать компания.Процесс сбора и обработки такой информации называется ETL и состоит из трёх этапов:E — Extract — извлечение.T — Transform — обработка.L — Load – загрузка в хранилище данных.Инженер данных настраивает процесс извлечения, обработки и загрузки данных.Это должна быть автоматизированная работа, которая выполняется без участия человека. Инженер только присматривает за ETL, улучшает процесс и чинит поломки.Куда сохраняются данные: хранилище данных Data WarehouseКогда данные собраны и обработаны, их нужно положить куда-то в одно место.Можно использовать базы данных, которые сохраняют данные клиентов или список товаров на складе. Базы данных подходят для бизнес-работы, но для задач аналитики не годятся, потому что плохо справляются с информацией разных форматов.Поэтому в DS используют хранилища данных, или Data Warehouse. Они оптимизированы для работы с информацией разного вида: данные делятся по разным типам, сохраняются в отдельные таблицы, между таблицами налаживаются сложные связи — теперь их можно использовать.Инженер данных работает с хранилищами данных.Как используют данные потом: BI-системаЧтобы аналитики и Data Scientist могли использовать всё, что инженер данных собрал, обработал и выгрузил, к хранилищу данных нужно подключить инструменты BI: дашборды, таблицы, графики.Это выглядит так:Что делают Data Scientist и какие данные им нужны для работыData Scientist работают с хранилищами данных, но не только. Ещё DS создают модели для прогнозирования, которые отвечают на вопросы: сколько компания заработает в третьем квартале? Стоит ли сейчас выпускать новый продукт в этом регионе?Обычный процесс ETL охватывает только те данные, которые выбрали заранее, поэтому в хранилище данных попадает только определённая информация. Но мы не знаем, что понадобится DS для создания модели, поэтому нам нужна вся возможная информация.Вот что получается: специально для DS-специалистов инженер данных создаёт отдельные схемы обработки данных. Это уже не ETL, а ELT: сначала идёт извлечение всех данных и загрузка (Extract + Load), а уже потом обработка (Transform).Эти данные не попадают в общее хранилище данных, чтобы не устроить там беспорядок. Вместо этого данные попадают в озеро данных, или Data Lake. Озеро данных позволяет хранить данные в любом виде — как сыром, так и обработанном.Инженер данных налаживает процесс доставки сырых данных в озеро данных Data Lake.И только после загрузки в озеро специалисты DS определяют, как именно их обрабатывать, чтобы построить подходящие прогнозные модели.Как собирают большие данныеВ Data Lake хранятся большие данные, или Big Data. Этот термин часто используется, и не всегда правильно. У Big Data есть чёткое определение. Это правило четырёх V:Volume — объём. Данных действительно очень много.Variety — разнородность. Информация разная, чтобы Data Scientist мог использовать всё что есть.Veracity — достоверность. Данные должны быть правдивыми.Velocity — скорость. Большие данные должны обрабатываться быстро.Для обработки Big Data в больших компаниях нужно много инженеров данных — представьте, сколько записей каждую секунду собирают Netflix, Youtube, Яндекс или Сбербанк. Поэтому без работы эти ребята не останутся.Технологии, с которыми работают инженеры данныхТехнических инструментов много, но мы рассмотрим самые известные.Самый популярный язык программирования для автоматизаций — Python. Используют его и в Data Engineering.На работе с данными остановимся подробнее.Когда данные собираются по строгим правилам Извлечение-Обработка-Загрузка (ETL), это происходит по расписанию: раз в месяц, неделю, день. Это синхронное взаимодействие: вся информация ждёт свой очереди для отправления в хранилище данных.Но иногда данные нужно собирать в реальном, потоковом времени — то есть как только они появляются. Сбор данных в потоковом режиме — это асинхронное взаимодействие. Информация не ждёт оговоренного времени, а сохраняется сразу после своего появления.Для такого быстрого сбора данных используется технология брокера сообщений Kafka.Когда данных очень много, они хранятся на нескольких серверах — не только потому, что не умещаются на одном, но и для безопасности. Если один сервер сломается, на остальных сохранится копия.Каждый сервер называется узлом, а все серверы одной компании — кластером. Для работы с распределёнными по разным узлам данными тоже нужна специальная технология — набор инструментов Hadoop.Если в Data Science больше математики и статистики, то в Data Engineering больше разработки. При этом инженер данных использует узконаправленные технологии, которые редко нужны обычному backend-разработчику.Что в итоге делает инженер данных и как это выглядит в реальной жизниData Engineer формирует архитектуру работы с данными: настраивает автоматический сбор данных из всех подсистем компании: CRM, сайт, метрики;обрабатывает сырые данные по алгоритмам ETL, ELT или каким-то особым методом для спецзадач;иногда сохраняет всю информацию в базы данных, но чаще в озёра и хранилища;всё это происходит на распределённых облачных серверах.На нашей программе есть проект из реальной жизни Data Engineer. В нём нужно будет построить сводный отчёт по продажам за определённый период времени из разных источников. Для этого нужно: очистить данные;прописать условия и метрики;подготовить базы данных и архитектуру их хранения;поработать со словарём данных и обработать запросы;разработать плагины, написать приложение и вычислять отчёт на каждый месяц;построить сводные таблицы, запустить виртуальную машину, настроить процесс в облаке;разработать дашборд с вакансиями аналитиков и банковский кредитный скоринг и оценку.Что нужно знать для обучения в Data EngineeringИнженер данных — это смесь аналитика и технолога, он умеет разбираться в сложных системах, работает с кодом, базами и другими хранилищами данных.Если вы решили начать учиться на Data Engineer, то вот что стоит знать для начала:синтаксис Python: понимать структуру данных и знать принципы объектно-ориентированного программирования;базовый синтаксис SQL: уметь составлять подзапросы и работать с оконными функциями;работать с командной строкой, знать основные команды Linux.Профессия подойдёт:аналитикам данных, которые постоянно взаимодействуют с базами данных, но хотят лучше разобраться в ETL-процессах и выйти на качественно новый уровень в аналитике;BI-разработчикам, которые развивают системы бизнес-аналитики и хотят освоить архитектуру современных хранилищ данных и научиться их проектировать;Backend-разработчикам, которые хотят применить свой опыт для решения задач, связанных с хранением и обработкой больших данных.Мы уже рассказывали подробно о том, как учатся в школе karpov.courses. Если вам интересно, почитайте статьи о том, как у нас устроено:сопровождение студентов,помощь в трудоустройстве,добавление учебных задач.«Инженер данных» — наш курс по Data Engineer. Он охватывает ядро работы и ключевые инструменты и навыки, которыми должен владеть любой инженер данных. Ещё посмотрим на ответвления работы и научимся работать со смежными дисциплинами. Программу курса Start DE можно подробнее посмотреть на странице курса:Курс «Инженер данных»
По факту это кабанчики которые заменяют отдел, от кубера с хадупом до БД с дагами на питоне в airflow. Платить за весь отдел одному кабанчику естессна не будут
Можно попробовать сразу всё) Но постепенно
Инженииииир
Красивое слово, правда?
Но я не хочу отдавать свои данные...
Не отдавайте! Будьте тем кто их собирает