Аналитика данных / Data Study
8.48K subscribers
404 photos
38 videos
24 files
330 links
Сайт: https://datastudy.ru/
По всем вопросам: @daniildzheparov

Про аналитику и инженерию данных

Вакансии: https://t.iss.one/data_vacancy
Книги: https://t.iss.one/analyst_books
Download Telegram
Сегодня начали собесить стажеров в нашу команду, до конца недели ребята уже получат решение по приглашению на стажировку в Сравни 👨‍💻

Кто пропустил, Сравни запускает летнюю стажировку по направлению аналитики данных и продуктовой аналитике. Вот здесь писал об этом

📍Отличная новость для тех кто еще не подал заявку - старт стажировки сдвигается на 1 июля, чтобы все комфортно могли стартовать после сдачи сессий, дипломов и т.п.

Оставляйте заявку, решайте тестовые задания, и возможно с вами уже скоро начнем работать в одном коллективе 😉
👍52
Начитаешься таких статей про подключения из одной базы данных в другую и думаешь «а может ETL вообще не нужен 😅»

🔗 dblink для подключение из Postgres к другим БД
🔗 Интеграция Postgres и Hadoop

Все это конечно хорошо, но применение зависит от поставленных задач. Большая часть практических кейсов все равно требует полноценного ETL пайплайна, где не обойтись выполнением запросов к одной БД из другой
👍6
🔍 ETL с помощью SQL: Инкрементальная загрузка 🔍

В отличие от полной перезагрузки (Full Reload), описанного в этом посте, инкрементальная загрузка перемещает только новые или обновленные данные. Это экономит ресурсы и время, особенно при работе с большими объемами данных.

Давайте поговорим о ключевых этапах этого процесса:

1️⃣ Определение инкремента данных
Инкремент - набор данных, которые нужно загрузить. Он может определяться как набор новых строк в источнике, так и набор строк с обновленными значениями. Для определения инкремента обычно используются поля со смыслом как "дата обновления записи", "дата создания записи" и др. с похожим смыслом, по которым можно сделать выборку нужного инкремента.
Пример выделения инкремента из таблицы source по условию, что поле update_date имеет сегодняшнюю дату
SELECT *
FROM source s
WHERE update_date = CURRENT_DATE()


2️⃣ Вставка инкремента в target таблицу
Пример запроса может выглядеть так:
INSERT INTO target
SELECT *
FROM source s
WHERE update_date = CURRENT_DATE();

Здесь есть нюанс, что в таблицу target попадут все записи инкремента и останутся те, которые были уже в таблице например под одним и тем же id. Таким образом может собираться накопительная историческая таблица, например с продажами. К примеру в таблице target уже была запись по продаже с id = 5 и status = 'buy'. А в новом инкременте из source прилетит обновленная строка с id = 5 и status = 'cancelled'. Таким образом в target будет зафиксирована вся история обновления строк.

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

Оставляйте реакции, если пост был полезен 😉
🔥363👍3
Привет
Я являюсь ментором в Solvery и сейчас мне ребята написали, что сегодня в 19:00 есть отличная возможность пройти moc-собеседование на middle бизнес-аналитика.
Собеседование будет записываться в прямом эфире, для вас это классная возможность потренироваться + добавить в резюме такой публичный опыт 😉

Напишите мне в личку @daniildzheparov кто готов принять участие

Upd: предложение неактуально)
Это я получил костюм для эндуро-покатушек и мысленно газую на мотике в нем 😂

Сегодня праздничный день, а значит проведите его с пользой для себя и своего здоровья, пополните силы перед еще 2-мя рабочими днями!
🔥232😁2
Синдром самозванца

Синдром самозванца - психологический синдром, при котором человек не может реально оценить свои качества и личные достижения. Человеку кажется, что он знает меньше других и не достоин того что сейчас имеет. Это проблема адекватной оценки своих достижений и умений.

Лично у себя я ловлю такие мысли иногда, что я "делаю мало", "знаю недостаточно хорошо", "не заслуживаю чего добился" или "мог бы в свои годы достичь большего".

Знакомо

Несколько способов как бороться с этим:

1️⃣ Сравнивайте свое текущее состояние с тем что было 1/2/3 года назад
В моменте может показаться, что вы непродуктивны или двигаетесь не так быстро как хотелось бы. Но если вы сравните себя текущего с собой из прошлого, то скорее всего удивитесь как много вы сделали и достигли за это время.

2️⃣ Спрашивайте обратную связь о себе со стороны
Мы себя видим одним образом, люди со стороны могут видеть вас совсем по-другому. Спросите у своих родственников, друзей, коллег что они думают про вас.
- Как бы они вас описали в нескольких предложения, подчеркнув ваши основные черты
- Какие они видят в вас сильные стороны
- Какие они видят в вас недостатки (увы, они есть у всех, но с ними можно работать 👌)
Вы удивитесь сколько нового можно узнать о себе взглядом других людей со стороны.

3️⃣ Всегда занимайтесь саморазвитием и ставьте перед собой цели
Банально, но это дает гарантию, что вы можете оцифровать свои достижения по явному чек-листу прописанных целей. Достижение цели и проставление заветной галочки done напротив нее дают вам заряд положительных эмоций и фактическое признание своего достижения.

Это пункты, которые я взял себе на вооружение, вы их тоже можете попробовать 😉
👍24🔥43
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Исследуем данные с помощью ydata-profiling

Сегодня расскажу про инструмент, который вы можете использовать для первичного анализа данных (EDA) и оценки их качества (Data Quality Check) - это библиотека ydata-profiling.

Этот инструмент позволяет в считанные минуты получить полный отчёт о ваших данных, исследовать их основные характеристики и выявить потенциальные проблемы до глубокого погружения в анализ.

Основные возможности ydata-profiling:

1. Генерация отчётов
С помощью библиотеки можно быстро подготовить отчет , который включает в себя статистику по каждой переменной, распределения, корреляций, пропущенных значений и многое другое.

2. Оценка качества данных
Этот же отчет поможет обратить внимание на проблемы в ваших данных, такие как пропущенные значения, дубликаты или неоднозначные форматы, что позволит оперативно перейти к очистке данных.

3. Интерактивные визуализации
Можно визуально посмотреть на распределения и корреляции благодаря встроенным графикам и интерактивным элементам.

Как начать работу?

Для начала работы с ydata-profiling нужно установить библиотеку, например с помощью pip:

pip install ydata-profiling



После установки загрузите ваш DataFrame и сгенерируйте отчёт в несколько строк кода:

import pandas as pd
from ydata_profiling import ProfileReport

df = pd.read_csv('data.csv')
profile = ProfileReport(df, title="Profiling Report")



И на выходе вы получаете отчет, который можно просматривать прямо в Юпитер ноутбуках, либо сохранить например в html и
открыть просто в браузере и даже поделиться с коллегами)

🔗 Официальная документация ydata-profiling
🔥23👍141
Классная статья, в которой можно посмотреть устройство хранилища данных по слоям хранения.
Расписаны виды источников данных и даже применяемые SCD типы для загрузки данных 👍
Кто задается вопрос «что это такое ваше DWH и почему придумали новое название для базы данных» - вам обязательно к прочтению 😉

Статья начала 2022 года, видно что описанный стэк технологий явно неактуален. Думаю ребята уже съехали как минимум с Oracle (в конце написано что в планах был переезд на Greenplum), SAP Business Objects и Power BI тоже скорее всего чем-то заменены.

Читать статью
🔥7👍2
Бесконечно можно радоваться 3 вещам:
1. Когда светит солнышко ☀️
2. Когда твои ученики находят работу 💼
3. Когда твои посты читают и обсуждают в проф. сообществах 🧑‍💻

Вообще сегодня отличное настроение, жена сдала госы и защитила красный диплом 📕👩‍🎓 В медицинском ВУЗе!!! Это вам не аналитике учиться, у них там думать и зубрить кучу материала нужно 😃

Пытаюсь сейчас ее переманить в аналитику или в IT в целом, она говорит смотря на мои открытые экраны со скриптами, что «более скучную работу чем у тебя я не видела» 😅 Вот так, каждому свой выбор)

#кейс
16👍6🔥4
Нашёл вот такую визуальную карту Chart Suggestions для выбора более оптимального и эффективного визуального элемента в зависимости от данных и решаемой потребности визуализации

Забирайте себе, может кому-то пригодится на практике 😉
👍314🔥3
Открепляю сообщени о стажировке в Сравни

Мы набрали стажеров, по впечатлениям от собесов все ребята мотивированы погружаться с головой в аналитические задачи. В понедельник поедем знакомиться в офис, делать онбординг и есть пиццу 😉🍕
🔥246
Методология DataOps

Слышали ли вы про понятие DataOps?
Если нет, то сейчас разберем вместе, что оно обозначает.

🔎 DataOps - это методология и набор практик непрерывной интеграции данных, автоматизации и мониторинга управления данными в течение всего их жизненного цикла.

Какие задачи входят в DataOps?
📍автоматизация процессов загрузки данных в хранилища
📍мониторинг операционных потоков данных
📍оптимизация аналитики данных
📍создание инфраструктуры для корректного хранения, движения и использования данных

Полезные ссылки для погружения в тему:
🔗 DataOps Wikipedia
🔗 Концепция DataOps
🔗 DataOps в Big Data
🔗 What is DataOps
🔥9👍3
Сегодня стажеры в свой первый день получали доступы и впитывали новые термины. Сразу вспомнился такой мем в тему 😃
😁313🔥2
🔍 ETL с помощью SQL: Инкрементальная загрузка с обновлением данных🔍

В предыдущем посте мы разобрали инкрементальную загрузку с сохранением всей историчности данных. Давайте разберем загрузку инкремента, чтобы в target таблицы оставались только актуальные значения данных, т.е. исторические значение перезаписывались актуальными.

Ключевые этапах этого процесса будут следующие:

1️⃣ Определение инкремента данных
Пример выделения инкремента из таблицы source по условию, что поле update_date имеет сегодняшнюю дату
SELECT *
FROM source s
WHERE update_date = CURRENT_DATE()


Лучше нам результат запроса сохранить в промежуточную временную таблицу.

CREATE TEMPORARY TABLE tmp_increment AS
SELECT *
FROM source s
WHERE update_date = CURRENT_DATE()


2️⃣ Вставка инкремента в target таблицу с актуализацией значений данных (перезапись)
Выполняем в 2 шага:

1) Удаляем данные из target, которые есть во временной таблице по уникальному идентификатору записи (например, id). Это удалит нам записи, которые нужно обновить

DELETE FROM target
WHERE id IN (SELECT id
FROM tmp_increment);

2) Вставляем инкремент с актуальными записями из временной таблицы tmp_increment в target

INSERT INTO target
SELECT *
FROM tmp_increment;

Таким образом в target таблицу будут добавляться новые записи и перезаписываться обновленные актуальные записи из source
Оставляйте реакции, если пост был полезен 😉
👍24🔥4
Кому интересно почитать про внутрянку устройства PostgreSQL, а не только аналитические запросы на SQL писать, предлагаю почитать эту статью
На очень понятно языке со схема объяснено как что работает.
Есть еще вторая часть, которую сам пока не читал, но в ближайшее время ознакомлюсь
9🔥3👍1
💵 Новая статистика зарплат подъехала

Ждём результаты performance review в компании всем коллективом, будет на что ориентироваться в ожиданиях)

Статья
🔥15👍42
Давайте поздравим Даню с новым местом работы веб-аналитиком! 😃

Даня пришел ко мне на менторские занятия с запросом поиска работы аналитиком, имея опыт работы таргетологом и SMM-специалистом. Для этого мы
📍подтянули техническую базу навыков
📍собрали резюме
📍тренировались проходить собесы

Пару месяцев работы и твердый результат в виде трудоустройства, поздравляю! 🎉🎉🎉

#кейс
👍44🎉21🔥102
Вчера ходили отмечать годовщину 🤵👰‍♀️ в Японский Сад в Краснодаре

Прошло уже больше года после его открытия, но туда до сих пор стоят очереди за QR-кодом на вход. Мы купили депозит в ресторан, таким образом получили вход в парк. Однозначно рекомендация к посещению кто хочет и еще не сходил или не знал про этот парк. Погружаешься в какую-то сказку или ощущаешь себя действительно в Японии, очень понравилось 😃
🎉50