Чем занимается ETL программист
Понять, какие функции возлагаются на программиста несложно. Для этого достаточно расшифровать аббревиатуру ETL:
- Extract или «извлечение». Информация достается из API-интерфейсов, облаков, других сайтов и CRM, SQL таблиц, NoSQL объектов, документов MS Excel, текстовых файлов txt и docx. Сюда же относится сохранение в промежуточной базе, где проводится проверка корректности и целостности собранных данных.
- Transform или «изменение». К этому пункту может относиться анализ информации, ее фильтрация и сравнение. Программисту часто приходится преобразовывать данные, так как они имеют различный формат: CSV, XML, JSON, тексты, объекты и массивы, а также другие варианты. В конце требуется очистка от дубликатов, спама и стандартизация.
- Load или «загрузка». Этот этап не такой простой. Информация сохраняется на сервере. Разработчику нужно отправить большие объёмы данных, поэтому здесь важно правильно распределять нагрузку.
ETL программисту приходится решать разные проблемы. Компания может работать с десятками источников информации, а форматы — исчисляться сотнями. Далеко не все они структурированы, при этом одни нужно конвертировать в пакетном режиме, а другие — в потоковом.
Классическая для любых крупных проектов сложность — масштабируемость. Со временем потребности фирмы меняются, требуются новые способы сбора и обработки данных. Если специалист не заложил в архитектуру программы возможность по ее быстрому изменению, то это растянет время работы.
Что должен знать и уметь ETL разработчик
Все необходимые навыки программиста делятся на так называемые hard и soft skills. К первым относятся технические знания и умения, ко вторым — личностные и коммуникативные качества. Обе группы одинаковы важны.
Каких-то конкретных требований к языку программирования нет. Можно изучить любой (C#, C++, Java, php, Python), но работать вам, скорее всего, придется с тем, что используется в компании. Так что при трудоустройстве или на этапе подготовки к собеседованию, возможно, придется освоить новый язык. Сделать это не так сложно, если вы владеете хотя бы одним.
Что нужно знать помимо этого:
- реляционные и нереляционные базы данных;
- языки SQL (для реляционных БД) и NoSQL (для нереляционных);
- СУБД: PostgreSQL, MySQL и MicrosoftSQLServer (для SQL), а также MongoDB и Redis (для NoSQL) — по одному на выбор для каждого типа БД;
- организацию БД по типу многомерных кубов и инструменты для этого: MDX, SSAS и OLAP;
- пространственное моделирование.
- платформы для интеграции данных: IBM InfoSphere, Open Text, Informatica Power Center, PervasiveDataIntegrator;
- облачные хранилища данных: Cloud BigData, Yandex.Cloud и Google Cloud;
- программы моделирования: Embarcadero и Toad Data Modeller;
- платформу SSIS для переноса данных;
- средства обработки, анализа и визуализации данных: Metabase, SAPBusinessObjects, Airflow, Apache Spark Streaming;
- компоненты экосистемы Hadoop: HDFS, Spark, Hbase, Hive, Sqoop Experience;
- набор продуктов Sybase: СУБД и ПО для управления, анализа информации.
Это далеко не весь список. Сюда же можно отнести Oracle GoldenGate, Docker, Kafka, а также другие программы и платформы. Кроме того, имеется внушительный список требований к софт скилам.
Разработчику ETL нужно отлично знать английский язык. В программировании это требование везде актуально, но именно здесь оно наиболее высокое. На это есть две причины: первая — отсутствие русской документации по специфическим платформам, вторая — специалисту часто приходится иметь дело с иностранными партнерами и коллегами.
Где учиться на ETL программиста
Есть несколько вариантов, как стать ETL разработчиком. Каждый метод обладает преимуществами и недостатками. Ниже рассмотрим их детально.
Вуз
На данный момент ни в одном вузе нельзя получить профессию ETL разработчика. Во-первых, это молодая профессия, информации по ней в русскоязычном сегменте мало. Во-вторых, она довольно узко специализирована, поэтому такому направлению не уделяют внимания.
Однако это не значит, что смысла поступать в вуз нет. ETL разработка требует хороших знаний в БД, типах данных, их анализе. Всему этому лучше обучают именно в университете.
Курсы
HR-специалистов в первую очередь интересуют навыки и знания кандидатов. Диплом — последнее, на что они обращают внимание. Поэтому будущий ETL разработчик обучение может пройти на специальных курсах.
По стоимости курсовая подготовка выйдет дешевле, чем в вузе, да и времени займет не так много, но информации здесь дадут значительно меньше. Кроме того, домашние задания будут сокращены, поэтому вам придется заниматься дополнительно.
- Изучите учебную программу. Убедитесь, что в расписании есть занятия по всем инструментам и технологиям.
- Посмотрите информацию о формате и организации занятий. Как они проводятся: онлайн или офлайн? Будут ли уроки доступны в записи? Можно ли отказаться от курса сейчас и пройти его позже с другой группой?
- Проанализируйте рецензии на сайтах Отзовик и IRecommend. На этих ресурсах пользователи должны идентифицировать свою личность, поэтому их аккаунты можно без проблем найти в социальных сетях (в первую очередь на LinkedIn). Посмотрите, работают ли эти люди в сфере программирования. Можете даже пообщаться с ними, спросить, изменилось ли их мнение.
- Оцените длительность курса. При этом нужно смотреть количество часов, отведенных на теорию и практику, отдельно — это более объективный показатель.
- Выясните о практических заданиях и дипломном проекте как можно больше. Важно понять, насколько они приближены к реальным рабочим задачам.
- Обратите внимание, есть ли пробные занятия, а также возможность вернуть деньги. Обычно такие условия предлагают крупные авторитетные платформы, которым нечего скрывать.
- Узнайте о лекторах и кураторах. Будут ли профессиональные ETL разработчики проводить курсы? Выясните, где они работают, а затем посмотрите информацию об этих специалистах на сайте их компаний. Если куратор или лектор ведет блог, пишет статьи на Хабре — это хорошо. Значит, он любит обучать.
- Уточните, содействует ли образовательная платформа в трудоустройстве выпускников. Часто компании ограничиваются лишь помощью в составлении резюме и подготовкой к собеседованию.
Самостоятельное обучение
Почти всю информацию, которую преподают на курсах за деньги, можно бесплатно найти в интернете в формате видео, статей и книг. Поэтому самостоятельное обучение является отличным вариантом получения профессии ETL разработчика. Но есть пара недостатков, к которым нужно быть готовым:
- Нет эффективного плана и графика обучения. Это снижает результативность, но достижению цели особо не мешает.
- Нет общения с преподавателем. Иногда очень нужен человек с опытом, который подскажет, как решать ту или иную проблему.
- Нет сравнения с другими. А значит, нельзя точно сказать, насколько быстро вы продвигаетесь в учебе.
Впрочем, всё это можно компенсировать, обратившись к ментору. Найти его можно на специальных площадках за небольшую плату. О том, как это сделать, мы рассказывали здесь.
Полезные книги, которые помогут изучить ETL:
- «SQL для простых смертных» Грабер Мартин;
- «Язык PL/SQL», Задворьев И. С.;
- «Программирование баз данных SQL» Карвин Б.;
- «Основы Data Science и Big Data», Силен Д., Мейсман А.;
- «Data mart consolidation: getting control of your enterprise information» (витрины данных);
- «Dimensional Modeling: In a Business Intelligence Environment» (трехмерное моделирование);
- «Хранилища данных и средства бизнес-аналитики», Точилкин;
- «Building a data warehouse With examples in SQL server», Vincent Rainardi (хранилища данных);
- «Oracle PLSQL для администраторов баз данных» Нанда А., Фейерштейн С.;
- «Oracle для профессионалов», Том Кайт;
- «Oracle PLS.QL. Для профессионалов» Фейерштейн С., Прибыл Б.;
- «The data warehouse ETL toolkit Practical Techniques for Extracting, cleaning, conforming, and delivering data» (интеграция данных);
- «Microsoft SQL Server 2012. Руководство для начинающих» Душан Петкович;
- «Microsoft SQL Server 2014 Unleashed», Ray Rankins, Paul Bertucci, Chris Gallelli, Alex Silverstein;
- «Проектирование и реализация баз данных Microsoft SQL Server 2000»;
- «IBM Cognos business intelligence v10.1 handbook» (COGNOS BI)
- «Data management and reporting made easy with SAS learning edition 2.0» (анализ данных SAS);
- «Handbook of data visualization», C. Chen, W. Hardle, A. Unwin (визуализация данных).
Как устроиться на работу ETL разработчиком
Для начала уделите внимание резюме. «Настраивайте» его под конкретную вакансию ETL разработчика.
Всю информацию нужно уместить на одной странице формата A4, поэтому пишите кратко, используйте списки и инфографические элементы. Чтобы упростить задачу, воспользуйтесь онлайн-конструктором.
Основные разделы резюме:
- Ф.И.О., желаемая зарплата, контакты — в «шапке» документа.
- Опыт работы.
- Навыки — список из 10-12 важнейших умений.
- Образование и дополнительные курсы.
- Краткий рассказ о себе с профессиональной точки зрения.
- Качества — перечень личностных особенностей из 3-4 пунктов.
Показать свои навыки можно с помощью портфолио. Но откуда его взять новичку? На биржах фриланса задачи по ETL разработке встречаются крайне редко. Есть 2 способа решения проблемы:
- Откликаться на другие заказы, связанные с работой с БД, анализом данных, парсингом. То есть выполнять все ETL процессы, но в отдельных задачах.
- Брать заказы на зарубежных биржах, там их в десятки раз больше. Единственный нюанс — придется подтянуть знание английского.
Чтобы устроиться на работу ETL разработчиком, придется пройти не одно собеседование. Запаситесь терпением. Готовьтесь к каждой встрече тщательно, приходите заранее. Помните, что решение о трудоустройстве на 50% зависит от ваших личностных качеств: коммуникабельности, ответственности, стрессоустойчивости. Проявите их на интервью.
- Подберите комфортный формат обучения. Оцените плюсы и минусы каждого, чтобы принять верное решение.
- Уделяйте время самостоятельной подготовке. Читайте профильную литературу, изучайте видеоуроки на YouTube.
- Приобретите минимальный опыт. Сделать это можно на биржах фриланса.
- Составьте качественное резюме. Обратите внимание не только на содержание, но и на оформление.
- Готовьтесь к собеседованиям. Не переживайте, если с первого раза вас не возьмут на работу. Запросите обратную связь, чтобы понимать, какие скилы еще стоит «прокачать».