Инженеры Pinterest перестроили систему загрузки данных. Старая система работала с задержкой в сутки. Это тормозило аналитику и машинное обучение.
Новая система обрабатывает только изменённые записи. Раньше перезаписывалось всё. Это дало большую экономию ресурсов.
Задержка сократилась до 15-60 минут. Раньше данные шли больше суток. Теперь аналитика работает почти в реальном времени.
Система поддерживает удаление записей. Это важно для соблюдения правил. Старый подход этого не умел.
Решение построено на Change Data Capture. Данные ловят из MySQL, TiDB и KVStore. Потом их пишут в Kafka.
Потоковые задачи выполняет Flink. Пакетные — Spark. Всё хранится в таблицах Iceberg на S3.
Новые конвейеры настраиваются через yaml-файлы. Мониторинг встроен сразу. Операционная сложность снизилась.
Система обрабатывает петабайты данных. Она масштабируется на тысячи конвейеров. Это единый каркас для всех команд.