it пингвин | data engineer
1.88K subscribers
51 photos
11 videos
2 files
63 links
Канал главного разработчика Data Lake крупного банка.
База знаний для джунов, разбор собесов, задачи (jun/mid/sen) с решениями, полезные материалы, обзоры технологий и архитектур.

По вопросам и менторству писать @it_pengwin
Download Telegram
В продолжении предыдущего поста выкладываю свои закладки

Попробую кратко

Нужно повторить все пет проекты из roadmapa .
+ я должен туда закоммитить свою инфу по индексам и партициям
+сделать самому несколько пет проектов.

Повторить прототип lakehouse

Допройти курс по докеру
Допройти демо курс по DE

Начал и бросил классный бесплатный курс по dbt

Руководство по языку программирования Python
МФТИ Python
Учебник по машинному обучению

Пройти на степике курс от Балакирева добрый Пайтон
наверное неактуально уже, Инди курса по питону достаточно
Возможно пройти курс поколения пайтон для профессионалов.
upd. оказывается курс - платный, так что вычеркиваем.

Несколько уроков от Симулэйтив
Как Docker упрощает жизнь аналитиков и инженеров данных. Взял проект у лектора. Нужно все повторить
Автоматизируем процессы с Airflow как в Бигтехе
Как Docker упрощает жизнь аналитиков и инженеров данных

Порешать алгосы

Awesome Data Engineering. Дорожная карта Data Engineer RoadMap

Изучить доку от Аренадаты по технологиям, что-нибудь простое повторить

Polars Cheat Sheet

Курсы от ВШЭ. Посмтреть и по возможности повторить действия - 1, 2, 3

+ нужно найти норм обучающие материалы по спарку (у кого есть скиньте плз) и
airflow. Желательно какой-нить готовый образ докера)
+ найти норм инфу по кафке и у себя ее развернуть и потыкаться
+ найти курс по клику (вроде слышал где-то на яндексе есть бесплатный) и чекнуть оффициальную доку.
+ найти бесплатные крутые курсы по ML
+ пройти курсы по ООП и функциональному программированию

*Наверное я что-то забыл. Если что позже докину👌

Презентации

Презентации, я периодически выкладываю. Мне их тоже нужно отработать https://t.iss.one/data_penguin/60

Книги

Дочитать:
Основы инженерии данных
Том Кайт - Оракл для профессионалов
Специалист в сибири
Дочитать мелкую книгу билингв - История Бенджамина Баттона.

Начать читать все отложенные книги (список в комментах)
Какие книги нужны будут, пишите - скину👌

И давайте у кого есть крутая инфа - скидывайте в комменты⬇️ 🚀
РАСШИРИМ НАШИ ЗАКЛАДКИ 😂

it пингвин | data engineer 🐧

#полезная_инфа
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥224👍41🙏1
Всем привет 🤝

Буду стараться вести дневник.

*вряд ли раз в неделю, у меня не так много интересных событий в жизни 🥲


Что было на прошлой неделе:

Как и говорил, я получил все доступы в новой компании и начал выполнять первые задачи. Сделал 16 etl потоков. Выгрузка данных из Oracle в Hadoop при помощи etl инструмента informatica (не стандартная, а для озера dei).

Темп поймал, все скрипты и окружение под себя настроил, теперь смогу эти потоки быстро штамповать.

Наблюдение:
*какой же хадуп бывает медленный. Иногда одна тестовая строка данных может вставляться несколько минут..

Из своих закладок разобрал лекцию от симулэйтив по докеру и всю сборку повторил на своем пк, было полезно 👍
теперь буду тот пост периодически пополнять и ставить на выполненном.

На майских праздниках не получилось никуда съездить отдохнуть, но зато на прошедших выходных смогли с женой уйти от городской суеты. Уехали в лес в красивый инстаграмный домик. Жарили мясо, наслаждались природой, смотрели на проекторе фильмы 90-х и 00-х, в общем круто отдохнули и перезагрузились. Утром в понедельник уехали с домика и пошли РАБОТАТЬ 😔


Планы на эту неделю не грандиозные:
На работе продолжать делать задачи и выполнять 3-5 потоков в день
Кроме работы основная задача - закомититься в роадмап Жени и Вовы.
Провести два продуктивных занятия с менти
В субботу пойти в бар и посмотреть матч ФК Краснодара. К футболу я давно охладел и особо не слежу, но это будет важный и интересный матч - Краснодар может первый раз взять чемпионство 😁

Также из интересного, ко мне пришел hr из it компании, ищут "Руководителя разработки DWH". Я так понял вилка 300-400к. Кому интересно, напишите мне в личку и пришлите резюме ✍️
Здесь пиарить компанию не хочу 😅

Интересен ли вам такой формат?
И как у вас началась очередная рабочая неделя?😁

#дневник
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥65💅2🤯1
🔹Задачи🔹

Давно не было задачек с собесов 😎


📌Т-банк задача про должников (lvl mid):

Даны 3 таблицы:
1) таблица со счетами кредитных карт account: 
account_id (id счета)

2) таблица с выписками по кредитным картам statement:
statement_id (id выписки),
account_id (id счета),
statement_dt (дата выписки),
due_dt (дата погашения выписки),
min_amt (мин. сумма погашения)

3) таблица с платежами клиентов payment:
payment_id (id платежа),
account_id (id счета),
payment_dt (дата платежа),
payment_amt (сумма платежа)


Задание: вывести список недолжников на сегодня.


📌Х5 (lvl jun)

Даны таблицы t1 и t2.
|t1.a|   |t2.a|
|----+ |----+
|1 | |1 |
|2 | |3 |
|3 | |4 |
|6 |


Сколько будет записей при следующих типах соединений:
INNER JOIN t1.a = t2.a
LEFT JOIN t1.a = t2.a
FULL OUTER JOIN t1.a = t2.a



В чем разница между типом данных CHAR и VARCHAR в SQL?

Каким образом можно найти третий по счету максимальный результат в каждой category?
таблица:
- id
- result
- category




📌Росбанк (lvl jun)

Дана таблица:
create table employee
(
id integer, -- ID сотрудника
department_id integer, -- ID подразделения, в котором работает сотрудник
chief_flg boolean, -- флаг того, что сотрудник занимает руководящую позицию
birth_dt date -- дата рождения
)


0️⃣ Вывести список руководителей

1️⃣Вывести список сотрудников, которые старше своего непосредственного руководителя

2️⃣Найти второго самого старшего сотрудника

3️⃣Предположим, что в таблице на 1 сотрудника может быть 2 записи, у одной из которых не заполнена дата рождения. Нужно удалить такие дубли из таблицы


Как вам задачки?
*Некоторые похожие задачки на канале уже были разобраны.

Не стесняемся, присылайте любые свои решения в комменты, хочу увидеть, что вам это интересно⬇️
И насыпьте реакций 😁😊


it пингвин | data engineer 🐧

#sql #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍104😱111
KPACUBA 😈😁
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥115👍32😁2💅2😱11
Всем привет!😎

Увидел хороший отклик по недавним задачам.

Сегодня выкладываю задачу посложнее - уровень middle+

Реальная задача с собеседования с Альфа-банком 😳

--Создать таблицы

--CLIENT “КЛИЕНТ”
ID ID клиента
NAME имя клиента

--ACCOUNT “СЧЕТ”
ID ID счета
CLIENT_ID ID клиента
OPEN_DT дата открытия счета
CLOSE_DT дата закрытия счета

--TRANSACTION “ТРАНЗАКЦИИ ПО СЧЕТУ”
ID ID транзакции
ACCOUNT_ID ID счета
TRANSACTION_DATE дата транзакции
AMOUNT Сумма транзакции


Задача:
Вывести имена клиентов, у которых есть хотя бы один активный счет, открытый больше года назад, и которые за последний месяц по всем своим счетам совершили транзакций меньше, чем на 5000.
Под активным счетом понимается счет, по которому в текущем месяце есть хотя бы одна транзакция.
Под годом/месяцем понимается интервал один год/один месяц от календарной даты.


При необходимости нагенерите тестовые данные. Ваши решения и предложения жду в комментах.
Кто решит - реально красавчик🏆🔥🤘
Свое решение выложу в пятницу 😁

it пингвин | data engineer 🐧

#sql #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻4👍3🔥33🫡21😱1
У меня уже несколько раз просили прислать книгу "Основы инженерии данных" - Джо Рис.
В мире data инженерии она на небольшом хайпе.

Я сейчас опубликую книгу, кому надо сохраните, я чуть позже удалю пост.
Вроде как слитые книги в тг канале нельзя публиковать 🏴‍☠️😅

upd. книгу уже открепил😬

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

it пингвин | data engineer 🐧

#полезная_инфа
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥9👍2💅21
ПОЧЕМУ мне это приходит от ПОЧТЫ РОССИИ😠
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣146😁2😱11
Bootcamp чат для ВСЕХ!

Открыли чат с программой Буткемпа для ВСЕХ!

ссылка на чат

Заходите все, кто думает пройти буткемп, залететь наконец-то в IT или просто из интереса. Внутри есть программа обучения. Мы ждем пожелания и боли от вас. Программу возможно скорреткируем, если увидим конкретные хотелки!

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

Смело задавайте свои вопросы, а мы будем на них отвечать.

Цель буткемпа - как можно скорее запрыгнуть в поезд IT!
👍52🔥2🎉1
Привет, работяги 🫡
Всех с пятницей, остался чуть-чуть продержаться

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


select
c.name
from account a
join client c on c.id=a.client_id and a.open_dt<trunc(sysdate)-interval '1' YEAR and coalesce(a.close_dt,to_date('59991231','yyyymmdd'))>trunc(sysdate)
join transaction t on t.account_id=a.id and t.transaction_date between trunc(sysdate)-interval '1' MONTH and trunc(sysdate)
group by c.name having(sum(coalesce(t.amount,0)))<5000

*SQL- оракловый, но я думаю(надеюсь) всем будет понятен синтаксис.

Как по мне, получилось очень лаконичное и оптимизированное решение без множества подзапросов и cte🤔
А как вам задачка и решение?⬇️

it пингвин | data engineer 🐧

#sql #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥84👍33🤯2💅1
2022 год. Моя первая рабочая задача в новой компании. Нужно написать менеджеру и утончить требования:
🤣53😁1754😭22
Друзья, всем привет 🤝
Сделал статью по индексам и партициям для роадмапа DE. Также хочу поделиться статьей с вами в более удобном виде.

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

Дайте реакцию как вам материал и интересен ли вам подобный формат?⬇️

#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥308🙏4👍31🫡1💅1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁133🔥3🐳3
Однако, весьма интересная табличка
😁12🗿7😱3🤯11
▶️Обновление курса(RoadMap) на версию 2.2▶️

В этом видео о RoadMap'e:

Полностью переработана информация по ClickHouse;
Добавлен Docker compose распределённого ClickHouse (2 шарды 2 реплики);
Новый соавтор курса — Penguin Grisha;
Добавлена страница с кейсами оптимизации и полезными плюшками при работе с GreenPlum;
Полностью переработана общая информация по индексам баз данных;
Добавлены новые вопросы с собеседований по разным темам(смотреть по обновлению каталога);

Плюс ко всему:

Мы совместно с Женей Виндюковым(Я - Дата Инженер), запускаем собственный BootCamp(Интенсив) по профессии Инженер данных. Об этом я тоже рассказывают в данном видео, поэтому все кто уже изучил Python и SQL и не знает, что делать дальше, милости просим в чат, где вы можете ознакомиться с нашим предложением и предложить свои идеи!

Если у тебя есть идеи, предложения, обратная связь и т.д., можешь написать, как в комментариях под этим постом⬇️, так и в личку — либо мне, либо Евгению! Мы всегда ЗА рациональные идеи!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥2
Если во всех профессиях платили бы одинаково, работали бы вы в it?
Anonymous Poll
51%
да
49%
нет
Три топора собрал 😃
Спасибо, друзья 🤝

Всем хороших выходных! Отдыхайте и не думайте о работе❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
419🔥10👍5😁2💅2
Новый формат. Буду писать короткие мысли/советы - возможно, провокационные. Хэштег #МыслиВслух.

Вы тоже можете писать личку канала или мне @it_pengwin - предлагайте свои мысли. Интересное буду постить.

И вообще: задавайте любые вопросы - про работу, технологии, задачки, собесы и околоайтишное. Будем разгонять это вместе.
👍54😁2🔥1🫡1💅1
Для быстрого продвижения по карьерной лестнице:
навык в прохождении собесов > реальных скиллов на работе

#МыслиВслух
21🤷‍♂4🤔3
Испытательный срок пройден

3 месяца прошло, меня не уволили.

Честно говоря, я особо и не переживал. Если б уволили - нашел бы новое место. Но сейчас все равно чувствую облегчение.

Кстати, никто мне не сказал, что я прошел ИС. Недавно я изучал свой договор, и там написано, что если по истечению 3 месяцев меня не уволили, значит, я прошел испытательный срок. А меня не уволили 😁

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

Из этого банка уходить пока что я не планирую. Год точно буду работать, а дальше посмотрим.

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

Еще получилось взять авансом отпуск. Спасибо за это руководству, что пошли навстречу.
В пятницу лечу в Турцию. Хочу забыться и не думать о работе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23🍾83👍31
Оптимизация SQL запросов

Общие правила:

1️⃣ База базовая - минимизация использования DISTINCT, ORDER BY, UNION. Если нет необходимости использовать данные конструкции - не используем! Будет выполняться сортировка, а на больших данных это оочень ресурсозатратно!

2️⃣ Звездочка в select - зло. Выбираем только необходимые поля!
Неправильно:
SELECT * FROM SALES;


Правильно:
SELECT SALE_ID, SALE_DT FROM SALES;


3️⃣ Уметь смотреть план запроса и иметь понятие об основных способах соединения таблиц

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

5️⃣ Не писать одно тело селекта с парой-тройкой десятков таблиц. Логические куски помещать в with – так проще управлять.

6️⃣Не бояться бить большие запросы на 2-3 сессии:
Не должно быть, например, 80 джойнов, из которых половина это миллионы строк. Попробовать как-то логически поделить например на 2 куска, и чтобы не использовать разные with из первой части во второй.
Очень большой код, например, 3тысячи строк читать, сопровождать, понимать что случилось довольно затруднительно – есть смысл разбивать на логические части.

7️⃣ Понимать, когда и для чего использовать хинты. Помнить, что хинты – это костыли. Не лепить в каждой строчке все что возможно.

8️⃣ Если запрос падает на нехватке темпа, то
замножение записей (неправильное условие соединения ON или связь один ко многим, либо многие ко многим)
кривой план/неправильная последовательность соединения множеств
отправка на параллельные исполнители в широковещательном режиме (broadcast) огромных объёмов данных. Можно поправить хинтом
Для тестовой среды: проверить объём темп, если число файлов не совпадает/сильно меньше, чем на бою – сделать сравнимым, если возможно .

9️⃣ Никогда не использовать в условиях соединения ON вложенные селекты

1️⃣0️⃣ Никогда не использовать в списке полей select-a, определяемых с помощью функций, вложенные селекты.
Иными словами не должно быть конструкций вида:
select t.f1, t.f2,
case when select [] then … end f3
from table t

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


Предлагайте свои правила и фишки по оптимизации.

Давно хотел сделать подобный посту 💅
Жду реакции и репосты😊⬇️

it пингвин | data engineer 🐧

#sql #оптимизация
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2810👍43💅1
Я вернулся из отпуска 😎

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

Отдыхайте и путешествуйте, друзья ❤️
Это привносит много красок и удлиняет жизнь 💯

Теперь врываюсь в рабочий график. Посты буду делать чаще, уже много всего скопилось в заметках 🫡✏️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥216👍5🍾22😁1