Как мы строим свою платформу для аналитиков

Привет, с вами снова Галина Вакулина, и в этой статье я расскажу, как мы строим платформу для аналитиков и избавляем их от ненужной работы.

Цель нашей команды — сделать так, чтобы в Точке работать с данными было удобно и быстро. Чем меньше времени аналитик тратит на рутину, тем больше сил у него остаётся на исследования, придумывание новых метрик, построение дашбордов, проверку гипотез и просто захватывающее копание в данных.

Как нам было плохо

Примерно год назад мы поняли, что аналитикам регулярно приходится делать кучу неизбежных действий, не связанных с анализом данных напрямую.

Например, возьмём аналитика Петю, который недавно устроился в Точку. Ему предстоит изучить, как здесь всё устроено: начиная с общих правил работы и заканчивая данными. Кстати, о том, как мы создали и перестроили онбординг аналитиков, я уже писала здесь.

Но каким бы хорошим ни было обучение, оно не меняет старые неоптимальные процессы и не сильно сокращает количество рутины.

Доступы. В первые же недели в Точке Петя сталкивается со сложностью: нужно как-то получить доступ к данным и системам.

При приёме на работу мы даём базовый набор доступов. Его достаточно для начала. Но вот Пете стали нужны данные, например, по сотрудникам Точки в 1С. И начинается квест: пойти в систему электронного документооборота, отыскать нужный процесс, указать ровно ту группу прав, которая необходима, запустить и куда-то сохранить себе ссылку для отслеживания процесса. А если нужен доступ к нескольким видам секретных данных — будь добр, запусти пачку процессов.

Петя применяет хитрость и идёт к более опытным товарищам за инструкцией к первому квесту.

Описание данных. Предположим, Петя справился с предыдущей задачей и получил доступ. Теперь он пытается вникнуть, а что это за данные, как часто обновляются, откуда и когда отгружены, и есть ли специфика работы с ними.

Пете нужно каждое утро делать рассылку с метрикой за предыдущий день. На какое время поставить расписание рассылки, чтобы быть уверенным, что данные обновятся, и метрика покажет верные цифры?

Идём на поиски нужной информации в базу знаний. Если там её нет (а такое случается нередко), ищем владельца и задаём ему кучу вопросов. И будем надеяться, что владелец не в отпуске 🙂 А мог и уволиться, тогда совсем беда. Придётся идти в общий чатик аналитиков и кидать клич в надежде, что найдётся кто-то в теме. Или искать дата-инженера, который затягивал данные, чтобы устроить ему допрос с пристрастием.

Ну и конечно же, никто не любит описывать свои данные! Ведь для этого нужно самостоятельно создать свою страницу в базе знаний, перенести туда название всех полей и по каждому написать какое-то пояснение. Брррр.

Так что, когда Петя просит кого-то сделать описание данных, его просьбы задвигаются в самый дальний угол бэклога.

Быстрый доступ к данным. Часто Пете бывает нужно написать быстрый select * from «какая-то таблица». Например, чтобы проверить, что «какая-то таблица» содержит нужные ему данные. Можно пойти на терминальный сервер, где стоит SQL-клиент, можно помучиться с самостоятельной установкой IDE себе на рабочую машину. Но и тут могут случиться неприятности. 

Загрузка собственных данных в базу. Иногда к Пете приходит его продакт и просит проанализировать клиентов по определённому списку. А список, конечно же, в файле Excel. Вот так задачка!

Петя выясняет, что в Точке есть несколько способов загрузки данных в хранилище. Нужно установить софт, настроить репозиторий и подключение к DWH. Чтобы со всем справиться, Петя штудирует длинную подробную инструкцию.

Командная работа с данными. Петя уже со всем освоился и теперь работает над проектом с несколькими коллегами-аналитиками. Для них даже завели свою схему данных «Petya». Да вот беда: коллеги такие деятельные, что постоянно что-то загружают или меняют в данных. Отследить, кто это сделал и почему, возможности нет. Если в схеме появляются суперчувствительные данные, которые не хотелось бы показывать новичкам, скрыть их тоже нельзя.

Короче говоря, живётся Пете хорошо, но хлопотно. То одно, то другое отвлекает от дела. Если с проблемой не получается справиться самостоятельно и клич по другим аналитикам не помогает, на помощь приходят дата-инженеры и решают задачу «на ручнике»: выдают доступы, разбираются в данных, загружают файлы.

Что мы решили с этим делать

У нас было 2 пакета травы, 75 таблеток мескалина, 5 упаковок кислоты… два питониста, полдюжины дата-инженеров и один технический писатель. И желание сделать жизнь аналитиков немного проще.

У одного из участников команды появилась идея создать единую платформу данных. Набросал структуру, показал коллегам. Один из них загорелся идеей, вдвоём запилили MVP. Остальным понравилось, и они тоже подтянулись: составили бэклог, запилили фичи и полетело...
В качестве стека использовали Django, PostgreSQL и JS — всё, что есть «на кухне у любой хозяйки». Задачи по разработке платформы включались в спринты команды параллельно с задачами из других проектов, без ущерба для личного времени.

Так платформа за год проделала путь от сайд-проекта до работающего продукта.

Что платформа умеет сейчас:

  1. Избавились от проблемы с доступами: интегрировались с общебанковской системой выдачи прав и засунули часть процесса «под капот».

    На главной странице платформы перечислены сервисы для аналитиков. Теперь, когда Пете нужен доступ к данным DWH или к другим сервисам, ему достаточно нажать всего одну кнопку. Нужный процесс сгенерируется сам, а его статус будет отображаться в интерфейсе платформы. Дополнительно ходить никуда не нужно. Здесь же можно и поменять пароль.

  2. Создали единое хранилище знаний с информацией о данных: можно в одном окне быстро найти нужную витрину, посмотреть её описание и расписание обновлений, проверить, есть ли у сотрудника права на доступ к этим данным. Если чего-то не хватает, можно прямо из описания витрины задать вопрос её создателям.

    А ещё для каждой новой витрины уже есть шаблон-описание. В него выгружаются все поля, их остаётся только заполнить.

  3. У продуктовых команд есть возможность создавать рабочие пространства: команда может управлять своими ETL-процессами, отслеживать их статус, настраивать алерты и отчёты, делиться запросами друг с другом. 

  4. На платформе можно писать SQL-запросы как с компьютера, так и с мобильного устройства. Аналитик может посмотреть план своего запроса и сделать его оптимальным, находясь где угодно: дома на диване, на даче или в пути.

  5. Ну и конечно все вопросы, обратную связь, новые задачи и сообщения об ошибках мы тоже принимаем через единую точку входа, не нужно никуда ходить и дополнительно кого-то искать.

Все аналитики Точки уже попробовали платформу, а среднедневное количество пользователей перевалило за половину от общего числа наших аналитиков.

Основные их потребности мы закрыли, в планах заинтегрировать нашу платформу со всеми сервисами, которые присутствуют в жизни аналитика: добавить в IDE поддержку Clickhouse и Hadoop, прикрутить Jupyter, добавить возможность настраивать расписание обновления дашбордов по зависимостям в хранилище.

Конечно, всё это не заменит всем привычные IDE или полноценные ETL, но сильно экономит время и силы при выполнении несложных задач и процессов.