- PVSM.RU - https://www.pvsm.ru -
Не так давно я столкнулся с задачей по переходу на новую BI-систему для нашей компании. Поскольку мне пришлось погрузиться довольно глубоко и основательно в данный вопрос, я решил поделиться с уважаемым сообществом своими мыслями на этот счет.

На просторах интернета есть немало статей на эту тему, но, к моему большому удивлению, они не ответили на многие мои вопросы по выбору нужного инструмента и были несколько поверхностны. В рамках 3 недель тестирования мы опробовали 4 инструмента: Tableau, Looker, Periscope/Sisense, Mode analytics. Про эти инструменты в основном и пойдет речь в данной статье. Сразу оговорюсь, что предложенная статья — это личное мнение автора, отражающее потребности небольшой, но очень быстро растущей IT-компании :)
Сейчас на рынке BI происходят довольно интересные изменения, идёт консолидация, крупные игроки облачных технологий пытаются укрепить свои позиции путем вертикальной интеграции всех аспектов работы с данными (хранение данных, обработка, визуализация). За последние несколько месяцев произошло 5 крупных поглощений: Google купил Looker, Salesforce купил Tableau, Sisense купил Periscope Data, Logi Analytics' купил Zoomdata, Alteryx купил ClearStory Data. Не будем дальше погружаться в корпоративный мир слияний и поглощений, стоит лишь отметить, что можно ожидать дальнейших изменений как в ценовой, так и в протекционистской политике новых обладателей BI-инструментов (как недавно нас обрадовал инструмент Alooma, вскоре после покупки их компанией Google, они перестают поддерживать все источники данных, кроме Google BigQuery :) ).
Итак, начать я хотел с небольшой теоретической части, ибо куда нынче без теории. Как говорит нам Гартнер, BI система — это термин, объединяющий программные продукты, инструменты, инфраструктуру и лучшие практики, который позволяет улучшать и оптимизировать принимаемые решения [1]. Под это определение попадают в частности и хранение данных и ETL. В рамках данной статьи я предлагаю сосредоточиться на более узком сегменте, а именно на программных продуктах для визуализации и анализа данных.
В пирамиде создания ценности для компании (я имел смелость предложить очередное изложение этой очевидной структуры на Рис. 0) инструменты BI находятся после блоков хранения записей и предварительной обработки данных (ETL).
Это важно понимать — лучшей практикой в данном случае является разделения задач ETL и BI. Помимо более прозрачного процесса работы с данными, вы также не окажетесь привязанными к одному программному решению и сможете подобрать наиболее подходящий инструмент под каждую из задач ETL и BI. При грамотно выстроенном ETL-процессе и оптимальной архитектуре таблиц данных можно в целом закрыть 80% всех насущных вопросов бизнеса без использования специального ПО. Это, конечно, потребует значительного вовлечения аналитиков и DS. Поэтому приходим к главному вопросу: а что нам, собственно, нужно в первую очередь от программного продукта BI?
Рис. 0

Как мы уже с вами поняли, все ключевые метрики и показатели деятельности компании в целом можно взять напрямую из аналитических таблиц в базе данных, предварительно подготовленных в рамках ETL-процесса (о том, как оптимально построить ETL-процесс, я расскажу в следующей статье, а пока приведу тизер, почему это так важно: по опросу Kaggle, главная сложность, с которой сталкивается половина DS — это грязные данные [2]). Основной проблемой в этом случае, очевидно, будет трудоемкость и неэффективность использования времени аналитиков. Вместо создания полноценного продукта, аналитики/DS будут все свое время готовить показатели, считать метрики, сверять расхождения в цифрах, искать ошибки в SQL-коде и заниматься прочей бесполезной деятельностью. Здесь я убежден, что главное чем должны заниматься аналитики/DS — это создание продукта, приносящего ценность компании в долгосрочной перспективе. Это может быть как расчетный/предиктивный сервис, результат которого — это часть основного продукта компании (например, алгоритм расчета стоимости/времени поездки) или, скажем, алгоритм распределения заказов по клиентам, так и полноценный аналитический отчет, выявляющий причины оттока пользователей и снижения MAU.
Поэтому основным критерием выбора аналитической системы должна быть возможность максимально разгрузить аналитиков от ad hoc-задач и текучки. Как этого можно добиться? По сути, есть два варианта: а) автоматизировать, б) делегировать. Под вторым пунктом я имею ввиду популярное нынче словосочетание Self Service — дать бизнесу возможность копаться в данных самому.
То есть, аналитики настраивают один раз программный продукт: создают кубы данных, настраивают автоматическое обновление кубов (например, каждую ночь), автоматическую отправку отчетов, готовят несколько мастер дашбордов и обучают пользователей, как пользоваться продуктом. Дальше бизнес обеспечивает свои дополнительные потребности самостоятельно, путем расчета необходимых ему показателей в различной агрегацией и фильтрацией данных с помощью простой и понятной опции drag&drop.
Помимо простоты процесса составления отчетов важна также скорость выполнения запросов. Никто не будет ждать 15 минут, пока загрузится предыдущий месяц данных или показатели для другого города. Для решения этого вопроса существует несколько общепринятых подходов. Один из них — это создание OLAP(online analytical processing) кубов данных. В OLAP кубах типы данных разделяются на измерения (dimensions) — это поля, по которым можно делать агрегации (например, город, страна, продукт, временные интервалы, тип оплаты...), и меры (measures) — это расчетные метрики для измерений (например, количество поездок, выручка, количество новых пользователей, средний чек, ...). Кубы данных — это довольно мощный инструмент, позволяющий очень быстро выдавать результат за счет предварительно агрегированных данных и рассчитанных метрик. Обратной стороной OLAP кубов является тот факт, что все данные заранее собраны и не изменяются до следующей сборки куба. Если вам понадобится агрегация данных или метрика, которая не была изначально рассчитана, или если вам необходимы более свежие данные, то куб данных надо пересоздавать [link [1]].
Другое решение для повышения скорости работы с данными — это in-memory solutions [link [2]]. In Memory Database (IMDB) разработана для обеспечения максимальной производительности, когда есть достаточно оперативной памяти для хранения данных. В то время как реляционные БД разработаны для обеспечения максимальной производительности, когда данные не полностью помещаются в оперативную память, и медленные операции ввода-вывода на диске должны выполняться в режиме реального времени. Многие современные инструменты объединяют оба этих решения (например, Sisense, Tableau, IBM Cognos, MicroStrategy, и др.).
До этого мы с вами говорили о простоте и удобстве использования инструментов BI для бизнес пользователей. Важно и настроить удобный процесс разработки и релиза дашбордов для аналитиков/DS. Здесь ситуация аналогична любому другому ИТ-продукту — необходим быстрый и удобный процесс развертывания (rapid deployment time), а также продуманность процесса разработки, тестирования, code review, релиза, version control, team collaboration. Все это объединяется понятием workflow.
Таким образом мы приходим к ключевым требованиям к программному продукту BI. Эти же требование легли в основу скор-карты, на основании которой мы в итоге выбрали поставщика продукта.
Таблица 1. Критерии выбора инструмента BI.
| № | Требование | Описание | Значимость (min=1, max=5) |
|---|---|---|---|
| 1 | UX + drag&drop | Необходим понятный и доступный бизнес-пользователям интерфейс с возможностью drag&drop для создания отчетов | 5 |
| 2 | Data handling | Как хранятся и обрабатываются данные системой. Это те самые механики, как OLAP и in-memory solutions, о которых мы говорили выше. Чем быстрее и проще организован доступ к данным — тем лучше. | 5 |
| 3 | Workflow | Необходим быстрый и удобный процесс развертывания (rapid deployment time). Также code review, version control, development & release. | 5 |
| 4 | Visualization | Набор доступных визуализаций данных. Чем больше различный вариантов представления данных — тем лучше. | 4 |
| 5 | Support | Доступность поддержки, SLA на реагирование на запрос. | 3 |
| 6 | Statistics | Возможность использования статистических методов, интеграция с Python. | 2 |
| 7 | Price | Здесь все понятно, Лебовский :) | 4 |
Итоговая таблица результатов голосования внутри нашей команды выглядит следующим образом:
Таблица 2. Итоги голосования по выбору инструмента BI.
| № | Требование | Значимость | Tableau | Looker | Periscope | Mode |
|---|---|---|---|---|---|---|
| 1 | UX + drag&drop | 5 | 4.3 | 4.6 | 2.7 | 2.8 |
| 2 | Data handling | 5 | 4.4 | 3.5 | 3.6 | 2.3 |
| 3 | Workflow | 5 | 3.1 | 4.8 | 3.8 | 3.3 |
| 4 | Visualization | 4 | 3.8 | 3.7 | 3.4 | 2.1 |
| 5 | Support | 3 | 3.7 | 4.2 | 3.8 | 3.4 |
| 6 | Statistics | 2 | 2.3 | 2.2 | 2.5 | 2.8 |
| 7 | Price | 4 | 4 | 2 | 4 | 3 |
| Итого | 3.77 | 3.79 | 3.43 | 2.79 |
Со стороны бизнес-пользователей (они тоже принимали участие в выборе продукта) голоса разделились примерно поровну между Tableau и Looker. В итоге выбор был сделан в в пользу Looker. Почему именно Looker и какие принципиальные различия между инструментами, мы сейчас обсудим.
Итак, приступим к описанию BI-инструментов.
(здесь речь пойдет о расширенном пакете услуг: Tableau Online)
Рис. 1

Рис. 2

Рис. 3

Рис. 4
Кубы данных можно настроить на локальной версии Tableau Desktop и загрузить или обновить их на сетевом сервере, в таком случае все дашборды, построенные на предыдущей версии сборки куба автоматически обновятся. Обновление кубов можно настроить автоматически, например, ночью. Все измерения и меры (dimensions and measures) задаются заранее при сборке куба и не меняются до следующей версии сборки. Вместе с использованием кубов данных в Tableau есть возможность обращаться напрямую к базе данных, это называется Live connection, в таком случае скорость будет гораздо ниже, но и данные будут более актуальные. Процесс сборки куба данных довольно простой, главное — выбрать правильные поля для сборки нескольких таблиц (joins) (Рис. 5).
Рис. 5
Рис. 6
Рис. 7
Рис. 8

Рис. 9
Рис. 10

Рис. 11
Рис. 12
Рис. 13
Рис. 14

Рис. 15

Рис. 16
К выбору провайдера BI инструмента необходимо подойти основательно, заручившись поддержкой со стороны бизнес пользователей и определив основные критерии выбора инструмента (желательно, в виде скор карты). Приведенные в данной статье критерии ориентированы в первую очередь на повышение эффективности работы с данными, упрощение процесса извлечения информации, повышения качества визуализации данных и снижение нагрузки на аналитиков.
Автор: Nikolay Bashlykov
Источник [19]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/data-mining/324699
Ссылки в тексте:
[1] link: https://onlinehelp.tableau.com/current/pro/desktop/en-us/cubes.htm
[2] link: https://www.sisense.com/glossary/in-memory-bi/
[3] link: https://www.zdnet.com/article/tableau-adds-in-memory-data-engine-hyper-to-tableau-10-5-launches-tableau-server-for-linux/
[4] ссылка: https://community.tableau.com
[5] здесь: https://www.tableau.com/about/blog/2016/11/leverage-power-python-tableau-tabpy-62077
[6] цены: https://www.tableau.com/pricing/teams-orgs
[7] уровни пользования: https://www.tableau.com/pricing/teams-orgs#online
[8] ссылка: https://docs.looker.com/data-modeling/learning-lookml/caching
[9] ссылка: https://looker.com/blog/data-science-with-looker-and-python-part-two
[10] здесь: https://doc.periscopedata.com/article/r-and-python
[11] здесь: https://mode.com/help/articles/github/
[12] Gartner, Business Intelligence — BI — Gartner IT Glossary: https://www.gartner.com/it-glossary/business-intelligence-bi/
[13] Kaggle: https://www.kaggle.com/surveys/2017
[14] ZDNet — Salesforce-Tableau, other BI deals flow: https://www.zdnet.com/article/salesforce-tableau-other-bi-deals-flow-the-tallys-now-five-in-a-row/
[15] Tableau website: https://www.tableau.com
[16] Looker website: https://looker.com
[17] Periscope website: https://www.periscopedata.com
[18] Mode analytics website: https://modeanalytics.com
[19] Источник: https://habr.com/ru/post/460807/?utm_source=habrahabr&utm_medium=rss&utm_campaign=460807
Нажмите здесь для печати.