Дата-инженерские заметки – Telegram
Дата-инженерские заметки
1.47K subscribers
70 photos
18 videos
7 files
55 links
Пытаюсь выжить в корпоративных реалиях, делюсь вопросами с дата-инженерских собеседований и ссылочками для подготовки к ним

Написать мне: @aylin_gee
Download Telegram
Кто там просил интервью с тиньком?
В ближайшее время не будет
🤬13😢2😁1
Если у вас не было базы по алгоритмам и структурам данных в универе, то лучше начать с нее, а не с литкода, как это делала я.

Самый мягкий старт из возможных - 'Грокаем алгоритмы'.
Хочу уметь объяснять все также доступно как автор в этой книге.

Мне понравился этот 5 часовой курс на ютюбе.
После него можно идти и решать задачки.

Если тема в задаче не знакома, можно посмотреть тут.

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

Алгоритмы далеко не рокет сайенс(оказывается), просто требуют времени, поэтому самое лучшее решение в изучении алгоритмов - начать изучать сейчас.

Добавила две полезные шпаргалки.

#de_обсуждение
17👍4🔥4🏆3
🔸Билайн🔸

Общие вопросы


⚪️что такое семантика доставки данных?
At-most-once semantics, At-least-once, Exactly-once

⚪️Какие архитектуры хранения знаете?

⚪️Что такое нормализация? чаще всего до какой степени нормализации доходят?

⚪️чем отличается OLAP от OLTP?

SPARK

➡️Что такое драйвер и слейв? что вообще из себя представляют экзекьютеры?

➡️На чем написан спарк?

➡️В чем отличие датасета и датафрейма?

➡️Что такое shaffle

➡️Расскажите про аллокацию контейнеров и память? вот тут имелось в виду как выбрать ресурсы, как выбрать параметры кластера

➡️Расскажите про динамическую аллокацию

PYTHON

📌измененяемые и неизменяемые данные

📌адресные ссылки в питоне

📌знакомы ли с функциями map, filter, reduce, lambda

SQL

📌Расскажите про оконные функции
📌Расскажите про джойны
📌минимальное и максимальное количество строк при left join

LINUX

📌find, grep, cat , chmod

HADOOP

🚀расскажите про HDFS

🚀в чем минус мелких файлов на hdfs?


Спросили как с Докером, попросили рассказать про пайплайны cicd

друзья, посоветуйте ресурсы для изучения data modeling
#de_собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
12
Media is too big
VIEW IN TELEGRAM
Можно больше не смотреть дата-инженерских курсов
4🔥3
🟠Какой запрос вернет минимальное значение?

id
1
2
3
4
5
Null
Null

Запрос:
Count(id)
Count (1)
Count('id')
Count(*)
Count(null)


🟠 Ответ: Count(null)
В документации Postgresql:

count(*) -> bigint
number of input rows
count(expression) -> bigint
number of input rows for which the value of expression is not null

При указании * , возвращается количество строк, учитывая null'ы, при указании названия колонки без их учёта.

Если же мы указали любое выражение в count, то проходясь по каждой строке проверяется является ли это выражение null'ом.

То есть проходясь по 7 строкам, 7 раз 1 и 'id' являются не null, и 0 раз null является не null.


#de_обсуждение
Please open Telegram to view this post
VIEW IN TELEGRAM
1041🤬1
🟡 Почему эти картинки не помогают понять работу JOIN'ов?

Возьмем для примера эти две таблицы:
id  id
1   1
1   1
1   1
2   6
3   7
4   9

Смотря на эту картинку, можно ошибочно прийти к выводу, что при LEFT JOIN в результирующей таблице будет 6 строк, однако их будет 12.
Разобраться тут нужно с тем, как на самом деле работает INNER JOIN.

➡️ Легче всего это визуализировать, представив два цикла for: в первом id таблицы 1, во втором id таблицы 2.
Нам необходимо сравнить каждый элемент первой таблицы с элементами второй и, при их равенстве, вывести эту пару:

for id1 in table1:
  for id2 in table2:
    if id1 == id2:
      print(id1, id2)

Понимание остальных JOIN'ов строится на понимании INNER:

LEFT JOIN = результат INNER + оставшиеся id в левой таблице
RIGHT JOIN  = результат INNER + оставшиеся id в правой таблице
FULL JOIN = результат INNER + оставшиеся id в левой таблице + оставшиеся id в правой таблице
CROSS JOIN = все пары, при CROSS JOIN мы не проверяем равны ли id

#de_обсуждение
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🔥21
select distinct name, row_number() over(order by id)
from table

select name, row_number() over(order by id)
from table


⚡️ Эти запросы вернут равное количество строк?
Ответ : да
Сначала с помощью оконной функции, мы добавим колонку с уникальным порядковым номером, и только после отработает DISTINCT, поэтому каждая строка будет уникальной.

Порядок выполнения команд в SQL:

FROM, including JOINs
WHERE
GROUP BY
HAVING
WINDOW functions
SELECT
DISTINCT
UNION
ORDER BY
LIMIT and OFFSET

#de_обсуждение
Please open Telegram to view this post
VIEW IN TELEGRAM
97
Сегодня мне рассказали, что мой знакомой с 0 месяцев опыта устроился разрабом на Senior'ский грейд, накрутив опыт в резюме.
Таски на Senior'ской позиции очевидно больше софтовые, найм Senior'ов дорогой, поэтому вполне могу представить, что задержаться на позиции он может надолго.

Представляю как прихожу к такому Senior'у за код-ревью.

Как вы относитесь к накрутке опыта в резюме?
😭6😁2
This media is not supported in your browser
VIEW IN TELEGRAM
🥰6😁4🔥2🏆1
➡️Вопросы с тех собеса в Иннотех(Т1)◀️

Что такое Data Lake?
Что такое DWH?
Расскажите про слои DWH?
Чем отличается моделирование по Кимбаллу и по Инмону?
Звезда и снежинка это Кимбалл или Инмон?
Чем звезда отличается от снежинки?
Чем отличаются факт таблицы и таблицы измерений?
Расскажите про Data Vault
Расскажите про Anchor Modeling
Зачем нужна нормализация?

Какие вида JOIN'ов знаете?
Расскажите про SELF JOIN.
Что знаете про агрегационные функции?
Можно ли использовать несколько агрегационных функций в select?
Можно ли использовать GROUP BY без агрегационной функции?
Как убрать дубликаты? То есть сделать так, чтобы таблица осталась без дубликатов, а не запрос вывел данные таблицы без дубликатов?

Что такое первичный ключ? Что такое foreign key? В каком разрезе формируют ключ? Что он должен в себе нести?
Что такое суррогатный ключ? Как его построить?

Как RANK() работает с NULL?

Расскажите про способы оптимизации SQL зпросов

#de_собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
110🔥4
YouTube последнее время частенько рекомендует мне подкасты с hr. И во всех обсуждают следующие два тезиса: кадровый голод и поколение z.

Первое буквально про нехватку высококвалифицированных низкооплачиваемых кадров. Кадровый голод и +-5 этапов отбора не могут существовать в одной плоскости.

Смешнее второй тезис. Обсуждают, что молодые сотрудники требуют достойной зарплаты, справедливой оценки труда, похвалы.
То есть по такой логике миллениалам комфортно работать в токсичной среде с несправедливым начальством?

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

Мы зарабатываем не на квартиры, а на айс латте на кокосовом, отношение к работе оттого соответствующее.
19
Сегодня мне кажется, что этот канал вообще никто не читает, а сердечки мне ставят только мои друзья

Завтра я сижу на собесе с человеком, подписанным на этот канал, и отвечаю на вопросы из моих постов
132😁7👍4🍓1
Теперь буду дата-инженерить тут

Поиск работы не прекращается, он продолжается всегда, просто сейчас немного замедлится
121🔥8🏆8