Условие
Подключиться к Tableau Desktop к публичному датасету BigQuery bigquery-public-data.san_francisco_bikeshare и построить дашборд:
- Time Series: объём поездок и длительность по месяцам/кварталам/годам с MoM, QoQ, YoY ростом.
- Geo: плотность станций и средняя длительность поездки по карте с drilldown до конкретной станции.
- Insights: какие станции недоиспользованы и как это посчитать?
Решение
План работ
- Подключение Tableau → BigQuery → Public Dataset → авторизация Google.
- Проверка таблиц:
bikeshare_trips,bikeshare_stations,bikeshare_status. Понимание ER (trip → start_station_id → station). - Построение листов:
- Time series поездок (
COUNT(trip_id)) и средней длительности (AVG(duration_sec)/60). - Календарные кальк-поля для MoM/QoQ/YoY.
- Карта со station_lat/long, размер кружка ∝ числу поездок.
- Bottom-N отчёт по станциям.
- Time series поездок (
MoM / QoQ / YoY в Tableau
// MoM
ZN(SUM([trip_id])) - LOOKUP(ZN(SUM([trip_id])), -1)
// YoY (по тому же месяцу прошлого года)
ZN(SUM([trip_id])) - LOOKUP(ZN(SUM([trip_id])), -12)
«Underutilized stations» — определение
Несколько разумных метрик, которые стоит обсудить со стейкхолдером:
- Использование на ёмкость:
trips_per_dock_per_day = COUNT(trips) / dock_count / days_active. Низкое = плохо. - Простой: доля времени, когда
bikes_available = capacity(ничего не уехало) — из таблицыbikeshare_status. - Доля в нижнем квантиле по поездкам в своём районе (нормировка на гео).
Удобно вывести в дашборд таблицу с топ-20 «underutilized» с подсветкой условным форматированием.
Подводные камни
- BigQuery sandbox имеет лимиты — выбирайте
LIMIT 1Mили дату-фильтр. duration_secимеет выбросы (поездки на 24 часа = клиент забыл вернуть). Использовать медиану или обрезать перцентилями[1, 99].- Гео-сетка: drilldown работает чёткой иерархией
region → station, нужно вручную создать иерархию. - Сезонность: помесячно поездок больше летом — для роста использовать YoY, не MoM.
Эталонный ответ
3 листа: time series с LOOKUP-кальк-полями для MoM/QoQ/YoY; карта с пузырями по станциям и drilldown; таблица «underutilized» на основе trips/dock/day или idle-времени.