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

Написать мне: @aylin_gee
Download Telegram
Лейтмотивом на интервью уже стало, что хотят вообще скалистов, но их мало, поэтому воронку приходится расширять и собесить питонистов

Учить Scala возможно всё-таки выгодно
👍62
https://www.youtube.com/watch?v=UL6l_VDJz_c&t=3531s

Интервью с Романом Маресовым

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

Понравилось, что нет попыток убедить всех в своей гениальности, и парень открыто говорит, что спит по 4 часа.

Пасхалка моим друзьям из школы 21 - CEO Лавки, Еды и Маркета рассказывает, как больно ему было писать похожее на 3d viewer на QT - тут🙃
7👍2🔥2
Сейчас коллега сказала что работать в Яндексе кринж
Работать в Яндексе кринж? Если нет, то где не кринж?
Anonymous Poll
48%
Да
52%
Нет
4
Напишите в комментах, где работать не кринж:)

Мой топ Авито
2
Пришлось отвлечься от тапания хомяка на интервью с ПСБ

Интервьюировали на удивление приятные люди
#de_тестовое_livecoding
7👍2
Кто там просил интервью с тиньком?
В ближайшее время не будет
🤬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