Если раньше навыками программирования владели только узконаправленные специалисты, то сейчас все больше маркетологов интересуются языками программирования и применяют их в работе. Customer Data Expert Павел Левчук выучил не один, а целых 4 языка программирования. Что это за языки и как владение ими помогает в работе, читайте в интервью.
— Павел, зачем маркетологу вообще нужен язык программирования?
Раньше маркетологи в большей степени занимались формированием креативов и мало опирались на данные. Теперь данные повсюду, и с ними нужно много работать.
Хотя для ряда задач есть готовые утилиты, но все же владение языком программирования позволяет выстроить процесс работы с данными так, как это нужно именно тебе, учитывая специфику твоей компании.
В целом язык программирования позволяет построить цикл работы с данными:
- подключиться к разным источникам,
- скачать данные,
- очистить их,
- связать вместе,
- сделать нужные расчеты,
- визуализировать их,
- сделать выводы и перейти к п. 1.
— Какой язык программирования лучше подходит для работы с данными?
Здесь точно нет серебряной пули. Опираясь на свой опыт в маркетинге, я использую регулярно такие языки программирования: SQL, R, M, DAX.
- SQL (Structured Query Language) — основной интерфейс работы с реляционными базами данных (БД). Используется для добавления, обновления и удаления строк данных, извлечения наборов данных для обработки транзакций и аналитических приложений, а также для управления всеми аспектами работы БД.
- R — универсальный язык для анализа данных. Он написан статистиками для статистических исследований.
- M — задумывался как язык для подключения к различным источникам данных и последующих их преобразований. Он работает только внутри экосистемы MS.
- DAX - язык для написания сложных логик расчетов метрик внутри Power Pivot / Excel / Power BI.
Понятие «лучше» практически не применимо к сравнению языков программирования. Здесь важны такие критерии, как:
- скорость создания кода,
- наличие библиотек, которые уже решают твою задачу,
- количество необходимого кода,
- его читабельность;
- скорость исполнения обработки данных;
- интеграция результатов со следующими шагами анализа;
- операнализация (работа с данными на потоке или в продакшн).
Часто, но не всегда, данные хранятся в реляционных БД. Для доступа к ним используется SQL (Structured Query Language).
— Что такое реляционные базы данных, чем они отличаются от обычных?
Реляционная база данных — это набор данных с предопределенными связями между ними. Эти данные организованы в виде набора таблиц, состоящих из столбцов и строк. В таблицах хранится информация об объектах, представленных в базе данных. В каждом столбце таблицы хранится определенный тип данных, в каждой ячейке — значение атрибута. Каждая строка таблицы представляет собой набор связанных значений, относящихся к одному объекту или сущности. Каждая строка в таблице может быть помечена уникальным идентификатором, называемым первичным ключом, а строки из нескольких таблиц могут быть связаны с помощью внешних ключей. К этим данным можно получить доступ многими способами, при этом реорганизовывать таблицы БД не требуется.
Если данные лежат в других источниках данных, то, соответственно, нужны другие языки программирования, предпочтительно с уже готовыми коннекторами.
Если источник данных предполагает наличие API, то можно быстро и нативно получить необходимые данные от сервиса. Например, в системе рассылки имейлов (ESP) можно по API запросить по каждой email-кампании список подписчиков, статус открытия и т. д. и построить нужный тебе отчет о рассылках. Альтернативно можно попытаться спарсить данные, если они лежат открыто, но нет API.
Также данные часто находятся не в том формате и/или они грязные. В таких случаях их нужно подготавливать к последующему анализу. Здесь уже появляются опции: это все еще можно сделать на SQL, но можно использовать и другие языки, например R, M или Python. Допустим, поменять типы данных колонок, удалить строки с пустыми значениями или с выбросами.
— То есть под разные задачи из цикла работы с данными тот или иной язык позволяет решить текущую задачу быстрее?
Да. Например, сделать что-то разовое можно с помощью формул в Excel. Если нужна повторяемость при поступлении новых данных и статически несложные расчеты, то подойдет DAX. Для более сложных операций — R.
Мне нравится современный R (R + tidyverse + RStudio IDE) тем, что он позволяет быстро подготавливать данные и применять разнообразные статистические модели для выжимания инсайтов из данных. Например, можно легко делать такие вещи, как регрессии (для понимания линейных зависимостей), кластеризацию данных (для сегментации, классификации для прогнозирования, например, покупки и/или оттока).
Для более простой аналитики я использую BI-стек: Power Query/M + Power Pivot/DAX + Excel/Pivot Tables.
Как я уже упоминал выше, я активно использую четыре языка. Использование одного или нескольких языков зависит от контекста задачи. Если на одном языке это одна команда, а на другом 10, то чаще всего я сделаю это там, где это будет быстрее реализовать. Бывают и исключения, когда я выстраиваю pipeline-обработки данных и перебрасывание данных из одного языка программирования (среды) в другой неоптимально с точки зрения регулярной обработки и с учетом увеличивающегося объема данных в будущем. Например, когда я строю BI-решение, то стараюсь использовать возможности одной экосистемы.
— Приведите пример кейса, когда вы использовали возможности одной экосистемы и это упростило и ускорило решение задачи.
Например, в Excel есть подсистема Power Query. Она позволяет мне быстро подключиться к данным, сделать их очистку и преобразования и тут же положить их в высокопроизводительную БД внутри того же Excel — Power Pivot. Затем, используя язык программирования DAX внутри Power Pivot, я описываю метрики, которые меня интересуют, и тут же в Excel делаю их визуализации через сводные таблицы и/или чарты. Все это позволяет мне сфокусироваться на анализе вместо решения инфраструктурных задач.
Резюме
Владение навыком программирования позволяет маркетологу быстрее анализировать большие объемы данных и находить в них инсайты. Выбор языка программирования зависит от конкретной задачи, которую необходимо решить. Так, если вы в своей работе сталкиваетесь с большим количеством разных задач, одним языком программирования обойтись сложно, однако есть наиболее универсальные языки программирования для работы с данными — это R и Python.
Павел Левчук рекомендует следующие материалы для изучения языков программирования:
DAX:
- https://www.amazon.com/Definitive-Guide-DAX-intelligence-Microsoft/dp/073569835X/
- https://www.sqlbi.com/tv/dax-101/
- https://www.sqlbi.com/tv/advanced-dax/
R:
- https://r4ds.had.co.nz/
- https://www.amazon.com/Action-Data-Analysis-Graphics/dp/1617291382/
Мы уже отправили вам первое письмо с подборкой лучших материалов