Доклад

Datapipe — трансформация данных при помощи K8s и S3

Мне хотелось бы рассказать о собственной разработке нашей компании — Python-библиотеке Datapipe.

Datapipe позволяет разработчику управлять метаданными, а также строить последовательные цепочки трансформаций данных. Datapipe отслеживает изменения в данных согласно критериям, указанным разработчиком. Использование K8s и S3 позволяет достичь более высокой эффективности обработки данных, чем в классических реляционных СУБД:

  • Нет необходимости аренды мощного инстанса СУБД на постоянной основе 24 часа в сутки. Процессинг работает на нодах K8s, которые тарифицируются только по факту использования.
  • Хранение данных на S3 в формате parquet со сжатием обладает преимуществами секционирования и кластеризации при меньших удельных затратах на хранение байта информации в сравнении с облачными управляемыми СУБД.

Также процессинг данных с использованием Datapipe обладает следующими особенностями:

  • Трекинг и инкрементальный досчет изменений в данных согласно настроенной гранулярности. Метаинформация позволяет батчевать и обрабатывать данные согласно пользовательским нуждам. Например, признаком одного батча может быть разделение по дням, неделям, месяцам. Или по геолокации, городам, странам. По идентификаторам пользователей, магазинов, складов.
  • Вычисления отвечают требованию Durable execution, так трекинг изменений позволяет продолжить вычисления с последнего успешного шага и батча данных при возникновении аварии.
  • Возможность масштабирования позволяет обрабатывать данные по одному или несколько батчей одновременно за одну итерацию. Ray Executor обеспечивает параллельный запуск нескольких итераций.
  • Обработка данных в режиме реального времени реализована как инкрементальный досчет точечных изменений во входных данных, которые пройдут по всему вычислительному графу.
  • Для развития и поддержания проекта достаточно экспертизы Python-разработчика с пониманием основ процессинга данных и K8s.

Спикеры

Доклады