РИТ++ 2017, Backend Conf
Зал Сан-Паулу, 6 июня, 14:00
Тезисы:
http://backendconf.ru/2017/abstracts/2778.html
Хотите научиться принимать решения на основе данных, но не знаете, с чего начать? Нужно записать миллионы событий, но не уверены, как делать это правильно? Вы не знаете, как быстро и дёшево строить аналитические отчеты или запутались в инструментах?
На примере DocDoc я расскажу о плюсах и минусах различных подходов: как выбрать систему хранения, почему мы остановились на Google BigQuery. Как правильно организовать данные, записать свой clickstream, отказаться от сэмплирования в GA, а также строить простые и понятные отчеты.
Report
Share
Report
Share
1 of 41
Download to read offline
More Related Content
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков (DocDoc)
3. ● Работаем с 2011 года
● Запись в коммерческие
клиники
● 14 городов России
● Сайт, Мобильное приложение,
Партнерская сеть.
● 50 000 записей ежемесячно
6. Проблемы с анализом данных
● Пример: Стоимость обработки заявки
● Воронка: Пользователь -> Деньги на РС
7. Подход web аналитика
Работает, но:
➖ Отсутствие гибкости
➖ Только просмотр страниц и регистрация событий
➖ Сэмплированные данные
Отправить больше данных в GA!
9. Подход менеджера
Работает, но:
➖ Долго
➖ Автоматически не обновляется
➖ Не для всех задач
➖ Не больше 1 000 000 строк
Всё вставить в Excel
10. Технический подход
➖ Ухудшит производительность приложения
➖ Скорости всё ещё не хватит
Загрузим все данные в DB приложения!
Поставим отдельный сервер под аналитику!
12. А я где-то слышал
Работает, но:
➖ Догоро
➖ Медленно
➖ Не Real-Time
Может быть OLAP?
13. Подход крутого бизнес аналитика
Решения Business Intelligence:
● Tableau BI
● BIME etc
Работает, но:
➖ Дорого
➖ Долго
➖ Нужно уметь пользоваться
➖ И всё равно не заработает
15. Требования к DataHouse
● Объем данных: 1 Терабайт
● Сырые данные (не нужны индексы)
● Вся сила SQL
● Большая скорость произвольной выборки (максимально близко к real
time)
● Простота входа
● Низкая стоимость эксплуатации
16. Выбираем решение
Точно не подойдут:
● Реляционные базы
● NoSQL
● MongoDB etc
● Hadoop
● Поисковые движки
17. Standalone решения
Vertica / ClickHouse vs Cloud
Плюсы Минусы
➕ Безопасность данных
➕ Дешевле на очень больших объемах
➖ Инвестиции в инфрастуктуру
➖ Дороже на небольших данных
➖ Сложнее масштабировать
➖ Дорого поддерживать
➖ Проще сломать
18. Выбираем решение
Amazon Redshift
➖ Нужно думать о масштабирование и
потребление ресурсов
➖ Оплата за инстансы
➕ Запуск в одну кнопку
➕ Минимум головной боли
Cloud
20. Что такое BigQuery
● Под Капотом движок Dremel
● Используется в Google c 2005 г.
● Backed для Google Analytics и других сервисов Google
● Выполнение запросов near-real-time
● Масштабируется на тысячи серверов
● До 100 млрд. записей в секунду
● С конца 2012 доступна как часть Google Cloud Platform
21. BigQuery: особенности использования
● Сразу готова к работе, не нужно думать о масштабировании
● Структурированные данные
● JSON
● SQL
● Immutable
● Отклик от 300мс до 1 сек
● На гарантировано выполнение запроса
22. BigQuery - как готовить
1. Обязательно используем встроенное партицирование
2. Снижаем нормализацию
3. Выгружаем максимальное количество данных
4. Активно используем JSON
5. Правильно проставляем типы данных!
6. Анонимизируем персональные данные
23. Что загружать?
● События на сайте и мобильном приложении
● Справочники
● Таск менеджер (релизы)
● Бухгалтерия (деньги)
● Логи
● Реклама, контекст.
● Звонки, коллтрекинг, SMS, Email и etc
● Бонус Срезы конкретных данных
24. Как можно загружать
1. Готовые интеграции: GA, JIRA, MySQL, Директ
2. Архивы: JSON, CSV, Excel
3. Реалтайм данные: BQ.API
26. Как работает загрузчик
1. Очередь в RabbitMQ
2. Вставка пачками до 5000 записей
3. Многопоточная вставка
4. Устойчив к ошибкам и задержкам
5. Умеет обновлять таблицу
6. Анонимизация данных
32. Google App Script
function runQuery() {
var projectId = 'XXXXXXXX';
var request = {
query: 'SELECT TOP(word, 300) AS word, COUNT(*) AS word_count ' +
'FROM publicdata:samples.shakespeare WHERE LENGTH(word) > 10;'
};
var queryResults = BigQuery.Jobs.query(request, projectId);
...
37. Сколько это стоит?
1. Внедрение (разработка)
2. Поддержка
3. Аренда облака
4. Интеграции
5. Визуализация
38. Стоимость BigQuery на примере DocDoc
Счёт за Май 2017г.
Статья Размер Стоимость
BigQuery Streaming Insert 140 Gb $7.04
BigQuery Long Term
Storage
169 Gb $1.70
BigQuery Active Storage 569 Gb $11.40
BigQuery Analysis 13 Tb $61.56
Итого: $81,68
39. Стоимость, как считать
Статья Объём Стоимость
Внедрение (разработка) 3 месяца $ 20 000
Поддержка 8 часов/месяц $ 80
Аренда облака 738 Gb $ 82
Готовые интеграции 2 шт. $ 200
Визуалиция 7 учеток $ 300