Как мы внедрили BI-платформу и начали развивать self-service аналитику
Всем привет! Меня зовут Дима. Я BI Engineering Manager в inDriver. В компанию я пришел в марте 2020 года развивать направление Business Intelligence. О том, как это происходило и происходит сейчас, с какими вызовами приходится сталкиваться и какие у нас планы на будущее по этому направлению, читайте далее в этой статье.
С чего все начиналось
Первым делом надо было понять, что уже используется в компании для построения дашбордов и автоматизации процесса репортинга. На тот момент это был самописный сервис, который позволял выбирать и выгружать отчетность, задавая ее параметры в интерфейсе. Для визуализации данных и построения дашбордов использовалась Grafana.
Подумав и пообщавшись с пользователями, было принято решение сохранить на текущем этапе оба сервиса, а BI-платформу внедрять в «конкурентной борьбе» с ними. Причин было несколько:
Текущий объем, который насчитывал десятки используемых отчетов и дашбордов.
Растущая потребность пользователей в новой отчетности, которая по своему функционалу превосходила возможности Grafana.
Почти что полное отсутствие документации того, как сейчас собирается отчетность, дашборды, и рассчитываются метрики в них.
Сейчас, когда за тобой стоит целая команда BI-инженеров, а в разработке и поддержке витрин можно обратиться к дата-инженерам, я бы топил за перенос всех дашбордов из Grafana в Tableau (да, наш выбор пал на него) и за то, чтобы забыть про Grafana раз и навсегда. Скажу честно: не так сложно, на мой взгляд, конкурировать с инструментом или сервисом, как с человеческой привычкой. Однако, тогда штат моей команды был только в моем единственном лице. Вот и пришлось идти таким тернистым путем, который, помимо боли, позволил получить ценный опыт о выборе пользователя. Но об этом чуть позже.
Выбор инструмента
Как уже упомянул ранее, в качестве BI-инструмента я выбрал Tableau. Это один из лидеров рынка: удобный, гибкий и с кучей полезных возможностей. Как раз подходящий под задачи построения многофункциональных дашбордов для многочисленных команд бизнеса, продукта и развития self-service аналитики в компании. Можно уходить в многочасовые холивары по вопросу: «А почему Tableau? Ведь...». Я большую часть своего рабочего опыта пользовался именно им, и Tableau зарекомендовал себя как надежное решение. Я был уверен, что он справится с возложенной на него задачей. И не ошибся.
На тот момент в компании объем данных уже был, мягко скажем, немаленьким. Миллионы пользователей генерировали миллионы поездок, а их надо было где-то хранить и анализировать. Выбор пал на Clickhouse — оптимальное решение для чтения данных и их вставки при отсутствии ресурсов на администрирование, развертывание и поддержку кластера Hadoop.
Поселили мы его на одном, но жирном сервере. В него каждый день подгружались данные с бэкенда и еще пары сторонних источников. На том же сервере жили и аналитики, которые писали свои запросы к этой же базе. Тогда такое коммунальное сожительство не было проблемой, но это только тогда. Для оркестрации ETL-процессов, большую часть из которых составляло обновление витрин для отчетности, выбрали Apache Airflow. Резервно там же подняли PostgreSQL, если вдруг столкнемся с тем, что доступного функционала Tableau + Clickhouse будет не хватать. Например, работа со spatial data и ее чтение со стороны Tableau из базы. Итого, получилось:
BI — Tableau.
DWH — Clickhouse (reserve — PostgreSQL).
Оркестратор — Apache Airflow.
Вооружившись этим арсеналом, был начат поход по различным командам с целью продемонстрировать преимущества Tableau перед Grafana и завоевать сердца пользователей.
Конкурентная борьба
Тогда я выделил 3 аспекта, на которые надо делать упор во время презентации нового инструмента:
Tableau превосходит Grafana по функционалу. Для того, чтобы это доказать, я собрал с потенциальных заказчиков запросы на дашборды и реализовал их в Tableau. Положительный эффект был, заказчики остались довольны новому функционалу и новым возможностям. Однако, были трудности, о которых я упомянул ранее. Пользователи привыкли к Grafana и ее возможностям, функционал Tableau казался сложным и не всегда понятным. А значит, надо научить их этот функционал понимать и применять.
Обучение Tableau. Я провел несколько демо-дней, на которых обучал пользователей основному функционалу Tableau. Целью этого демо было не только показать пользователям, как пользоваться дашбордами, а также то, что Tableau — простой в изучении инструмент. А еще такие же дашборды можно построить самостоятельно (привет, self-service!). Если первая задача сразу давала положительный эффект, то на вторую требовалось гораздо больше времени и ресурсов, поэтому ее было решено отложить. Однако, она дала свои плоды в виде команды маркетинговых исследований, которая самостоятельно начала разрабатывать и внедрять дашборды по своему направлению работ.
Документация, документация и еще раз документация. Документируется все: витрины, дашборды (вплоть до создания видеоинструкции), чтобы понимать, как считаются показатели, собираются и обновляются витрины, какие процессы есть, и как они проходят.
Все это дало свои плоды и количество пользователей, которые начали использовать Tableau и заказывать разработку дашбордов, возросло. Постепенно поток новых запросов был переведен полностью на сторону Tableau. И все равно мы сталкивались с сопротивлением. Были люди, которым оставалось проще и привычнее пользоваться Grafana. Интересная штука: использование Grafana заканчивалось тогда, когда пользователи находили 1-2 инсайта, которые полезны для их направления работ (пресловутый aha-moment). Очень просто интегрировались пользователи, которые до этого не пользовались Grafana. У них запускались новые продуктовые вертикали, отчетность которых сразу строилась на Tableau. Для них это был новый опыт, поэтому они сразу выбирали то, что было более функциональным и удобным.
Что сейчас и куда дальше
Сейчас у нас все продуктовые вертикали и команды, чья работа связана с анализом данных, имеют свои дашборды в Tableau. Для версионирования нашего кода мы используем Git с настроенным CI/CD, что позволяет удобно публиковать наши скрипты в продакшен. Для мониторинга работы наших сервисов мы используем (сюрприз!) Grafana. Постепенно переносим наши витрины в новое DWH — HDFS-кластер, поверх которого находится Presto SQL-engine. С ростом команд нам уже стало тесно на одной машине, поэтому хорошо, что теперь есть отдельный кластер. Для оркестрации по-прежнему используем Airflow, но пишем уже на PySpark. Дашборды в Grafana все еще живы, но сейчас у нас достаточно ресурсов, чтобы отказаться от этого легаси и пересобрать все в Tableau.
Мы тесно взаимодействуем с командой дата-инженеров, обогащая друг друга экспертизой, потребностями бизнеса, аналитикой, методиками расчета для построения витрин, которые максимально точно отвечают текущим потребностям в репортинге и анализе данных. BI-инженеры распределены по продуктовым вертикалям, являясь непосредственным участником ее команды. Это было сделано, чтобы лучше понимать то, что происходит в том или ином направлении бизнеса, помогать и развивать data-driven культуру, делиться экспертизой, полученной от своих коллег и других команд.
Мы активно разрабатываем программу обучения Tableau для наших пользователей. Хотим, чтобы переход от тестовых данных и обучения к построению дашбордов на реальных данных был максимально бесшовным. Поэтому наши учебные данные по своей структуре идентичны реальным. Отличие — в значениях, которыми обогащены эти таблицы. Также программа обучения будет разделена на уровни, так как аналитику и бизнес-девелоперу необходим разный функционал по своей сложности. Такое Tableau-сообщество будет активно развиваться и поддерживаться экспертизой, мероприятиями и образовательными программами.
У нас разрабатывается свой стайлгайд по дашбордам. Он будет также основываться на тренировочных данных, чья структура соответствует настоящим, чтобы процесс перевода источника данных на боевой был максимально бесшовными. Это поможет нашим пользователем оперативно строить качественные дашборды, не тратя время на разметку и распределение виджетов и, по возможности, их отрисовку с нуля.
При построении и разработке мы ориентируемся на то, чтобы наши дашборды приносили максимальную ценность за минимальное количество времени разработки. Надеюсь, что мы и дальше продолжим нести пользу нашим пользователем, успешно развивая нашу BI-платформу как единую точку доступа для всей отчетности, ее просмотра и разработки. Для меня очень круто, когда твоим продуктом пользуются и доверяют ему.
И да, мы активно растем и ищем людей к себе в команду! Думаю, что в течение нескольких месяцев я напишу еще одну статью, в которой уже подробнее расскажу о том, что мы построили. Поделюсь деталями про процессы, используемые технологии и опыт, который мы получили.