Аналитика данных / Data Study
Open in Telegram
Помогаю аналитикам расти в профессии и доходе Курс по продвинутому SQL и автоматизации потоков данных https://datastudy.ru/ По всем вопросам: @daniildzheparov Моя жизнь, опыт, аналитика и инженерия данных max-8fjb
Show more9 506
Subscribers
+224 hours
+67 days
+1130 days
Posts Archive
Временные таблицы в базах данных
В ETL процессах часто возникает необходимость в промежуточном хранении данных. Одним из эффективных решений для этой задачи являются временные таблицы.
🔎 Временная таблица — это специальный тип таблицы в базе данных, которая существует только в течение сессии пользователя или до конца транзакции. Она создается для временного хранения данных и автоматически удаляется после завершения работы.
Чем они отличаются от обычных таблиц?
1️⃣ Временность: Временные таблицы существуют только в течение сессии или транзакции, тогда как обычные таблицы сохраняются в базе данных до тех пор, пока их не удалят вручную.
2️⃣ Изоляция: Временные таблицы видны только в пределах текущей сессии или транзакции, что обеспечивает изоляцию данных между разными пользователями или процессами.
3️⃣ Производительность: Временные таблицы часто хранятся в оперативной памяти, что позволяет значительно ускорить операции с данными.
Эти особенности и дают плюсы использования временных таблиц для оптимизации ETL
Пример создания временной таблицы в SQL из результата SELECT запроса:
CREATE TEMPORARY TABLE temp_table (
id INT,
name VARCHAR(50),
value DECIMAL(10, 2)
);
--либо создание из результата SELECT запроса
CREATE TEMPORARY TABLE temp_table AS
SELECT
id
, name
, value
FROM table
;
Также хочу отметить, что временные таблицы позволяют оптимизировать выполнение запросов, если вам нужно преобразовывать и извлекать данные из множества разных таблиц в базе. Например, если из таблицы с продажами за все время вам нужны продажи только за последний месяц для разных видов расчетом, сохраните продажи за последний месяц во временную таблицу и обращайтесь к ней для ваших расчетов, чтобы не делать несколько тяжелых запросов к таблице всех продаж.+9
🚙 Наш маршрут Road Trip
📍Архыз
📍Домбай
📍Кисловодск
📍урочище Джилы-Су
📍Верхняя Балкария
📍Северная Осетия
Я готовился к путешествию в основном по видео блогеров Своим Ходом, они путешествовали в автодоме по Кавказу в прошлом году. Я так вдохновился местами и красотами, что решил повторить частично маршрут и увидеть все своими глазами.
Расписывал маршрут по дням и времени когда и на какую точку нужно поехать, как передвигаться между локациями и где ночевать.
Топ 3 самых ярких впечатления и локации:
1️⃣Софийские водопады в Архызе
Голову снесли пейзажи вокруг и сам трекинг до водопадов с кофе-брейком возле них
2️⃣Домбай
Очумели от высоты и величестве гор вокруг курортного поселка, видом из отеля здесь уже делился. + живописный трекинг и подъем на канатной дороге.
3️⃣Эльбрус и суслики
Ездили в урочище Джилы-Су с ночевкой. На рассвете нам открылся величественный Эльбрус. Завтрак и кофе на газовой горелке + все утро кормили милых и пугливых сусликов
Помимо этого мы посетили еще большое количество мест, одни переезды от локации к локации приносили уйму эмоций и новые пейзажи за окном.
Возможно вы тоже захотите посетить эти места 😉 Пишите, если захотите спросить что-то более детально
❓Как правильно проектировать и развивать хранилище данных (DWH), чтобы оно отвечало бизнес-задачам компании?
Приходи на авторский курс Руководство по DWH: Архитектура, Инструменты, Внедрение
📆 Дата: 21 июля – 1 августа 2025 г.
📍Формат: онлайн с ведущим экспертом. 32 ак.часа практического интенсива.
💲Стоимость: 93 000 р. (поможем оформить обучение от компании).
📌 Для тех, кто хочет говорить на одном языке с бизнесом и IT, определять необходимость внедрения DWH и его ценность для бизнеса.
📚Вы научитесь:
⏩Разбираться в архитектурных подходах к созданию DWH и понимать их эволюцию.
⏩ Выбирать правильную архитектуру в зависимости от задач компании.
⏩ Работать с современными инструментами и концепциями, такими как Data Mesh, Data Lakehouse, Apache Iceberg, Trino, dbt.
💡 В результате вы сможете участвовать в проектах по разработке и оптимизации DWH с учетом актуальных практик.
⚠️Также, если вы хотите освоить ключевые навыки, необходимые для установки, настройки и поддержки аналитической СУБД ClickHouse, ждем Вас на курсах:
Запросы в Clickhouse
📆 Даты: 21 – 23 июля 2025 г.
Разработка и поддержка в Clickhouse
📆 Даты: 28 – 30 июля 2025 г.
👉 оставляй заявку , расскажем, как будет организовано твое обучение.
Идеальный вид из окна 😍
P.S. код открыл на ноутбуке чисто для фотки) в отпуске же все таки
Сегодня приехали из Архыза в Домбай. Сходили по маршруту на Сурфуджинский водопад. Здесь заповедная зона, на КПП в заповедник сказали что водопады закрыты из-за сошедшего ледника, поэтому дошли только до «Чертовой Мельницы»
Скину фотку в комментарии оттуда 👇
⚡️Качество данных: почему это также важно для аналитика как Python и SQL
Аналитик данных — это специалист, который добывает ценную информацию из достоверных данных, чтобы бизнес мог принимать обоснованные решения.
Для этого используются те же инструменты, что и для самого анализа — Python, SQL, математическая статистика и автоматизация процессов.
Присоединяйтесь к нашему вебинару, где разберём:
🟠Как качество данных влияет на принятие решений и карьеру аналитика;
🟠Метрики качества данных: актуальность, допустимость, полнота и другие;
🟠Частые причины проблем с качеством данных;
🟠Методы повышения качества данных: определение требований к КД, мониторинг КД, решение инцидентов.
Спикер: Павел Беляев, руководитель группы дата-аналитиков в компании Яндекс eLama.
📅 Встречаемся 24 июня в 18:30 по МСК
😶Зарегистрироваться на бесплатный вебинар
Уехал в отпуск, в процессе или после поделюсь впечатлениями о поездке длиной в 7+ тыс. км
Собирали вещи 3 вечера, пытался разложить все удобно в машине, но как можете видеть по моему лицу на видео это удалось сделать с трудом 😁
Можете проголосовать за канал, там кажется с 1-го уровня будет доступна 1 история в день. Если наберем 16 голосов, буду делиться с вами красивыми пейзажами Кавказа)
https://t.me/boost/data_study
Опыт 🟰Насмотренность
Каждый понимает, что для ведущего высокооплачиваемого специалиста важно быть опытным. Даже в резюме ключевым фокусом внимания всегда является блок "опыт работы" - что ты уже делал и как решал.
Про опыт
Когда ты джун, каждая задача - это что-то новое, то что ты никогда раньше не делал. В этот момент ты набираешься опыта. Получаешь свой опыт и перенимаешь опыт других коллег, перенимая процесс решения задач, алгоритм анализа, синтаксис скриптов/запросов и т.д., вплоть до привычек решать задачу А с помощью инструмента В, потому что до этого у тебя не было своего опыта и все вокруг тебя делают это так. Ну и ты также начнешь делать.
Опыт заключается в наработке собственных подходов или заимствовании доступных и известных тебе, применяя это здесь и сейчас. Опыт - то что ты приобрел и прошел это.
Про насмотренность
Но я задумался, что опыта на каком-то уровне может не хватать или опыт может быть не совсем правильным/релевантным/эффективным.
Ведь задумайтесь, в одной компании ту самую задачу А все решали инструментом В, а в другой компании эту же задачу А решают другие люди, но инструментами С, D и E. И вполне возможно что твой опыт с вариантом В не самый эффективный, но исходя из опыта ты знаком только с ним и можешь даже не задумываться о том, что есть другое.
Для себя насмотренность я понимаю как "узнать, как решают одну и ту же задачу разными вариантами/подходами/инструментами другие компании/специалисты". Важно понимать, что насмотренность отличается от опыта тем, что ты можешь только посмотреть вариант решения, но не применить его, тем самым не преобразовав это в опыт.
🔎 Насмотренность - знаешь как решать разными способами, опираясь на знания и опыт других, но мог не применять эти знания. Если применил, то получил свой опыт.
🔎 Опыт - прошел путь решения сам или путем заимствования другого опыта.
Мне кажется, что насмотренность более важна для специалистов синьерного уровня, и для этого есть несколько причин:
1️⃣ есть уже наработанный свой опыт и его можно сравнивать с другим опытом через насмотренность. (Типа "я знаю как решить эту задачу и решал ее много раз, но хочу узнать как ее решали другие и сравнить свой опыт)
2️⃣ синьеры как правило являются наставниками для более младших специалистов. и лучше будет сразу в наставничестве давать более широкий опыт: "можно сделать так, а можно иначе, а в другой компании ребята делают так и можешь также попробовать"
3️⃣ опытные специалисты могут быть драйверами роста, внедряя (или пытаясь внедрить) лучшие практики с рынка. а как увидеть эти практики - с помощью насмотренности.
4️⃣ появляется своя команда и часть задач выполняется не твоими руками, а руками твоих коллег. ты можешь повлиять на результат, но не своими руками, а через передачу знаний: "смотри, можем попробовать изобрести велосипед и получить свой опыт, а можем попробовать решить как ребята на конференции рассказывали - посмотрел их решение и предложил тебе попробовать также сделать".
Финализирую:
🔹если джун - нарабатывай собственный и перенимай опыт от своих наставников
🔹если есть базовый опыт - качай насмотренность, как то же самое делают на рынке другие спецы
На днях решал несложную одноразовую задачу по фрилансу. Суть в том, что данные были получены с помощью python и по датасету нужно было сделать несколько преобразований и вычислений метрик.
Преобразования сами по себе стандартные:
фильтрация, агрегация, сортировка. Можно взять написать все эти операции с помощью pandas к уже имеющемуся датафрейму.
Но мне так стало лень писать несколько строк кода на python, что для меня было проще написать всю логику в одном select запросе на sql 😁
Вы спросите
"нафига так делать???" чтобы применить sql данные нужно положить в базу данныхНет, точнее не всегда) Данные остались в том же датафрейме, а обработку я сделал с помощью pandasql. Простой пример применения и сравнения pandas VS pandasql 👇
import pandas as pd
from pandasql import sqldf
data = {
'product_id': [1, 2, 1, 3, 2, 3, 1],
'sale_date': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04'],
'amount': [100, 200, 150, 300, 250, 350, 400]
}
df = pd.DataFrame(data)
# логика с pandas (фильтруем по датам, группируем по product_id, считаем агрегат суммы по полю amount и сортируем по нему же)
result_df = (
df[df['sale_date'].between('2023-01-02', '2023-01-03')]
.groupby('product_id', as_index=False)['amount']
.sum()
.sort_values(by='amount', ascending=False)
)
# или применяя sqldf
query = """
SELECT product_id, SUM(amount) as total_amount
FROM df
WHERE sale_date BETWEEN '2023-01-02' AND '2023-01-03'
GROUP BY product_id
ORDER BY total_amount DESC
"""
sql_result = sqldf(query, globals())
Я на работе настолько привык крутить все данные с помощью SQL, что в голове любые преобразования я продумываю на логике sql-запросов, а потом если все таки нужно могу переложить это на python скрипты.
Это как с разговорными языками. Если например переезжаете в другую страну и начинаете разговаривать/писать/слушать на другом языке, то у вас мозг со временем начинает мыслить на этом же языке. У меня так было с английским 🇬🇧, когда учеба и работа была полностью на английском, при этом жил в Москве, но все равно замечал что формулирую предложения сначала на английском, а потом уже осознаю что можно на русском)
P.S. sqldf применяет диалект SQLite, поэтому можно использовать все функции которые доступны для этой базы.
👍 если узнали новенькое для себя из поста⚡️Пошаговый план: как стать аналитиком данных в 2025
Хотите попасть в аналитику, но теряетесь в море информации и не понимаете, какие навыки действительно важны? Боитесь, что без опыта вас не возьмут на работу? И да, ещё один популярный вопрос — а что, если мне 30/40/50+ лет?
Андрон Алексанян — эксперт по аналитике с 8-летним опытом и по совместительству CEO Simulative — покажет рабочие схемы и чёткий план, как устроиться в аналитику быстрее, даже если у вас нет опыта
Что будет на вебинаре?
🟠 Разберёте полный роадмап: что учить, в каком порядке, до какого уровня;
🟠 Лайфхаки трудоустройства:
— покажут реальные примеры, как оформить резюме и портфолио, чтобы привлекать внимание;
— обсудите, какие отклики работают, а какие сразу отправляют в корзину;
— изнанка найма: инсайдерский взгляд на процессы отбора
🟠 Практические техники для новичков: разберёте, как компенсировать недостаток опыта и быстро закрывать пробелы в знаниях
🕗 Важно досмотреть вебинар до конца, чтобы получить бонус от Simulative, который поможет бустануть карьеру
😶Зарегистрироваться на бесплатный вебинар
Эффективная загрузка данных в PostgreSQL с помощью Python
В этот раз на курсе ученица столкнулась с задачей загрузки своего датасета в базу данных PostgreSQL. Все бы ничего, это типичная задача, через которую проходят ученики, но здесь повлиял объем исходных данных. На входе был json файл объемом 150Мб, который если преобразовать в формат таблицы, то получится 8.9 млн строк. Не Big Data, но и не маленькая экселька на самом деле.
Мы сравнили разные методы загрузки такого датасета в одну и ту же базу данных в пустые таблицы и вот что получилось:
Самый быстрый метод -
COPY (выполнился за 25 секунд). Если вкратце описать его особенность, то этот механизм специально предназначен для массовой вставки данных внутри одного запроса к серверу базы данных, в отличие от INSERT команды, где каждая вставка будет обрабатываться сервером как отдельный запрос (или группы запросов) и проходить дополнительно разбор sql команды через планировщик базы данных, что также ест ресурсы.
Для COPY предварительно пришлось преобразовать датафрейм в .csv файл, чего например не нужно делать с удобным методом to_sql.
Кстати, для всех остальных методов вставки которые помню нужно отдельно сначала создать таблицу с помощью CREATE TABLE, потом уже выполнять вставку. Метод to_sql сам создает таблицу, если ее в базе данных не существует.
Но часто без INSERT не обойтись, когда например важно вставлять данные часто и небольшими частями, не сохраняя их при этом предварительно в виде файла.
Результаты разных способом по длительности выполнения можете оценить на скрине. 👍 если возьмете себе на заметкуФункции и Хранимые процедуры SQL
🔎 Функция SQL предназначена для выполнения логики над данными с учетом входных параметров функции и возвращения одного значения, которое может быть либо скалярным (например, строка, число), либо табличным (набор строк). Функции обычно вызываются как часть выражения в SQL запросах и могут использоваться, например, для вычисления значения колонки, условий фильтрации в
WHERE или как часть JOIN. Т.е. функции обычно включают в себя выполнение SELECT запросов, либо применение логических, математических функций с заданными параметрами.
🔎 Хранимая процедура включает в себя набор инструкций SQL, который сохранен под определенным именем и выполняется как единая операция. Хранимые процедуры могут принимать входные параметры, выполнять комплексные операции, включать логику управления потоком (например, условные конструкции IF и циклы LOOP), выполнять операции DML (create, insert, delete).
✏️ Сравнение функций и хранимых процедур:
1. Возвращаемые значения:
- Функции: Всегда возвращают значение. Функция может возвращать одно значение (скалярное) или набор строк (таблицу). Возвращаемый тип данных должен быть указан при определении функции.
- Хранимые процедуры: Не обязательно возвращают значения. В PostgreSQL, процедуры могут возвращать результат через выходные параметры (OUT), но они могут также быть использованы для выполнения операций без возвращения данных.
2. Вызов:
- Функции: Могут вызываться внутри SELECT запросов, либо вызываться как результат самого запроса, например SELECT название_функции()
- Хранимые процедуры: Вызов хранимой процедуры выполняется командой CALL название_процедуры()
3. Транзакции:
- Функции: Обычно выполняются внутри транзакции вызывающего запроса и не могут управлять транзакциями самостоятельно (не могут выполнять команды COMMIT и ROLLBACK).
- Хранимые процедуры: Могут включать команды управления транзакциями. Это позволяет процедурам выполнять несколько транзакций в рамках одного вызова.
4. Использование:
- Функции: часто используются в запросах SQL как часть выражения в SELECT, WHERE или JOIN и для вычислений, которые требуют возвращения результата.
- Хранимые процедуры: чаще используются для выполнения набора действий, которые могут включать несколько разных SQL операций, включая изменение схемы, обновление данных, управление пользователями и т. д.
Статьи на эту тему:
📍 Функции и хранимые процедуры в SQL: зачем нужны и как применять в реальных примерах
📍Документация функций PostgreSQL
📍Документация процедур PostgreSQL
📍Stored Procedure vs Function in PostgreSQLRepost from 01 team
LTV, RFM, SQL
Для кого-то — рандомный набор букв, но для Marketing Researcher — это почти вся жизнь
➡️ Если ты умеешь видеть за цифрами реальные причины и превращать выводы в действия, читай дальше. Нам нужен именно ты.
Что предстоит делать:
🔵Запускать исследования и обеспечивать качество их результатов
🔵Разрабатывать брифы, опросы, тесты
🔵Анализировать данные и помогать продукту расти
Что важно:
🔵Опыт работы в исследованиях от года
🔵Знание маркетинговых инструментов и метрик (LTV, CPA, CPM)
🔵Умение проводить опросы, сегментировать аудиторию и строить прогнозы
Что даём взамен:
🔵Удалёнку и технику для работы
🔵Зарплату выше рынка
🔵Карьерный рост
Твои идеи могут изменить продукт. Откликайся через @jobs1win_bot 📱
Ребят, кто-нибудь из вас ходит в Spirit фитнес на Технопарке?
Можем вместе иногда ходить, мотивировать друг друга)
На практике в компаниях видел множество подходов по управлению BI направлением
В одних компаниях предпочитают централизованный подход, где есть один BI инструмент и выделенные BI-аналитики и разработчики. В других компаниях встречается "зоопарк" BI решений, где практически каждый отдел имеет свой собственный стенд BI (Power BI, Tableau, Looker, Superset, Datalens ...), каждый поддерживает свои отчеты самостоятельно. При этом в каждом решении есть свои плюсы и минусы. Например, для централизованной BI-команды распространенный минус - ресурсы команды, чтобы обработать все входящие команде запросы уложиться в сроки заказчиков. А минус "зоопарка" - нет стандартизации, одни и те же метрики, отчеты, исследования могут быть сделаны по несколько раз в разных дашбордах и не сходится по выводам.
Для поиска наиболее подходящего компании развития существует BI-стратегия, которой будут обучать на курсе Разработка BI стратегии
🔹Обучение подойдет лидерам и руководителям BI-направлений, и тех кто развивает аналитику в компании или только планирует запуск BI-проекта.
🔹В результате обучения вы разработаете собственный макет BI-стратегии — с учётом зрелости вашей организации, готовности пользователей и инструментального ландшафта.
🗓 Даты обучения: 18 июня - 11 июля 2025
11 онлайн-встреч в вечернее время с продолжительностью по 2 часа, чтобы сформировать подходящую вам BI-стратегию и приобрести этот ценный навык.
Моим подписчикам авторы курса предлагают скидку 10% по промо "Data Study". Указывайте промо в комментарии к заявке на курс. Успевайте воспользоваться, пока есть возможность
Разработка BI стратегии
+3
Рефлексия с конференции
Было несколько докладов, которые понравились по содержанию и подаче
При этом они не технические, а больше про развитие в карьере и осмысление своей ценности как специалиста.
Первый доклад от Виктора Кантор «Задачи, за решения которых платят и будут продолжать платить.»
Отсылка в докладе в том числе была к тому, что у людей есть страх что нас вскоре всех заменит AI. Но это далеко не так. Но основные тезисы выделил для себя ниже такие 👇
1️⃣Сотрудник своей работой должен приносить прямую или косвенную ценность компании, которую можно измерить как правило в $
2️⃣Чтобы сотрудник был ценен и получал грейд-ап, его ценность должна быть выше чем затраты на него в виде зп и других накладных
Просто работать больше чтобы больше платили не получится, в ваших рабочих задачах должна быть ценность 🪙
Еще один доклад был непосредственно для аналитиков и их способ взаимодействия с бизнесом.
Кто не в курсе IT и сам бизнес обычно разделяются внутри компаний, IT - это одна из функций бизнеса, которая позволяет ему существовать и развиваться.
Из доклада Александра Кондрашкина «Команда как бизнес-партнер: как перейти от ТЗ к росту метрик» выделил следующие тезисы
1️⃣Аналитик - партнер для своих бизнес-заказчиков, а не тот кто бездумно пилит дашборды, крутит данные потому что «попросили». Аналитик не исполнитель, а помощник.
2️⃣У каждой задачи есть цель, которая влияет или не влияет на бизнес-результат. Не надо бездумно делать все задачи, нужно понять их ценность вместе с заказчиком прежде чем реализовать их.
Кто был на конференции, какие вам доклады запомнились?
Если не были на конференции, что думаете про эти тезисы? Близки они вам или нет?
Поделитесь своими мыслями в комментариях 👇
+1
Отметил ❤️ те доклады, которые хочу завтра послушать на конференции
Кто захочет пообщаться, пишите в личку, буду рад новым знакомствам)
Available now! Telegram Research 2025 — the year's key insights 
