Известно, что главные hard skills для аналитика данных — это Python и SQL. Расскажу, для каких задач они используются у нас в eLama.
⚡️ SQL
Прежде всего, это язык «общения» с базами данных, будь то источники или аналитическое хранилище. Чтобы что-то положить в БД или взять оттуда, мы прибегаем к SQL, даже если операция производится из Python-скрипта.
Например, вот так выглядит выполнение запроса к Clickhouse:
from clickhouse_driver import Client # библиотека для работы с Clickhouse
from env import YANDEX_TOKEN, CLICKHOUSE_HOST, CLICKHOUSE_USER, CLICKHOUSE_PASSWORD
client = Client( # создаем подключение
host=CLICKHOUSE_HOST,
port=9000,
user=CLICKHOUSE_USER,
password=CLICKHOUSE_PASSWORD
)
query = "SELECT * FROM datamart.data_table"
result = client.execute(query) # исполняем SQL-запрос
Кроме того, большую часть преобразований данных, то есть реализацию витрин данных, мы производим тоже на SQL. Код преобразований в виде представлений (view), как и сами данные, располагается в аналитическом хранилище (в нашем случае — в Clickhouse). Представления — это, по сути, сохранённые запросы, к которым можно обращаться как к таблицам.
Код представлений может быть довольно велик и сложен, но всё же остаётся более наглядным и удобным для чтения, чем Python-код, выполняющий аналогичные действия.
⚡️ Python
Его используем для автоматизации работы с данными, а также для сложных расчётов, неосуществимых на SQL. К задачам автоматизации можно отнести:
➖ Сбор и транспорт сырых данных из источников (БД, API, файлы и т. д.) в аналитическое хранилище;
➖ Выполнение регулярных задач: обновление витрин данных, проверка качества данных, поиск устаревших витрин и т. д.
Сложные вычисления, такие как прогнозирование, кластеризация, классификация тоже реализуются средствами Python, ведь в нём имеется огромный арсенал библиотек, закрывающих любые потребности аналитика.
Наконец, на питоне можно создавать свои сервисы для заказчиков не-аналитиков. Например, у нас имеется:
➖ Self-Service, позволяющий пользователю, не зная кода, установить в формочке нужные параметры и получить выгрузку с данными;
➖ Сегментатор, который извлекает сегменты юзеров по заданным критериям;
➖ Классификатор тематик, определяющий тематику указанного сайта по его контенту и другие.
Все они написаны на Python.
Python — невероятно мощный инструмент благодаря своей компактности, простоте и многофункциональности. И при этом он быстро интегрирует в себя новые тренды. Например, использование нейросетей в питоне — дело нескольких строк кода!
Словом, SQL это база, а Python — это серьёзная работа. Каким языком чаще пользуетесь вы и для каких задач?
📊 Simulative