Дата аналитикс
1.9K subscribers
206 photos
21 videos
3 files
45 links
Здесь про IT не душным языком, Data Science, аналитику и жизнь внутри бигтехов

• истории из [ жизни | работы | карьеры ]
• тестовые из бигтехов
• полезные рекомендации и советы
• учебные материалы

Сотрудничество @Sounds_like_a_plan

Inst: chto_za_nikita
Download Telegram
Сравнение синтаксиса [ Pandas | Polars | PySpark] ч.1

Ранее на канале мы уже ознакомились с теорией о:
Pandas и Polars
PySpark

Сегодня разберемся, как одни и те же операции выполняются в данных инструментах.

Главное саммари по этому сравнению:
1. Polars очень схож с Pandas
2. PySpark очень схож с Polars
Так как в свободном доступе не получается поработать с PySpark - можно научиться работать с Polars и бОльшую часть вы уже будете знать
👍953🔥3
Практические вопросы по JOIN-ам

Мои любимые вопросы по JOIN-ам, которые часто показывают, знает ли человек на самом деле, как они работают:

У вас есть 2 таблицы.
1ая - 100 строк
2ая - 10 строк

Какое [ min & max ] количество записей выдаст:
1 секция
• inner join
• left join
• right join

2 секция
• cross join
• full outer join
• anti left join

Переходим к скринами, сначала пробуем сами решить, следующим скрином сверяемся с моим решением.

Ставим 💯 если получилось решить все, ✍️ если узнали для себя что-то новое
22🔥53💯3👍1
Взаимодействие с командой DWH

Один из важнейших навыков миддл аналитика — грамотное взаимодействие с командой DWH. Здесь подразумевается:

1. Понимание работы дата-инженера
• Вы должны понимать основные задачи и инструменты, с которыми работают дата-инженеры: ETL-процессы, структуры бд, способы оптимизации запросов.

2. Коммуникация на одном языке
• Важно уметь объяснить свои потребности на понятном команде языке и также понимать их ответ.
• Это не только упростит работу, но и поможет вам быть на одной волне с командой + снизит количество возможных недоразумений.

3. Составление четкого ТЗ для создания витрин
• Умение чётко и структурированно составить ТЗ для команды DWH — ключ к получению правильных данных.
• Хорошее ТЗ должно включать все необходимые детали: требования к данным, фильтры, формат и частоту обновления.

4. Понимание работы витрин
• Вы должны знать, как работают витрины данных: из каких источников данные собираются, как они обновляются и как их правильно использовать в аналитике.
• Это позволит не только корректно запрашивать данные, но и использовать их наиболее эффективно.
7🔥4👍2
Опыт увольнений

Многие говорят как устроиться быстрее и лучше, но мало кто говорит о теме увольнения.
Недавно у меня вышла интереснейшая беседа с HR-ом в одном из чатов.

Сначала небольшая МОЯ предыстория:
Я проработал небольшое количество времени в Озоне и все было супер... Ровно до тех пор пока ко мне не пришел рук и не сказал: "Никит, у нас оптимизация, сверху пришли и сказали сократить штат" (Это правда)

Мне предлагают 2 варианта:
1 - ротация
2 - 2 оклада и полюбовно распрощаемся

Я решил не торопиться со вторым и собесился в разные команды, куда хотел - не получилось, куда получилось - понял, что не будет интересно в длительной перспективе. И выбрал 2 вариант. Хотя озон мега хорош(

Далее советы начинающим и уже опытным ребятам тусующимся в этой кухне:
1. Если работодатель предлагает уволится «давайте по соглашению сторон в зубы стандартно 2 оклада» - всегда торгуйтесь, законом не оговорены никакие стандартные 2 оклада. Но многое зависит от причин.

• Если Ваше место сокращают, но не хотят это проводить как сокращение, то торговаться можно легко.
• Если Вас "просят" уйти (doesnt matter как вы работаете), то тоже можно торговаться, но надо понимать, что на Вас будут давить.
• Если вы хорошо работаете (по мнению обеих сторон), но, допустим, просто Ваше место нужно под другого, вы дорого обходитесь, у них есть вариант дешевле - это и используйте: "За два оклада уйду через три месяца. А за пять - сейчас"

Важные поинт.
Но вообще надо понимать, что всегда лучше расставаться красиво. Земля такая круглая, а бумеранг всегда возвращается)


• если вы проработали меньше 3-х месяцев, то торговаться вряд ли получится(
Важные момента для аргументации:
• в нашей сфере поиск работы с моим стажем в среднем занимает N (Если N > 2) месяцев, поэтому 2 оклада меня не спасут
• короткий срок работы вызовет вопросы у будущего работодателя (все равно не прикольно, можно указать этот момент)
• при устройстве опять проходить тучу собеседований и тестовых - не хотелось бы, а вот получается придется(

Итог:
Вот поэтому мне надо не 2 , а N окладов и я без вопросов уйду.


Самый важный поинт:
Не наглеть на пустом месте. Мир очень маленький и никогда не знаешь как сыграет та или иная ситуация в будущем.
32👏7🔥6
Совместно с каналом Ани решили сделать ответы на одни из самых часто задаваемых вопросов ребят, которые хотят вкатиться, но те кто уже в профессии, хотелось бы услышать ваше мнение по поводу вопросов.

1. У меня нет высшего технического образования. Это будет проблемой, нужна ли она вообще?
• Критически - не важна.
• Но для многих HR это важный поинт, если вы залетаете в IT специальность.
• У меня лично специальность Информационая Безопасность

Могу сказать что например экономисты вообще норм заходят в аналитику из-за понимания юнит экономики.

2. Как долго готовиться к собесам?
В зависимости от того, насколько хорошо вы знаете ту или иную предметную область.

В интернете куча роадмэпов по всем направлениям, но вот мой стартер пак для начинающих:
• Leetcode 30 первых задачек уровня easy по алгоритмам Python
• Leetcode 30 первых задачек по SQL + Обязательное решение не только на [ MySQL | PostreSQL ], но и решить эти задачки через Pandas (там есть такая возможность)
• SQL: подзапросы, CTE, сложные запросы, все типы оконок (агрегирующие - маст хэв) [ ранжирующие, смещения ] - обязательно потрогать и понять назначение, все джоины и порядок выполнения операторов, индексы
• По возможности парочку пару пет проектов на гитхабе с полным цикла анализа данных (Очистка, заполнение, обработка данных - тот же parse dates, визуализация, создание новых фич, label encoding, one hot encoding)
• Юнит экономика (понимание различных метрик в разных сферах)
• Шарить за колоночные бд, PySpark, HDFS

Крайне рекомендую использовать для подготовки бот Ани @DataismPrepBot, которым пользуюсь сам
Там собраны все необходимые темы для подготовки в виде квиза. Очень крутой интерфейс с гибкой настройкой тем под вас!

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


3. Мое мнение о стажировках

Если честно это очень щекотливая тема, я считаю пробоваться - стоит всегда. Но делать ставку только на них - не стоит. Вот куча других каналов как можно попасть на работу
• Подаваться на джуновские вакансии (от вас не убудет, а если хоть одна компания ответит из 20, это реальная возможность)
• Писать на почту самим в небольшие компании
• Мониторить чатики по типу: Джуниор вакансии
• Качать нетворкинг, просить знакомых рекомендовать вас в стажерские / джуновские позиции.

Сразу отвечу на вопрос: откуда брать знакомых?
• Вы можете обратиться ко мне и я вас порекомендую на доступные вакансии в МТС, не бойтесь стучаться в личку
LinkedIn


Вторую часть ответов на интересеные вопросы вы можете увидеть на канале Ани которая уже 5 лет работает в аналитике и помогает развивать ее в компании недвижимости М2
23👍73❤‍🔥2🔥2🤩1
Сравнение синтаксиса [ Pandas | Polars | PySpark] ч.2

Ранее на канале мы уже сравнивали синтаксис этих инструментов:

Сегодня посмотрим на более продвинутые методы в данных инструментах
👍962❤‍🔥1
Шардирование и партиционирование

Оооочень часто эти понятия путают. Давайте разберемся, в чем же отличие!

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

Шардирование - это разделение данных между разными серверами (или базами данных). Каждый шард хранит часть данных, и вместе они образуют полное хранилище. Это позволяет горизонтально масштабировать систему — при увеличении объема данных можно добавлять новые шарды и распределять нагрузку между ними.

В чем разница?

• Партиционирование — это способ оптимизации внутри одного хранилища данных, когда данные делятся на части, но остаются в одной таблице.

• Шардирование — это распределение данных между разными физическими серверами, чтобы избежать перегрузки одного сервера при большом объеме данных.

Закрепим:
Шардирование обычно используется в масштабируемых системах с большими объемами данных, тогда как партиционирование чаще применяется для оптимизации запросов в одной базе.
👍224🔥1
BI инструменты

В аналитике, в большинстве своем необходим навык построения дашбордов.

"А где получить навыки работы с ними?"

1. Superset
• легко настраивается, приятный туториал для новичков внутри приложения
• совместимость с Python: интеграция с Python требует дополнительных настроек, но возможна, что удобно для кастомного анализа (Привет Jinja...)
• популярен на рынке

2. Tableau
• легко настраивается
• совместимость с Python: интеграция с Python через Tableau Extensions API, что добавляет гибкость для анализа данных
• интуитивный интерфейс: идеален для пользователей с небольшим опытом в визуализации.
• популярен на рынке

3. Power BI
• интеграция с продуктами Microsoft: идеально для пользователей Microsoft Office.
• интеграция с Python и R
• менее популярен на рынке

4. Datalens
• интеграция с Яндекс Облаком: легко получает данные, хранящиеся в экосистеме Яндекса.
• поддержка Python: пока ограничена, но доступно взаимодействие с некоторыми скриптами через API.
• подходит для компаний с локальными данными: особенно удобен для тех, кто пользуется Яндекс.Облаком.
• набирает популярность на рынке

Все перечисленные на мой взгляд инструменты являются:
• актуальными и востребованными
• бесплатными
• поддерживают подключение данных из: PostgreSQL, MySQL, CSV и XLSX
❤‍🔥11🙏4
Способы оптимизирования запросов

Один из любимых вопросов от работодателей на собеседовании.

Чтож давайте разберемся, что от вас желают услышать интервьюеры

1. Уменьшение объема данных
• Используйте SELECT только нужные столбцы, вроде база, но так и тянет многих обычно нажать на любимую всеми звездочку.
• Ограничьте выборку по строкам, используя фильтры и лимиты.

2. Оптимизация функций и выражений
• Как можно меньшее использование LIKE, SUBSTRING, и преобразования типов, особенно в WHERE-условиях.
• Эти операции очень тяжелые в обработке и могут замедлить запрос (особенно с большими данными).

3. Выбор правильных индексов
• Индексирование наиболее используемых полей (часто используемых в WHERE, JOIN, и ORDER BY).
• Индексы ускоряют доступ к данным, но важно понимать меру и не лепить их 50 штук.

4. Агрегации и подзапросы
• Для оптимизации избегайте агрегаций и подзапросов, когда это возможно.
• Вместо них старайтесь использовать JOIN и WITH (CTE) для промежуточных результатов, если они приводят к меньшему объему данных на выходе.

5.Оптимизация JOIN и порядка соединений
• Порядок JOIN-ов важен: сначала соединяйте таблицы с меньшим количеством строк, чтобы уменьшить объем промежуточных данных.
• По возможности, оптимизируйте порядок с учетом индексированных полей.

6. Анализ планов выполнения (EXPLAIN)
• Используйте EXPLAIN для понимания, как база данных выполняет запрос.
• Смотрите на узкие места, как последовательность сканирования таблиц, индексы, и перезаписывайте запрос при необходимости.
• Поддерживается в: PostgreSQL, MySQL, SQL Server, Oracle (храни его господь) и другие...

7. Кэширование результатов
• Если один и тот же запрос крутите 10 раз, рассмотрите кэширование результатов в материальном представлении (materialized view) или временной таблице, чтобы не рассчитывать их каждый раз заново.

8. Использование партицирования (Partitioning)
• Разделение больших таблиц на разделы (partitioning) по датам или регионам (или другому подходящему полю)
• Позволяет базе данных обращаться только к нужному разделу, ускоряя запросы.

9. Выбор правильного типа данных
• Использование INT вместо BIGINT или VARCHAR(100) вместо TEXT экономит место и снижает объем данных, с которыми работают запросы, ускоряя их выполнение.

Очень важный поинт:
Кириллица кодируется 2мя байтами, в отличии от латиницы, то есть varchar(10) может содержать 5 ру символов, либо 10 en символов


Какие способы вы бы еще добавили сюда?
❤‍🔥25👍145🔥1🫡1
Квиз! Какое [ min | max ] количество строк вернет CROSS JOIN для таблицы в 3 и 4 записи? (дублей нет)
Anonymous Quiz
6%
[ 0 | 3 ]
4%
[ 3 | 4 ]
16%
[ 3 | 12 ]
74%
[ 12 | 12 ]
👍6
Квиз! Какое [ min | max ] количество строк вернет INNER JOIN для таблицы в 3 и 4 записи? (Дублей нет)
Anonymous Quiz
19%
[ 0 | 4 ]
40%
[ 0 | 3 ]
19%
[ 3 | 4 ]
22%
[ 3 | 3 ]
👍4