Data Platform в Т‑Банке
Data Platform — это корпоративное хранилище данных, или DWH (Data Warehouse), и целый набор разных инструментов для эффективной работы с данными. Для начала определим, что представляет собой Data Platform в Т‑Банке:
- более 6000 батчевых процессов загрузки, трансформации и выгрузки данных;
- сотни потоков загрузки слабоструктурированных и неструктурированных данных из внешних систем;
- сотни источников данных;
- больше 200 ТБ сжатых структурированных данных в кластерах Greenplum и Clickhouse;
- более 2 ПБ сжатых данных в кластере Hadoop;
- несколько сотен сотрудников: архитекторы, аналитики, разработчики (ETL, BI, Python, Java),
data-инженеры , SRE- иQA-инженеры .
Каждый сотрудник играет в процессе определенную роль: отвечает за часть платформы и некоторые этапы на пути данных из систем источников к потребителям. Попробуем разобраться, какие обязанности есть у
Перейдем к конкретике.
На практике круг обязанностей
Чаще всего
- извлечения данных оптимальным способом;
- подготовки данных, их очистки и обогащения;
- доставки данных потребителю в удобном формате;
- хранения данных: выбор подходящего способа хранения, оптимальной структуры, сжатия, секционирования и глубины;
- развертывания и поддержки инфраструктуры, мониторинга ее состояния.
Портрет
В зависимости от специфики задач в разных организациях складывается разное видение роли
Computer science
Специалист знает базовые алгоритмы, умеет пользоваться основными структурами данных и оценивать сложность алгоритмов. Он владеет ООП (
Языки программирования.
Знает Python или Java.
Работа с данными
Для работы с данными необходимо владение целым набором инструментов:
- SQL и разные диалекты —
Postgres/Greenplum , Oracle, Clickhouse, Hive; - устройство реляционных баз данных;
- разновидности
NoSQL-решений — когда и зачем их выбирать и как готовить; - технологии BigData (
Hadoop-стек ); - брокеры сообщений (Kafka).
Основы хранилищ данных
Еще одна обширная область. Вот в чем нужно разбираться:
- теория построения хранилищ данных, слои и архитектурные подходы;
- моделирование и нормализация данных;
- ETL, способы организации конвейеров и их оптимизации;
- навыки работы с
ETL-инструментами и инструментами управления конвейерами обработки данных, такими как Apache Airflow или Apache NiFi или Apache Flink.
Инженерные навыки
Речь идет о базовых инженерных навыках и
- Linux на уровне опытного пользователя;
- навыки работы с Git;
- понимание, что такое
CI/CD и зачем оно вообще нужно; - навыки обращения с
docker-контейнерами ; - умение работать с k8s- и
cloud-решениями .
Soft skills
Иногда
Получается,
Приведу пример. Вот наборы навыков, которые могут быть у двух разных
- Эксперт в SQL, большой опыт работы с RDBMS и NoSQL, имеет глубокие знания в областях DWH и ETL, умеет на хорошем уровне писать код на Python, не понаслышке знаком с CS, Linux, Docker.
- Эксперт в CS, мастерски владеет Java, Python и не только, хорошо знает Linux, Docker, умеет писать сложные
SQL-запросы , хорошо понимает, как работают RDBMS- иNoSQL-решения , разбирается в DWH и ETL.
Когда в одной команде оказываются специалисты с сильными знаниями в разных областях, получается эффективно решать широкий спектр задач. Кроме того, ускоряется обмен знаниями и опытом: происходит «взаимное опыление».
Раз уж речь зашла о командах, расскажу, где можно встретить
Путь
С ключевыми навыками разобрались. Теперь поговорим о том, как становятся
ETL-разработчик ;ML-разработчик ;- Backend- или
fullstack-разработчик .
Чтобы специалисты знали, в какую сторону развиваться, чтобы стать
Матрица компетенций
В матрице детально описаны требования, которые актуальны для
- Java, Flink, Kafka, Cassandra и другие нужны для стриминговой обработки данных.
- Java, NiFi, Hadoop, Kafka, Redis и другие актуальны для
core-команды , занимающейся развитием и эксплуатацией Apache NiFi. - Python, Airflow, Greenplum, Clickhouse, Hadoop и другие необходимы для
core-команды , занимающейся развитием batch ETL фреймворка на базе Apache Airflow.
Универсальность матрицы еще и в том, что в ней есть общие разделы. Они будут в той или иной степени полезны любому
- основы хранилищ данных;
- SQL;
- теория СУБД, RDBMS, NoSQL, MPP;
- инженерные навыки;
- алгоритмы, структуры данных, сложность алгоритмов, паттерны проектирования.
Вся информация в матрице разделена по уровням компетенций — от junior до senior+. Это помогает понять, какие знания необходимы
Периодически мы устраиваем аттестации — «экзамены» для
Сейчас потребность в
Собеседование data-инженера в Т‑Банке
Общий порядок интервью
Конечно, кандидатов на позиции
Техническое интервью. При общении с соискателями мы всегда выясняем, какие навыки развиты у них особенно хорошо. Обычно стандартных полутора часов на это не хватает. Поэтому собеседование на позицию
- Секция «Data Engineering + логика». Длительность — 90 минут. На этой секции мы проверяем базовые знания по направлению data engineering и оцениваем уровень погружения во множество направлений. По итогам встречи мы формируем профиль навыков, чтобы понять, в какой команде кандидат сможет работать эффективнее всего. На этой же встрече мы с соискателем пишем немного кода и решаем «детские» логические задачки.
- Секция SQL. Длительность — 60 минут. В этой части технического интервью мы решаем задачки с использованием SQL, проверяем навыки работы с данными с использованием SQL и опыт использования разных синтаксических конструкций.
- Алгоритмы. Длительность — 60 минут. Проверяем знания по алгоритмам и структурам данных, предлагаем решить несколько задачек, требующих написания кода. На этой секции нужно показать навыки работы с основными структурами данных: строки, списки, деревья, ассоциативные массивы, векторы. Кандидату пригодится умение реализовывать базовые алгоритмы: поиск элементов в коллекциях, обход деревьев, сортировки, динамическое программирование. Изучая решения соискателя, мы проверяем умение оценить сложность алгоритмов, обсуждаем
O-нотацию , вычислительную сложность решения и расход памяти.
Знакомство с командой. Тех, кто успешно прошел секции технической части, мы приглашаем на финальное интервью с командой. Напомню, что на каждом этапе технического интервью мы занимаемся построением детализированного профиля компетенций кандидата. Поэтому команды могут легко понять, подходит ли им специалист с такими навыками и знаниями. Кандидатам процесс (особенно третий этап) тоже помогает понять, подходит ли им компания. На финальном этапе кандидаты знакомятся с командами, обсуждают особенности проектов и конкретные задачи. И после этого наш будущий коллега выбирает команду, в которой ему будет интереснее всего работать.
Надеюсь, благодаря этому тексту стало понятнее, как становятся