Электронные таблицы – одни из самых распространенных инструментов анализа данных. Впервые я познакомился с ними еще в 1997 году, когда делал таблицы для школьного реферата по географии в Quattro Pro, чем произвел впечатление на учительницу географии. Я много дней ходил на работу к отцу, который в то время занимался IT-технологиями, набирал текст на клавиатуре и масштабировал карты стран на ксероксе. В итоге получился полностью напечатанный реферат, что было очень примечательно в те времена, особенно в Твери. Затем я работал c Microsoft Excel, потом в Google Sheets, которые сделали очень легкой совместную работу в облаке. В чем плюс электронных таблиц:
• низкий порог входа;
• все делается интуитивно и наглядно: добавление нового столбца или формулы;
• есть возможность анализа сводных таблиц (pivot) – самый мощный инструмент генерации гипотез;
• очень легко делать графики.
Основной минус – электронные таблицы не предназначены для автоматизации задач с использованием программирования. Когда такой проект усложняется, его поддержка превращается в ад для разработчиков. Внутри электронных таблиц появляется много программного кода, который находится вне системы контроля версий, поэтому отслеживать его изменения невозможно. У меня был опыт «изготовления» сложных отчетов для еженедельных собраний директоров в Ozon.ru и Wikimart.ru на основе электронных таблиц. В Ozon.ru к таблице подключались источники ручного ввода данных менеджерами компании, OLAP-кубы, SQL-скрипты. В определенный момент отчет обновлялся программным способом и сохранялся в папку с нужной датой. В Wikimart.ru плюс к тому аналитики вручную корректировали отчет и конвертировали его в PDF-файл для презентаций. Сейчас я бы по максимуму отказался от этого в пользу более управляемых решений, пусть и менее гибких, чем электронные таблицы. И договорился бы с менеджментом об изменении шаблона отчетов так, чтобы сделать его более инженерным способом.
Сервисы блокнотов
Программные инструменты, которые называют блокнотами (notebooks, рис. 7.1), могут быть очень гибкими и мощными в умелых руках. Они получили популярность благодаря широкому
Рис. 7.1. Блокнот Jupyter
использованию языков программирования R и особенно Python для анализа данных. Блокнот запускается как веб-сервис на сервере или вашем компьютере. Он состоит из ячеек текста с программным кодом, ячейки можно запускать произвольно, весь вывод данных (графики, статистики, сообщения об ошибках) появляется под ячейкой. В ячейках можно писать тексты, делать свои заголовки. В общем, можно делать полноценные научные отчеты. Есть два наиболее известных публичных сервиса-блокнота – Google Colab и Kaggle Notebook, где вы можете попробовать этот инструмент совершенно бесплатно. В них также доступны мощные GPU-видеокарты, что позволяет делать задачи с использованием глубоких нейронных сетей (deep learning). Лично мне понравился сервис Google Colab своей простотой и мощностью, когда я проводил эксперимент по созданию deep-fake-видео.
Плюсы:
• Гибкость. Доступны программные библиотеки на любой вкус.
• Блокнот очень легко запустить в облаке и не тратить ресурсы личного компьютера.
• Легко делиться и публиковать результаты.
• Поддержка разных языков программирования. Я в Retail Rocket использовал блокноты в Jupyter notebook на языке Scala.
• Можно взаимодействовать с любыми источниками данных, для которых есть драйверы.
• Чтобы повторить результат, блокнот достаточно перезапустить и выполнить все ячейки. Не со всеми инструментами это легко сделать. Например, в электронных таблицах могут поехать формулы. Здесь такого эффекта не будет.
Минусы:
• Не считаю удачной идеей использование блокнотов как компонента рабочей системы, хотя много слышу о таких прецедентах (так делает даже Netflix [49]). Они созданы для исследовательской работы, а не построения рабочих процессов.
• Порог входа выше, чем в электронных таблицах. Как минимум нужны знания базовых основ программирования на выбранном языке.
Инструменты визуального анализа
Я их также называю сервисом персональных дашбордов. Этот подход отличается от предыдущих тем, что вам практически не нужно программировать, вы можете работать через «тонкий клиент» (веб-браузер) и публиковать полученные дашборды на порталах. Самый простой из них – Google Data Studio – позволяет работать преимущественно с источниками данных в облаках Google, включая Google Sheets. Это больше чем просто средства визуализации. Power BI и Tableau (рис. 7.2) пошли дальше – они реализовали средства ETL (Extract Transformation Layer), когда данные скачиваются из источников на машину пользователя или в облако. Power BI это делает с помощью языка программирования Power Query, Tableau через визуальный интерфейс (блоки и стрелки, их соединяющие).
Рис. 7.2. Tableau
Плюсы:
• Порог входа ниже, чем у блокнотов (notebooks).
• Визуализация гораздо лучше, чем у альтернативных инструментов (особенно у Tableau).