Виммельбух, 3, перетяжка
Виммельбух, 3, перетяжка
Виммельбух, 3, перетяжка

Почему именно SQL и Python — мастхев для аналитика?

Аватарка пользователя Ирина Тюльпакова
Отредактировано

Канал Noukash выпустил ролик об основных инструментах аналитика: Python и SQL. Автор объяснил, почему важно владеть обоими языками, а мы от себя добавили ссылки на полезные материалы.

2К открытий22К показов

Андрей — автор канала Noukash — объясняет, почему невозможно обойтись одним только SQL и обязательно в связке с ним идёт верхнеуровневый язык программирования. Python, за счёт разнообразных библиотек, сейчас лидирует в сфере аналитики данных.

Превью видео e8N2zKuGABY

В видео автор рассказывает о следующем:

  1. SQL используется для работы с базами данных, позволяет извлекать, преобразовывать данные и изменять структуру таблиц.
  2. Python используется для более сложных манипуляций с данными, включая сложные вычисления и визуализацию.
  3. Важные библиотеки Python для аналитики данных включают NumPy, Pandas, Matplotlib и SciPy.
  4. Python и SQL покрывают основные потребности аналитиков, делая их более ценными на рынке труда по сравнению с использованием только Excel.

Ниже — транскрибация ролика.

Привет! Меня зовут Андрей, я ведущий аналитик в немецком стартапе. И регулярно в своей работе я использую Python и я использую SQL. И мне часто задают вопрос, зачем нужен Python, ну зачем нужен SQL? Когда есть старый добрый Excel и когда так много компаний используют все еще Excel как основной инструмент аналитика или бизнес-аналитика. Я все равно на такие вопросы отвечаю. Excel хорош, но Excel не всемогущий. С помощью Excel невозможно сделать все. И в этом видео я рассказываю как именно аналитики, такие как я, используют Python, используют SQL?

Зачем аналитику SQL

Что вам нужно в нем знать, чтобы успешно применять в работе? И самое главное, что у вас могут спросить на собеседованиях по этим инструментам? Ну, в первую очередь, что такое SQL?

SQL – это язык работы, обращения к базам данных. Это некоторый инструмент или язык программирования, который позволяет общаться с базами данных. Где-то же данные изначально должны храниться, правильно? То есть, некоторые привыкли к тому, что данные просто хранятся в огромных таблицах в Excel. Но когда у вас огромное количество данных, когда у вас миллион пользователей, у вас миллион разных покупок, и у вас просто массивы и массивы гигабайт и гигабайт информации, их нужно где-то хранить. Их просто нельзя хранить в Word или в Excel-евском документе.

И тут в игру вступает база данных. И как раз-таки в базах данных хранятся огромные массивы информации, и SQL нужен, чтобы с ними взаимодействовать. Соответственно, первая функция SQL — это доставать информацию из баз данных.

Есть табличка, которая обозначает разные типы команд в SQL. А вас, как аналитика, в первую очередь интересует именно команда SELECT, которая позволяет вытаскивать данные. Вы можете просто вытащить данные, на них посмотреть. Они хранятся в табличной форме что у вас есть, чего у вас нет.

Но вам же не интересно просто выгрузить все. И дальше вступают в силу инструменты SQL. Это фильтры, различные ограничения, различные расчеты. Вы можете преобразовывать данные с помощью SQL. Вы можете создавать новые столбцы, или вы можете производить простые манипуляции с теми данными, которые у вас уже есть. Ну, допустим, вам нужно не просто достать сырые данные, миллионы-миллионы различных строк. Вам нужно посчитать среднее, или вам нужно почитать максимум, или вам нужно соединить две таблицы, а потом произвести некоторый расчет.

В этом SQL тоже очень полезен. Он позволяет очень просто и очень быстро произвести некоторое простое преобразование. Ну, допустим, у вас есть некоторый интернет-магазин, в котором есть информация по покупкам пользователей по различным городам. Вы можете рассчитать средние покупок по различным городам. Вы можете рассчитать максимальную покупку. Вы можете рассчитать количество покупок. И, соответственно, в SQL есть некоторый набор таких необходимых минимальных функций, которые позволят произвести быстрый расчет. Вы можете посчитать какие-то метрики. Вы можете сразу же с помощью SQL посчитать конверсию в покупку. Допустим, сколько у вас было пользователей, сколько я из них купила и так далее, и так далее.

То есть вы вытащили ваши данные с помощью SQL, вы произвели простые преобразования, и помимо этого аналитику, скорее всего, может понадобиться это создание, удаление, обновление таблиц. То есть это команды CREATE, DELETE и UPDATE, которые вот в схеме я как раз показывал. Это когда вам нужно создать новую таблицу или внести изменения в некоторую старую.

Ну, представьте себе, что у вас есть интернет-магазин. Структура данных так устроена, что у вас есть таблица по пользователям, которые купили с помощью карты на вашем сайте, и у вас есть таблица по пользователям, которые купили с помощью PayPal. И вы хотите объединить это все в одну таблицу, чтобы она была отдельная, чтобы у вас была одна полная таблица. Но в таком случае вы используете команду CREATE.

Соответственно SQL вам будет полезен как раз таки в этих трех кейсах:

  1. доставать данные;
  2. преобразовывать данные;
  3. создавать или вносить изменения в структуру таблиц, которые уже есть.

После того, как вы произвели все первоначальные махинации с помощью SQL, вы достали ваши данные, вы посмотрели на ваши данные, вы, может быть, сделали простые вычисления, в дело вступает Python.

Почему нельзя без Python?

Что такое вообще Python? Python это объектно-ориентированный язык программирования, который используется не только в аналитике данных. Он используется как один из основных инструментов для бэкендеров, он используется и в машинном обучении, он используется и в веб-разработке, ну, в общем, Python, он такой достаточно многофункциональный.

Но суть в том, что аналитики используют некоторое ограниченное количество библиотек, которые нужно только для анализа данных. Это библиотеки NumPy, это библиотеки Pandas, это библиотеки Matplotlib, это библиотеки SciPy. Есть такой основной набор, такой боевой наборчик для каждого аналитика.

Что можно делать в Python? Ну, в первую очередь Python позволяет сделать более сложные манипуляции с данными, нежели чем SQL. С помощью SQL, допустим, если мне нужно сделать сложные какие-то преобразования, изменить как-то структуру, добавлять новые столбцы, то это часто выливается в километровые запросы SQL.

Именно потому, что SQL не предназначен для такого. В Python можно сделать все гораздо проще, гораздо чище. То есть в Python можно загрузить ваши данные, которые вы получили из SQL, можно загрузить их в форме CSV, можно напрямую подключиться к вашей базе данных, и после этого можно уже менять данные. Можно добавлять новые столбцы, можно их крутить, можно делать более сложные вычисления. Это, кстати, другая вещь, для которой используется Python.

Это какие-то сложные комплексные расчеты. То есть, с одной стороны, SQL прост, когда вам нужна какая-то простая арифметика, когда вам нужно найти сумму, допустим, или какой-то минимум, или какой-то максимум, если вам нужно сделать что-то сложнее. Ну, допустим, для аналитика это какие-то статистические меры, дисперсия, стандартное отклонение или что-то сложнее. Или если вы, как продуктовый аналитик, делаете расчет А/B-тестов, то для этого вам тоже пригодится Python. Потому что Python позволит вам рассчитать легко и быстро выборку для A/B-теста. Вы можете сделать это и в SQL, конечно.

Вы можете загуглить формулу и потом эту формулу перенести в SQL и все то же самое рассчитать. Но зачем вам это делать, если в Python это буквально одна-две строчки? Это просто одна функция, с помощью которой вы можете это рассчитать. Соответственно, вы выгрузили данные в Python, вы как-то их преобразовали с помощью библиотеки Pandas. Вы потом рассчитали какие-то стат величины с помощью SciPy, Stats. Допустим, он покрывает у меня 80% моих нужд по статистическим величинам.

Вы, может быть, рассчитали стандартное отклонение, вы, может быть, рассчитали P-value, если это A/B-тест, вы, может быть, что-то дополнительное посчитали. И потом Python позволяет очень быстро визуализировать данные. Это прям так удобно. То есть, конечно, аналитик обладает какими-то инструментами визуализации. Аналитик владеет, допустим, Tableau. Или аналитик владеет Power BI. Но в Python это все быстро и стремительно.

В SQL ты видишь данные, но ты не можешь часто понять общие картинки, потому что данные хранятся в табличной форме. В Python все гораздо проще. То есть, с помощью библиотеки Matplotlib или с помощью других библиотек по визуализации ты можешь быстро визуализировать, допустим, два столбца. Посмотреть там есть на глазок корреляция, допустим, между двумя величинами или нет. Ты можешь делать самые разные визуализации, и ты можешь делать это быстро. То есть мне очень нравится в этом плане работа с Python, потому что ты заходишь, открываешь юпитер ноутбук, и ты начинаешь крутить данные. То есть ты их выгрузил, и потом ты посмотрел на одном графике, посмотрел на другом графике, соответственно, прежде чем строить графики в Tableau или в Power BI или показывать их своим коллегам, можно быстро посмотреть на свои данные. Можно быстро их визуализировать, прикинуть, что можно посчитать, прикинуть, какие тренды есть, и потом уже презентовать выводы.

Соответственно, когда я говорил про продуктовую аналитику и чем он занимается, вот Python именно полезен в этой части поиск каких-то новых инсайтов, расчет статистических величин, и прежде чем вы строите дашборды, это тоже полезно. Максимально полезно. Вы можете посмотреть, как эти данные вообще выглядят. То есть, может быть, в процессе вам придет какая-то новая идея. Соответственно, в принципе, это и есть весь такой цикл аналитической работы. Данные где-то хранятся, вы их выгружаете с помощью SQL, вы их как-то преобразуете, делаете какие-то базовые преобразования, потом вы открываете их в Python, вы делаете более сложные преобразования ваших данных, вы рассчитываете некоторые величины, вы строите графики, вы производите исследования, и потом уже эти исследования вы презентуете и вы подтверждаете с помощью Python или опровергаете их.

Почему именно SQL и Python — мастхев для аналитика? 1

Если вы, допустим, углубляетесь в Data Science, вы можете использовать также библиотеки для машинного обучения, вы можете делать какие-то более сложные вещи. Python, он такой достаточно гибкий инструмент, и самое главное, он модульный инструмент. То есть, если вам что-то нужно, и вы не знаете, как это сделать, велик шанс, что уже есть для этого библиотека, уже есть для этого функция, и вам не нужно все это заново забивать.

То есть, многие задачи, например, на теории вероятности, которые могут задавать на собеседовании для продуктового аналитика, или на комбинаторику, это просто одна функция в Python. И это так просто, мне это так нравится. И это не читинг, это просто, если вы понимаете принцип, вы можете сразу ее использовать. Ну и, соответственно, на расчет статистических величин. Вам не обязательно помнить все формулы наизусть. Формулы за вас уже забиты. Вам главное знать, какую формулу использовать в каждый отдельный момент.

И потом уже с этой информацией вы можете идти к стейкхолдерам, вы можете сказать, смотри, я нашел раз, два, три в дате, или я преобразовал дату таким образом, что мы можем эту данные использовать для того, чтобы построить дашборд, который ты всегда хотел, или может быть я нашел что-то необычное, какую-то аномалию в наших данных, и тоже это там нужно исправить. По факту вот оно и есть, 100% потребностей покрывает Python SQL, ну не 100, но хотя бы 95%. Excel сюда никак не впихнуть, конечно, то есть он не покрывает оставшиеся 5%, но в некоторых случаях он нужен. Но если вы будете знать Python и SQL, но вы не будете знать Excel, то поверьте мне, стоить вы будете гораздо дороже. Удачи вам с обучением SQL, удачи вам с обучением Python. 

Если вы уже освоили SQL и Python и хотите использовать эти навыки в реальных проектах, рассмотрите возможность стать QA Team Lead в IT-компании SM Lab. Это отличная возможность для тех, кто хочет управлять командами и улучшать процессы тестирования.

Про аналитику данных мы уже писали. Если вас интересует эта тема — вот подборка любопытных материалов:

Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий22К показов