Мое незнание этой темы привело к 6-месячному куллдауну в Авито
Чтобы у вас не было также, давайте разберем ее подробнее.
Принцип работы уже понятен из названия: каждый элемент внешнего цикла сравнивается с каждым элементом внутреннего.
Алгоритмическая сложность - O(n**2)
For Each value in pile1
For Each value in pile2
If pile1.value = pile2.value
Return pile1.value, pile2.value
Для этого алгоритма элементы уже должны быть отсортированы. Тут мы проходимся двумя указателями по элементам и сравниваем их. В конце проходим по оставшимся элементам.
Если не считать сортировку, алгоритмическая сложность - O(n).
get first row R1 from input 1
get first row R2 from input 2
while not at the end of either input
begin
if R1 joins with R2
begin
get next row R2 from input 2
return (R1, R2)
end
else if R1 < R2
get next row R1 from input 1
else
get next row R2 from input 2
end
Вычисляем хэш для каждого элемента левой таблицы, затем вычисляем хэш у элементов правой таблицы и проверяем его наличие в левой.
Алгоритмическая сложность - O(n).
// Build phase
FOR each row in BuildTable DO
Compute hash value for the join key
Insert row into HashTable based on hash value
END FOR
// Probe phase
FOR each row in ProbeTable DO
Compute hash value for the join key
IF hash value exists in HashTable THEN
Retrieve matching rows from HashTable
FOR each matching row DO
Combine rows from ProbeTable and BuildTable
Add the combined row to the result set
END FOR
END IF
END FOR
Рекомендую просмотреть псевдокод и реализовать все на своем языке
#de_обсуждение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤29🏆4👍2🔥1
Во-первых, осень действительно лучшее время для поиска работы.
Во-вторых, мне нужны бусты☹️
У меня заволялись телеги hr'ок из МТС, Билайна, Мегафона, Яндекс Маркета и Сбера. Отправлю их забустившим канал.✨
Забустить тут⬇️
https://news.1rj.ru/str/boost/data_interviews
📍 Написать hr'у напрямую всегда лучше отклика на хх, так как личное сообщение гарантирует просмотр резюме.
Также если хотите рефералку в Авито, отпишитесь в комментариях и я свяжусь с вами❤️
Во-вторых, мне нужны бусты
У меня заволялись телеги hr'ок из МТС, Билайна, Мегафона, Яндекс Маркета и Сбера. Отправлю их забустившим канал.
Забустить тут
https://news.1rj.ru/str/boost/data_interviews
Также если хотите рефералку в Авито, отпишитесь в комментариях и я свяжусь с вами
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🍓4🔥3👍2
Рекомендую сначала прочесть этот пост.
После оценки алгоритмической сложности физических джойнов можно прийти к выводу, что выбор hash join является оптимальным решением, однако это далеко не так. Как и во многом в программировании, всегда есть space–time trade-off, и выбор оптимального джойна будет зависеть от входных данных.
Для equi-joins (равенство
=, неравенство !=) и non-equi-joins (>, <, >=, <=). Для второго типа подойдет только nested loops.Также, конечно, важен размер таблиц. Из-за необходимости многократно проходить по второй таблице в случае с nested loops будет велика цена I/O, в случае merge join будет дорогой сортировка, а в случае hash join может не хватить памяти для хеширования, и часть придется переносить на диск. Хешируется, кстати, меньшая таблица.
Если вы работаете с отсортированными данными, выиграет merge join, а с неотсортированными — hash join.
В случае, когда обе таблицы маленькие, эффективнее может быть nested loops, ведь с merge сортировка может вовсе не окупиться.
В случае с неиндексированными данными лучше справятся merge и hash join, однако наличие большого количества дубликатов при выборе hash join может повлечь неправильное распределение данных и необходимость обработки коллизий.
#de_обсуждение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥5🥰3🍓1
Добавила теги для навигации на канале
#de_собеседование - вопросы с собеседований
#de_тестовое_livecoding - задачи с лайвкодинга и тестовых
#de_обсуждение - посты на популярные на собеседованиях темы
#de_собеседование - вопросы с собеседований
#de_тестовое_livecoding - задачи с лайвкодинга и тестовых
#de_обсуждение - посты на популярные на собеседованиях темы
❤13
Есть идея сделать серию интервью с дата-инженерами из разных компаний бигтеха
Вам было бы интересно такое?
Вам было бы интересно такое?
Anonymous Poll
98%
Да
2%
Нет
🔥5❤3
🐝Костя, дата-инженер из Билайна
🟡 Расскажи про свой путь в Билайн, где работал до и почему выбрал именно эту компанию?
Работал до этого в сбере дата-аналитиком. Начал проходить собеседования и Билайн предложил больше денег и удаленку. Тут все просто, я иду туда, где вижу выгоду.
🟡 Какой стэк у тебя в команде и какими задачами ты занимаешься?
Стэк: scala, spark, airflow, oracle. Задачи - это обычное написание ETL для передачи данных из одних источников в другие.
🟡 Из каких этапов состоял отбор и насколько показался сложным?
По количеству этапов, то их было вроде 2. Сначала с HR, после беседы с ней, она отправила мне тестовое и уже потом созвон с продактом, где немного погоняли по базовой теории SQL, python, spark. В целом собес не сложный. Самое сложно, что было во время прохождения, так это установить spark на личный ноутбук)
🟡 Что нравится в компании и команде больше всего?
Нравится в компании, что они платят деньги и дают удаленку. Я не привязываюсь к командам и компаниям.
🟡 Что хотелось бы улучшить?
Улучшить? Я даже не знаю. Как обычно, то это убрать говнокодеров, потому что тяжело потом разбираться в их логике.
🟡 Ты порекомендовал бы другу своего работадателя?
Ну смотря что важно для моего друга. Работа не пыльная, сильно не трясут. Поделал утром что-то и можно идти развиваться. Если другу нравится прям плотно работать и создавать, то это точно не про Билайн (по крайней мере не моя команда)
📍 P.S: в комментариях можете написать свои вопросы Косте, возможно он их увидит и ответит:)
Напишите также, каких вопросов вам не хватило, добавлю в следующем интервью
Работал до этого в сбере дата-аналитиком. Начал проходить собеседования и Билайн предложил больше денег и удаленку. Тут все просто, я иду туда, где вижу выгоду.
Стэк: scala, spark, airflow, oracle. Задачи - это обычное написание ETL для передачи данных из одних источников в другие.
По количеству этапов, то их было вроде 2. Сначала с HR, после беседы с ней, она отправила мне тестовое и уже потом созвон с продактом, где немного погоняли по базовой теории SQL, python, spark. В целом собес не сложный. Самое сложно, что было во время прохождения, так это установить spark на личный ноутбук)
Нравится в компании, что они платят деньги и дают удаленку. Я не привязываюсь к командам и компаниям.
Улучшить? Я даже не знаю. Как обычно, то это убрать говнокодеров, потому что тяжело потом разбираться в их логике.
Ну смотря что важно для моего друга. Работа не пыльная, сильно не трясут. Поделал утром что-то и можно идти развиваться. Если другу нравится прям плотно работать и создавать, то это точно не про Билайн (по крайней мере не моя команда)
Напишите также, каких вопросов вам не хватило, добавлю в следующем интервью
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆8🔥6❤5
Ярослав, Senior data engineer из Озона💙
📍 Подписывайтесь на канал Ярослава✨
💙 Каким был твой путь до Озона и почему выбрал именно этого работадателя?
Учился в школе 21, изначально хотел быть джавистом, но на собеседовании в Сбер предложили пойти к ним, на скалу в биг дату. В тот момент не было других оферов и это казалось огромной возможностью. Шёл на стажировку с мыслями что либо я пройду, либо умру. 3 месяца работал без выходных, в стиле который я приобрёл в школе, по 10-12 часов, где-то в середине заболел, но не ушёл на больничный. В итоге мне сказали что я прошёл, и через неделю меня увезли на скорой из общаги в больницу. Оглядываясь назад, можно сказать, что это было через чур. Какие-то последствия для здоровья тянутся за мной до сих пор.
После проработал в сбере ещё 10 месяцев, за это время получилось с нуля разработать новый продукт, будучи единственным разрабом на проекте, поработать на скаловом бекенде, и со спарком. Так же получилось пройти полугодовой курс по спарку, который могу рекомендовать всем DE - APACHE SPARK и SCALA ДЛЯ ДАТА-ИНЖИНИРИНГА от new pro lab. Меня были готовы повышать для мидла в сбере, и для банка это было в достаточно короткие сроки, но казалось что на рынке за мидла ДЕ могли дать куда больше.
Я вышел на рынок, прособесился в 4 компании, получил 4 офера, и выбрал Озон как лучший вариант и уже два года работаю здесь. Уже в рамках озона, прошёл путь от мидла до старшего инженера, что получилось достаточно быстро, меня повысили через 7 месяцев, после приёма на работу.
💙 Из каких этапов состоял отбор и насколько показался сложным?
Отбор в озон достаточно сложен и состоял из 3 этапов, как мне казалось, я не дотягивал и шёл чтобы получить опыт проваленного собеса. Первый этап - технического скрининг, вопросы по теории, функциональное программирования, scala, DE стек. Второй этап - лайв кодинг, задачи с литкода, но не что-то зверское, примерно уровень первого собеса по алгосам в яндекс. Третий этап - интервью с руководителем направления, начальник твоего будущего босса, конкретно меня спрашивали про устройство линукса и особенности его работы.
💙 Какой стэк у тебя в команде и какими задачами ты занимаешься?
Когда приходил в компанию была scala + spark, сейчас в основном java. Моя текущая команда - часть платформы данных. Конкретно мы занимаемся стримингом и являемся входными воротами в платформу данных, наш продукт позволяет пользователям самим создать интеграцию из kafka в основные корпоративные хранилища, hadoop и vertica, мы одновременно вычитываем данные из более чем 500 топиков и только входной поток данных к нам превышает 50 тб в сутки.
💙 Что нравится в компании?
В целом я бы описал компанию тремя словами: масштаб, скорость, открытость. В компании действительно большие задачи, большие данные, большие технические мощности. Это связанно с размерами бизнеса. При этом он очень быстро развивается, и всё внутри настроено, чтобы этой скорости не препятствовать. Очень легко заказывать ресурсы, получать доступы, деплоить. Что удивило после банка, можно когда угодно выложить свой код на прод, главное получи апрувы от команды. При этом очень открытая горизонтальная культура, общение неформально, но дружелюбно, и главное тебе действительно, как правило, довольно быстро и по существу отвечают.
💙 Ты порекомендовал бы другу своего работодателя?
Да, как минимум из-за компенсационного пакета, если прочее для человека не так важно. Достаточно высокие зарплаты, высокие премии(на моём грейде 1.5 оклада раз в пол года за самую распространённую оценку ревью), полная удалёнка. Так же хорошие возможности роста.
📍 P.S: в комментариях можете написать свои вопросы Ярославу, возможно он их увидит и ответит:)
Учился в школе 21, изначально хотел быть джавистом, но на собеседовании в Сбер предложили пойти к ним, на скалу в биг дату. В тот момент не было других оферов и это казалось огромной возможностью. Шёл на стажировку с мыслями что либо я пройду, либо умру. 3 месяца работал без выходных, в стиле который я приобрёл в школе, по 10-12 часов, где-то в середине заболел, но не ушёл на больничный. В итоге мне сказали что я прошёл, и через неделю меня увезли на скорой из общаги в больницу. Оглядываясь назад, можно сказать, что это было через чур. Какие-то последствия для здоровья тянутся за мной до сих пор.
После проработал в сбере ещё 10 месяцев, за это время получилось с нуля разработать новый продукт, будучи единственным разрабом на проекте, поработать на скаловом бекенде, и со спарком. Так же получилось пройти полугодовой курс по спарку, который могу рекомендовать всем DE - APACHE SPARK и SCALA ДЛЯ ДАТА-ИНЖИНИРИНГА от new pro lab. Меня были готовы повышать для мидла в сбере, и для банка это было в достаточно короткие сроки, но казалось что на рынке за мидла ДЕ могли дать куда больше.
Я вышел на рынок, прособесился в 4 компании, получил 4 офера, и выбрал Озон как лучший вариант и уже два года работаю здесь. Уже в рамках озона, прошёл путь от мидла до старшего инженера, что получилось достаточно быстро, меня повысили через 7 месяцев, после приёма на работу.
Отбор в озон достаточно сложен и состоял из 3 этапов, как мне казалось, я не дотягивал и шёл чтобы получить опыт проваленного собеса. Первый этап - технического скрининг, вопросы по теории, функциональное программирования, scala, DE стек. Второй этап - лайв кодинг, задачи с литкода, но не что-то зверское, примерно уровень первого собеса по алгосам в яндекс. Третий этап - интервью с руководителем направления, начальник твоего будущего босса, конкретно меня спрашивали про устройство линукса и особенности его работы.
Когда приходил в компанию была scala + spark, сейчас в основном java. Моя текущая команда - часть платформы данных. Конкретно мы занимаемся стримингом и являемся входными воротами в платформу данных, наш продукт позволяет пользователям самим создать интеграцию из kafka в основные корпоративные хранилища, hadoop и vertica, мы одновременно вычитываем данные из более чем 500 топиков и только входной поток данных к нам превышает 50 тб в сутки.
В целом я бы описал компанию тремя словами: масштаб, скорость, открытость. В компании действительно большие задачи, большие данные, большие технические мощности. Это связанно с размерами бизнеса. При этом он очень быстро развивается, и всё внутри настроено, чтобы этой скорости не препятствовать. Очень легко заказывать ресурсы, получать доступы, деплоить. Что удивило после банка, можно когда угодно выложить свой код на прод, главное получи апрувы от команды. При этом очень открытая горизонтальная культура, общение неформально, но дружелюбно, и главное тебе действительно, как правило, довольно быстро и по существу отвечают.
Да, как минимум из-за компенсационного пакета, если прочее для человека не так важно. Достаточно высокие зарплаты, высокие премии(на моём грейде 1.5 оклада раз в пол года за самую распространённую оценку ревью), полная удалёнка. Так же хорошие возможности роста.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥8👍6
Если подходите, пишите, скину рефералку @aylin_gee
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3
create table orders (
driver_id varchar,
city varchar,
order_id varchar
);
Нельзя использовать оконные функции
СREATE TABLE transaction_log (
account_id BIGINT,
dt DATE,
transaction_amt DOUBLE,
CONSTRAINT transaction_id PRIMARY KEY(account_id, dt));
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12 9
Надата-инженерился чуток
https://amp.meduza.io/news/2024/12/09/zaderzhan-podozrevaemyy-v-ubiystve-ispolnitelnogo-direktora-unitedhealthcare
https://amp.meduza.io/news/2024/12/09/zaderzhan-podozrevaemyy-v-ubiystve-ispolnitelnogo-direktora-unitedhealthcare
😁15
Дата-инженерские заметки
Эта вакансия закрылась(парнем из канала, кстати), но всегда есть новые
Как заберёте свои новогодние бонусы, прореферю в альфу
Как заберёте свои новогодние бонусы, прореферю в альфу
🔥9❤4🏆4
Он и оставался каналом для друзей пока по рекомендации бывшего руководителя я не оставила ссылку на канал под постом схожей тематики.
Удивительно, что создавался канал в фрустрации и неуверенности в завтрашнем дне, сейчас же я ощущаю себя на своем месте и в своей команде.
Надеюсь в следующем году, каждый из нас добьется всех своих карьерных и личных целей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Мне было очень важно найти работу с полной удаленкой. Как и предполагалось, такой формат оказался не только удобным, но и очень выгодным.
Плюсы очевидны, а вот о минусах почему-то никто не говорит.
У меня в команде удаленная работа позволила коллегам уехать из Москвы, а hr'ам расширить пул кандидатов до инженеров со всей России. Большая часть моей команды не живет в Москве, поэтому приезжать в офис даже при огромном желании смысла нет.
Удаленно выстроить настолько доверительные отношения, чтобы с тобой делились уровнем зарплат коллег, рассказывали о предстоящих изменениях в командах и интересных тебе возможностях достаточно сложно.
У меня отличная команда скилловых сеньоров дата-инженеров и мне легко выстраивать хорошие отношения с коллегами и людьми в принципе. Но каким бы ты ни был коммуникабельным, в офисе это все происходит в разы быстрее.
Еще аутфиты некуда выгуливать!!🥰
Что думаете?
Плюсы очевидны, а вот о минусах почему-то никто не говорит.
У меня в команде удаленная работа позволила коллегам уехать из Москвы, а hr'ам расширить пул кандидатов до инженеров со всей России. Большая часть моей команды не живет в Москве, поэтому приезжать в офис даже при огромном желании смысла нет.
Удаленно выстроить настолько доверительные отношения, чтобы с тобой делились уровнем зарплат коллег, рассказывали о предстоящих изменениях в командах и интересных тебе возможностях достаточно сложно.
У меня отличная команда скилловых сеньоров дата-инженеров и мне легко выстраивать хорошие отношения с коллегами и людьми в принципе. Но каким бы ты ни был коммуникабельным, в офисе это все происходит в разы быстрее.
Еще аутфиты некуда выгуливать!!
Что думаете?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25 5👍2
Писала тут раньше, что рекомендовала парня в альфу. Ставку дали ему сильно выше моей.
Подумала, что оценили на грейд выше, что вполне ок.
Какого же было мое удивление, когда сегодня утром я поняла, что грейд из нас двоих выше у меня.
Подумала, что оценили на грейд выше, что вполне ок.
Какого же было мое удивление, когда сегодня утром я поняла, что грейд из нас двоих выше у меня.
😭23❤7😁3🍓3
Завтра снова на айти завод
Вы успели отдохнуть?
Мне ещё бы одну недельку
Вы успели отдохнуть?
Мне ещё бы одну недельку
😭30😁9🍓2
кто-нибудь записался на de zoomcamp?
это такой бесплатный дата-инженерский курс с практическими заданиями
что-то будет сам Зак Вилсон вести
Чат для обсуждения
это такой бесплатный дата-инженерский курс с практическими заданиями
что-то будет сам Зак Вилсон вести
Чат для обсуждения
Airtable
Airtable | Everyone's app platform
Airtable is a low-code platform for building collaborative apps. Customize your workflow, collaborate, and achieve ambitious outcomes. Get started for free.