Бакетинг на любом объеме данных в Apache Spark SQL
Доклад отклонён
Целевая аудитория
Тезисы
Одной из задач, решаемых компанией “ЦРПТ” (бренд “Честный ЗНАК” — национальная система маркировки и прослеживания продукции), является обработка данных по движению лекарственных препаратов. Данных порядка 30Тб, ежедневный инкремент ~ в среднем 250Гб в день. Обработка только этих данных занимала изначально ~ 7 часов (позже сокращено до 3,5 часов) на кластере 120 узлов, 2 000 ядер, 46Tb Mem. На основании эти данных строится большое количество агрегатов. Для сокращения времени формирования последующих агрегатов, а также сокращения времени загрузки инкремента было решено использовать механизм, известный, как бакетинг.
Бакетинг — это метод оптимизации, реализованный в Apache Spark и Hive, использующий бакеты (и бакет столбцы) для сегментирования, предсортировки данных и исключения шафла. Идея состоит в том, чтобы оптимизировать join запросы, избегая шафл (или exchanges) между таблицами, участвующими в джоине. Бакетинг приводит к сокращению обмена данными и, следовательно, стейдджей приложения. Кроме того бакетинг хранит данные в предсортированном виде, что ускоряет последующие расчеты, и позволяет использовать bucket pruning, аналогичный partition pruning.
Проблемой этого метода стала отказоустойчивость. В случае, если на каком-то этапе джоба завершалась с ошибкой, расчет приходилось запускать заново. Это создавало ограничения на использование технологии на большом объеме данных. Мы разработали решение, позволяющее применять этот подход на потенциально неограниченном объеме данных без потери прогресса в расчете. Кроме того, указанный метод ранее нигде не описывался, поэтому представляет интерес для оптимизации вычислений с использованием фреймворка Apache Spark.
Мой опыт работы в основном связан с разработкой в больших данных и созданием сервисов облачных вычислений. Работал с Apache Hadoop, Spark, Kafka, Kubernetes и NoSQL. В свободное время разрабатываю решения для инвестиционных рынков. Изучаю алгоритмы машинного обучения и двигаюсь в сторону ИИ (не псевдо).
“ЦРПТ” (бренд “Честный ЗНАК” )
Видео
Другие доклады секции
BigData и машинное обучение