Бизнес

Как в «Авито» реализованы самообслуживание при разработке и размещении витрин данных

Краткое резюме

В компании «Авито» разработана концепция self-service, которая позволяет пользователям самостоятельно создавать и модифицировать объекты хранилища без участия Data-инженеров. Это ускоряет процесс подготовки данных и снижает нагрузку на специалистов.

Меня зовут Николай Огоров, я специалист по обработке больших данных в компании Авито. Вместе с коллегой Айком Оганесяном мы разработали инструменты, которые позволяют пользователям самостоятельно создавать витрины в хранилище Авито без помощи Data-инженеров. Речь идёт о концепции self-service, которая даёт возможность пользователям оперативно и без лишних сложностей создавать или модифицировать объекты хранилища. Эти объекты интегрируются в систему безопасно и не требуют участия специалистов по данным. **Проблема** Авито — крупная компания, и для её работы требуется множество различных отчётов и данных. Разные сотрудники нуждаются в разных данных для разных целей и в различных форматах. Подготовка всего этого требует значительных ресурсов. Хотя инженеры могут справиться с этой задачей, нецелесообразно тратить их время на рутинные операции. Поэтому возникла необходимость в автоматизации процесса развёртывания новых объектов. **Решение** Мы разработали концепцию, которая позволяет сотрудникам, нуждающимся в новых данных, самостоятельно задавать правила их поиска и подготовки. Они могут создавать витрины, загрузчики данных, словари и другие объекты хранилища. Витрина (datamart) — это специальная таблица базы данных, структура и код которой описаны в SQL-файле. Этот файл хранится в нашем git-репозитории (Bitbucket). Витрина состоит из трёх компонентов: * **шапка** — yaml-словарь с параметрами, необходимыми для запуска витрины; * **DDL** — описание структуры витрины; * **DML** — код, который запускается на регламенте и обновляет витрину. Регламент представляет собой ацикличный граф, узлами которого являются витрины. Он запускается раз в сутки и последовательно выполняет код всех витрин. Выполнение витрин происходит от корня к листьям, и пока не будут выполнены корневые витрины, листовые не запустятся. Мы также разработали систему тестов, которая помогает пользователю пройти путь от идеи витрины до её появления на регламенте. Это позволяет пользователям самостоятельно реализовывать свои идеи без привлечения Data-инженеров. Таким образом, мы освободили инженеров для решения более сложных задач, а пользователи получили возможность самостоятельно управлять своими данными. **Результаты** Нашему хранилищу DWH уже 11 лет. У него 4500 пользователей и более 4500 витрин, из которых более 900 — критичные. Всего на регламенте за сутки обрабатывается более 30 тысяч тасок. У нас примерно 660 авторов витрин. Время развёртывания минорной витрины составляет около 1 минуты, а для серьёзных объектов — до часа. Количество витрин увеличилось благодаря тому, что мы предоставляем пользователям возможность самостоятельно создавать их и интегрировать в регламент.

Фильтры и сортировка