Что такое ETL
Что проверяют
Видите ли вы конвейер данных целиком: не расшифровку трёх букв, а что происходит при повторном запуске, при смене схемы источника и при опоздавших данных. Для дата-инженера это и есть работа.
Как отвечать
Extract это забор данных из источников: реплики баз, API, файлы, очереди. Забирают обычно инкрементально, по курсору или метке изменения, а не всю таблицу каждый раз. Transform это приведение типов, чистка, дедупликация по ключу, join со справочниками и расчёт витрин. Load это запись в целевое хранилище.
Отдельно стоит сказать про ELT. С колоночными хранилищами сырьё сначала грузят как есть, а преобразуют уже внутри хранилища запросами. Так сохраняется исходный слой, и пересчёт после найденной ошибки не требует повторного похода в источник, который к этому моменту данные мог перезаписать.
Инженерная часть, за которую ставят плюс: идемпотентность (повторный запуск не задваивает, потому что партиция перезаписывается или запись идёт upsert по ключу), нарезка по партициям, проверки качества после загрузки (число строк, доля пустых значений, ссылочная целостность), оркестрация зависимостей и перезапусков, отдельный режим backfill для исторических периодов.
Где спотыкаются
Делают шаг загрузки неидемпотентным. Обычный insert после ретрая даёт задвоенные строки, а витрина считается по ним молча и без ошибки.
Берут инкремент по полю изменения и не думают про опоздавшие и удалённые записи. Строка, доехавшая с задержкой, в окно уже не попадает, а удаление в источнике в приёмнике не отражается никогда, если не тянуть журнал изменений или не сверять срезы.
Считают пайплайн исправным, раз задача зелёная. Без проверок на выходе пустая или частичная загрузка выглядит как успех, и о проблеме сообщает аналитик через неделю, когда отчёт разошёлся по компании.