Обзор собеседования
Должность: Data Engineer
Компания: Газпромбанк
Тип собеса:#тех_собес #livecoding
Грейд: #middle #senior
Вилка: 350к
Вакансия: https://hh.ru/vacancy/112316856
Краткий обзор собеседования:
Как вам собес?🤔
Мне кажется, достаточно сложный.
it пингвин | data engineer🐧
Должность: Data Engineer
Компания: Газпромбанк
Тип собеса:#тех_собес #livecoding
Грейд: #middle #senior
Вилка: 350к
Вакансия: https://hh.ru/vacancy/112316856
Краткий обзор собеседования:
• Зачем нужна нормализация и денормализация, что и когда используется?
• Привести примеры кейсов, где нужна нормализация, а где денормализация
• MapReduce и Spark сравнить их верхнеуровнево
• Что такое Map, что такое Reduce
• Назвать концепции ООП и объяснить что они означают
• Что такое алгоритм и алгоритмическая сложность?
• Как отсортировать массив размером 32 ГБ, если в оперативке 8ГБ
Задачи:
• Python
Задача 1
У нас есть два списка а и b, каждый длиной от 0 до 1000 включительно.
Требуется написать функцию, которая вернет список res, содержащий чередующиеся элементы [a1,b1,a2,b2,…], начиная с первого элемента первого списка.
Пример 1:
a = [1,7,3,5,8,3,4]
b = [5,6,7]
res = [1,5,7,6,3,7,5,8,3,4]
Задача 2
Написать функцию, которая находит самый длинный палиндром в списке чисел.
Если таких несколько, возвращаем все. Если самый большой палиндром имеет длину 2 и меньше,то возвращаем -1.
Пример 1
Вход: [3,4,2,1,6,7,8,7,6]
Выход: [6,7,8,7,6]
Пример 2
Вход: [1,2,2,3,4,5]
Выход: -1
• SQL
Имеем таблицу транзакций transactions следующего вида:
id_tr | id_client | date_time | status
1 | 1 |2025-01-01 12:34:56 | Success
2 | 1 |2025-01-02 01:23:45 | Failed
3 | 2 |2025-01-01 10:23:54 | Success
...
123 | 12 |2025-01-01 11:24:55 | Success
Примечание: Пары id_client, date_time - уникальные, т.е. у клиента не может быть 2 и более транзакции в одну дату/время
1.1 Посчитать общее количество транзакций за последние 7 дней
1.2 Посчитать долю успешных транзакций за последние 30 дней
1.3 Посчитать количество клиентов, ушедших в отток
*Определение оттока: у клиента не менее 1 транзакции в период [t-90,t-30), и ни одной транзакции в период [t-30,t]
t - сегодня
Как вам собес?
Мне кажется, достаточно сложный.
it пингвин | data engineer
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥19 9❤6👍4🫡3 2
Может это не синдром, а ты и правда самозванец.
#МыслиВслух
#МыслиВслух
😭41😁17❤3👍3🔥1😱1😢1
С началом рабочей недели!
Друзья, хочу вам рассказать о новом канале DB developers channel
Мне поступило интересное предложение стать дружественными каналами и обменяться ссылками для взаимной поддержки. Я с огромным энтузиазмом поддержу эту инициативу, ведь такие шаги помогают укреплять связи и делиться ценными знаниями в нашей области!🫡
На канале делятся "интересными задачами, примерами, обсуждениями без воды".
Автор выделяется своей адекватностью, балансируя глубокие знания с практическими советами, всегда оставаясь надежным и уравновешенным профессионалом.
По классике, я бы привел в пример несколько его интересных постов, но к сожалению, у меня перестал открываться его канал 😭
Можете сами зайти убедиться в качестве контента и поставить положительные реакции!
Поддержим начинающего блогера!
Подписываемся!
Друзья, хочу вам рассказать о новом канале DB developers channel
Мне поступило интересное предложение стать дружественными каналами и обменяться ссылками для взаимной поддержки. Я с огромным энтузиазмом поддержу эту инициативу, ведь такие шаги помогают укреплять связи и делиться ценными знаниями в нашей области!🫡
На канале делятся "интересными задачами, примерами, обсуждениями без воды".
Автор выделяется своей адекватностью, балансируя глубокие знания с практическими советами, всегда оставаясь надежным и уравновешенным профессионалом.
По классике, я бы привел в пример несколько его интересных постов, но к сожалению, у меня перестал открываться его канал 😭
Можете сами зайти убедиться в качестве контента и поставить положительные реакции!
Поддержим начинающего блогера!
Подписываемся!
🤣44🙈6😁5🤡3💅3👍1
Как вы знаете, я уволился из банка (это был РСХБ) и перед уходом поговорил с начальником по душам. Он меня понял и был согласен, что мне лучше уволиться. Я начал сильно тонуть в бюрократии и он тоже побоялся, что в банке огонь в глазах может потухнуть.
После разговора, я спокойно отработал 2 недели и наконец-то без какого-либо угрызения совести уволился.
Еще мне очень понравилась его аналогия, что дата инженеры в it - это грузчики. Просто занимаешься перекладкой данных с одного места в другое. Забавно 😁
После разговора, я спокойно отработал 2 недели и наконец-то без какого-либо угрызения совести уволился.
Еще мне очень понравилась его аналогия, что дата инженеры в it - это грузчики. Просто занимаешься перекладкой данных с одного места в другое. Забавно 😁
😁47🔥15 7❤3👍3
Сколько часов в день ты работаешь?
Anonymous Poll
8%
1-2
16%
3-4
16%
5-6
24%
7-8
14%
8-10
5%
10-12
4%
12+
14%
весь день чилю 🦦
🤣2
29 сентября новый поток программы Data Engineer от New Professions Lab
🔴 ВАЖНОЕ обращение!
Ко мне пришли ребята из New Professions Lab. *Я о них получал хорошие отзывы и даже на канале как-то выкладывал их материалы.
Изначально было предложение - просто сделать рекламу нового потока (это 17-ый поток😱 ). Но я предложил другой формат:
Я буду сам проходить этот курс от начала и до конца и делать посты с обзорами материала.
Мне очень понравилась их программа и самому полезно будет пройти курс. Например, у меня есть темы, в которых я слаб - на новой работе сейчас много dbt, скоро начну работать с nifi и в ближайшем будущем будет flink, знания по докеру и куберу тоже нужно подтянуть.
Я сам по себе самоучка и надеюсь закрою пробелы в знаниях. Заранее с New Professions Lab обговорили, что обзор буду делать честный, критика тоже возможна.
Постараюсь оценивать со стороны новичка и со стороны инженера с опытом.
Это будет мой первый настоящий курс, который я пройду. Я закладываю время на обучение, как указано, в рекомендации ~ 15 часов в неделю.
Так что, друзья, предупреждаю - в ближайшее несколько месяцев периодически будут посты с обзором программы. Следите за новостями и делитесь мнением. Ну и залетайте со мной на курс😁🤝
➖➖➖➖➖➖➖➖➖➖➖➖➖
Формат: 10 недель (29 сент - 5 дек)| 30 занятий в Zoom | 8 практических лаб в облачном кластере | Поддержка менторов
Обучение подойдет junior- и middle- дата-инженерам, аналитикам данных, бэкенд-разработчикам, техлидам и менеджерам, работающим с дата-командой.
Программа систематизирует твои знания, даст практический опыт работы с Apache Spark, Kafka и другими продвинутыми инструментами, что ускорит твой рост до уровня Senior Data Engineer.
Что конкретно прокачаешь:
➖ System Design - проектирование архитектуры для высоконагруженных проектов
➖ Современный стек - Airflow (оркестрация), Kafka (стриминг), ClickHouse (аналитика)
➖ Масштабируемость - пайплайны, которые устойчивы к росту данных и нагрузки
Понравилась их цитата:
🎯 Пройдите интерактивный квиз и получите рекомендации о пользе программы в зависимости от вашей роли + персональный промокод от пингвина со скидкой 16%
Ко мне пришли ребята из New Professions Lab. *Я о них получал хорошие отзывы и даже на канале как-то выкладывал их материалы.
Изначально было предложение - просто сделать рекламу нового потока (это 17-ый поток
Я буду сам проходить этот курс от начала и до конца и делать посты с обзорами материала.
Мне очень понравилась их программа и самому полезно будет пройти курс. Например, у меня есть темы, в которых я слаб - на новой работе сейчас много dbt, скоро начну работать с nifi и в ближайшем будущем будет flink, знания по докеру и куберу тоже нужно подтянуть.
Я сам по себе самоучка и надеюсь закрою пробелы в знаниях. Заранее с New Professions Lab обговорили, что обзор буду делать честный, критика тоже возможна.
Постараюсь оценивать со стороны новичка и со стороны инженера с опытом.
Это будет мой первый настоящий курс, который я пройду. Я закладываю время на обучение, как указано, в рекомендации ~ 15 часов в неделю.
Так что, друзья, предупреждаю - в ближайшее несколько месяцев периодически будут посты с обзором программы. Следите за новостями и делитесь мнением. Ну и залетайте со мной на курс😁
➖➖➖➖➖➖➖➖➖➖➖➖➖
Формат: 10 недель (29 сент - 5 дек)| 30 занятий в Zoom | 8 практических лаб в облачном кластере | Поддержка менторов
Обучение подойдет junior- и middle- дата-инженерам, аналитикам данных, бэкенд-разработчикам, техлидам и менеджерам, работающим с дата-командой.
Программа систематизирует твои знания, даст практический опыт работы с Apache Spark, Kafka и другими продвинутыми инструментами, что ускорит твой рост до уровня Senior Data Engineer.
Что конкретно прокачаешь:
Понравилась их цитата:
Эта программа – глубокое погружение в практику. Наша цель — научить вас решать задачи из реальной жизни, а не покрыть список тем. Теория — это инструмент, необходимый для решения задач, а не самоцель
🎯 Пройдите интерактивный квиз и получите рекомендации о пользе программы в зависимости от вашей роли + персональный промокод от пингвина со скидкой 16%
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3🤣2💅2❤1😱1🙈1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁19😱5🤣3🔥2❤1😭1 1
Обзор собеседования
Должность: Data Engineer
Компания: Сбер для экспертов
Тип собеса:#тех_собес #livecoding
Грейд: #middle #senior
Вилка: 350к
Вакансия: https://hh.ru/vacancy/118243077
Краткий обзор собеседования:
#предложка
Как вам собесик? Вроде несложный🤔
Особенно вопросы по sql и python, чисто самые популярные.
*у кого есть обзоры собесов, пишите в личку🙏
it пингвин | data engineer🐧
Должность: Data Engineer
Компания: Сбер для экспертов
Тип собеса:#тех_собес #livecoding
Грейд: #middle #senior
Вилка: 350к
Вакансия: https://hh.ru/vacancy/118243077
Краткий обзор собеседования:
• Как устроен hadoop, компоненты его?
• В чем основная суть YARN?
• Заменим ли YARN?
• В чем преимущество YARN перед Кубером?
• Из каких компонентов состоит YARN?
• Как выделяются ресурсы в YARN?
• Как устроено и зачем нужно кэширование в SPARK?
• Какие ограничения есть у UDF функций?
• Для чего нужны CTE?
• В чем разница между Delete и Trancate, DROP?
• Как устроено шардирование?
• Виды ключей?
• Разница между мультипроцессорностью и мультипоточностью?
• Изменяемые и неизменяемые типы данных?
• Что такое декоратор?
• Можно ли закидывать в декоратор элементы?
#предложка
Как вам собесик? Вроде несложный
Особенно вопросы по sql и python, чисто самые популярные.
*у кого есть обзоры собесов, пишите в личку🙏
it пингвин | data engineer
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤5👍4🤷♂1😭1 1
СБЕР сокращает Айтишников 😱
Друзья, может кто-то не видел инфу и кому-то она поможет.
Источник - https://news.1rj.ru/str/cyberfreek/18046
Друзья, может кто-то не видел инфу и кому-то она поможет.
Please open Telegram to view this post
VIEW IN TELEGRAM
😱9🔥6🤣2😁1
This media is not supported in your browser
VIEW IN TELEGRAM
🤣45😁6👍3💅2🤷♂1😭1
Редфлаг 🚩
Как-то я устроился в новую компанию.. Подключаюсь на первый статус.
У руководителя включен микрофон и он ест. Сидит и чавкает🥲
Ок, бывает, ничего страшного.
Самое херовое, что нас на созвоне сидит человек 15 и все молчат. Руководитель чавкает 5 минут и сотрудники боятся сказать или им похер, что включен микрофон.
Позже эта ситуация часто повторялась.
пум-пум-пум..
Вроде это мелочь, но вот уже много времени прошло. А я это до сих помню😅
Для меня это был первый звоночек, позже было еще очень много странностей. И больше полу года я там не проработал.
А какие у вас были стремные/странные ситуации на работе. Или может на собесе?))🤔 ⬇️
Как-то я устроился в новую компанию.. Подключаюсь на первый статус.
У руководителя включен микрофон и он ест. Сидит и чавкает🥲
Ок, бывает, ничего страшного.
Самое херовое, что нас на созвоне сидит человек 15 и все молчат. Руководитель чавкает 5 минут и сотрудники боятся сказать или им похер, что включен микрофон.
Позже эта ситуация часто повторялась.
пум-пум-пум..
Вроде это мелочь, но вот уже много времени прошло. А я это до сих помню😅
Для меня это был первый звоночек, позже было еще очень много странностей. И больше полу года я там не проработал.
А какие у вас были стремные/странные ситуации на работе. Или может на собесе?))
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣26😁7❤6🔥2😭2👍1💅1 1
Изоляция
На этой недели добиваем серию постов про A C I D
🔤 Isolation (изоляция) гарантирует, что одновременно выполняемые транзакции не будут мешать промежуточным состояниям друг друга.
По сути, пока транзакция выполняется, ее обновления (или промежуточные данные) остаются невидимыми для других текущих транзакций, создавая иллюзию того, что каждая транзакция выполняется последовательно, по одной за раз.
Без изоляции две или более транзакции могли бы считывать и записывать частичные или незафиксированные данные друг друга, что приводило бы к неверным или непоследовательным результатам.
Аномалии параллелизма
Чтобы понять, как работает изоляция, полезно рассмотреть, что может пойти не так без надлежащей изоляции. К распространённым аномалиям параллелизма относятся:
1. Dirty Read (грязное чтение)
• Транзакция A считывает данные, которые транзакция B изменила, но еще не зафиксировала.
• Если транзакция B затем откатывается, транзакция A в конечном итоге содержит недействительное или «грязное» значение, которое на самом деле никогда не существовало в зафиксированном состоянии.
2. Non-Repeatable Read (неповторяемое чтение)
• Транзакция A считывает одни и те же строки несколько раз во время своего выполнения, но видит разные данные, поскольку другая транзакция обновила или удалила эти строки между чтениями A.
3. Phantom Read (фантомное чтение)
• Транзакция A выполняет запрос, возвращающий набор строк. Другая транзакция вставляет, обновляет или удаляет строки, соответствующие условиям запроса A.
• Если A повторно выполнит тот же запрос, он увидит другой набор строк («фантомов»).
Уровни изоляции
Базы данных обычно позволяют выбрать уровень изоляции , который обеспечивает баланс между корректностью данных и производительностью.
Более высокие уровни изоляции обеспечивают более высокую согласованность данных, но могут снизить производительность системы за счет увеличения времени ожидания транзакций.
Давайте рассмотрим четыре распространенных уровня изоляции:
Как базы данных обеспечивают изоляцию
1. Блокировка
• Пессимистический контроль параллелизма
- Строки или таблицы блокируются, так что никакая другая транзакция не сможет прочитать или записать их, пока блокировка не будет снята.
- Может привести к блокировке или взаимоблокировке, если несколько транзакций конкурируют за одни и те же блокировки.
2. MVCC (управление многоверсионным параллелизмом)
• Оптимистическое управление параллелизмом
- Вместо блокировки чтения база данных хранит несколько версий строки.
- Читатели видят согласованный снимок данных, тогда как писатели создают новую версию строки при обновлении.
- Такой подход снижает количество конфликтов блокировок, но требует тщательного управления версиями строк и очистки.
3. Изоляция моментального снимка
• Форма MVCC, при которой каждая транзакция видит данные такими, какими они были в начале (или в определенной точке) транзакции.
• Предотвращает неповторяющиеся и «грязные» чтения. Фантомные чтения могут возникать, если уровень изоляции не является полностью сериализуемым.
На этой недели добиваем серию постов про A C I D
По сути, пока транзакция выполняется, ее обновления (или промежуточные данные) остаются невидимыми для других текущих транзакций, создавая иллюзию того, что каждая транзакция выполняется последовательно, по одной за раз.
Без изоляции две или более транзакции могли бы считывать и записывать частичные или незафиксированные данные друг друга, что приводило бы к неверным или непоследовательным результатам.
Аномалии параллелизма
Чтобы понять, как работает изоляция, полезно рассмотреть, что может пойти не так без надлежащей изоляции. К распространённым аномалиям параллелизма относятся:
1. Dirty Read (грязное чтение)
• Транзакция A считывает данные, которые транзакция B изменила, но еще не зафиксировала.
• Если транзакция B затем откатывается, транзакция A в конечном итоге содержит недействительное или «грязное» значение, которое на самом деле никогда не существовало в зафиксированном состоянии.
2. Non-Repeatable Read (неповторяемое чтение)
• Транзакция A считывает одни и те же строки несколько раз во время своего выполнения, но видит разные данные, поскольку другая транзакция обновила или удалила эти строки между чтениями A.
3. Phantom Read (фантомное чтение)
• Транзакция A выполняет запрос, возвращающий набор строк. Другая транзакция вставляет, обновляет или удаляет строки, соответствующие условиям запроса A.
• Если A повторно выполнит тот же запрос, он увидит другой набор строк («фантомов»).
Уровни изоляции
Базы данных обычно позволяют выбрать уровень изоляции , который обеспечивает баланс между корректностью данных и производительностью.
Более высокие уровни изоляции обеспечивают более высокую согласованность данных, но могут снизить производительность системы за счет увеличения времени ожидания транзакций.
Давайте рассмотрим четыре распространенных уровня изоляции:
1. Read Uncommitted
• Позволяет выполнять «грязное» чтение; транзакции могут видеть незафиксированные изменения.
• Используется редко, так как может привести к серьезным аномалиям.
2. Read Committed
• Транзакция видит только те данные, которые были зафиксированы на момент чтения.
• Предотвращает «грязное» чтение, но неповторяющиеся чтения и фантомные чтения все еще могут возникать.
3. Repeatable Read
• Гарантирует, что при многократном чтении одних и тех же строк в рамках транзакции вы получите одни и те же значения.
• Предотвращает грязное чтение и неповторяющееся чтение, но фантомное чтение все равно может происходить (в зависимости от ядра базы данных).
4. Serializable
• Самый высокий уровень изоляции, при котором все транзакции происходят последовательно, по одной за раз.
• Предотвращает грязное чтение, неповторяющееся чтение и фантомное чтение.
• Самый затратный с точки зрения производительности и параллелизма вариант, поскольку может потребовать больше блокировок или проверок конфликтов.
Как базы данных обеспечивают изоляцию
1. Блокировка
• Пессимистический контроль параллелизма
- Строки или таблицы блокируются, так что никакая другая транзакция не сможет прочитать или записать их, пока блокировка не будет снята.
- Может привести к блокировке или взаимоблокировке, если несколько транзакций конкурируют за одни и те же блокировки.
2. MVCC (управление многоверсионным параллелизмом)
• Оптимистическое управление параллелизмом
- Вместо блокировки чтения база данных хранит несколько версий строки.
- Читатели видят согласованный снимок данных, тогда как писатели создают новую версию строки при обновлении.
- Такой подход снижает количество конфликтов блокировок, но требует тщательного управления версиями строк и очистки.
3. Изоляция моментального снимка
• Форма MVCC, при которой каждая транзакция видит данные такими, какими они были в начале (или в определенной точке) транзакции.
• Предотвращает неповторяющиеся и «грязные» чтения. Фантомные чтения могут возникать, если уровень изоляции не является полностью сериализуемым.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13✍6❤6🤔2😭2🔥1 1
This media is not supported in your browser
VIEW IN TELEGRAM
Работа в хранилище банка🥲 :
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣22😁10👍5❤2🔥2💅2😭1
Поздравляю с окончанием рабочей недели!
Хорошенько потрудились, а теперь можно и нужно хорошенько отдохнуть!🥳
Или нужно выполнить все дела, которые не успеваешь в будние дни..?😔
Рассказывайте как вы проводите выходные⬇️
🍾 - полный чилл
😭 - выполнение кучи домашних дел..
Хорошенько потрудились, а теперь можно и нужно хорошенько отдохнуть!
Или нужно выполнить все дела, которые не успеваешь в будние дни..?
Рассказывайте как вы проводите выходные
Please open Telegram to view this post
VIEW IN TELEGRAM
Долговечность
Закрываем цикл постов про A C I D
🔤 Durability (Долговечность) гарантирует, что после завершения транзакции внесенные изменения сохранятся даже в случае сбоев электропитания, сбоев или других катастрофических событий.
Другими словами, как только транзакция завершается, данные фиксируются навсегда и не могут просто исчезнуть.
Как базы данных обеспечивают долговечность:
1.Журналы транзакций (журналы предварительной записи - Write-Ahead Logs, он же WAL)
Большинство реляционных баз данных используют журнал предварительной записи (WAL) для сохранения изменений до их записи в основные файлы данных:
• Запись изменений в WAL: предполагаемые операции (обновления, вставки, удаления) записываются в WAL на долговременном носителе (диске).
• Зафиксировать транзакцию: как только запись WAL будет безопасно сохранена, база данных может отметить транзакцию как зафиксированную.
• Применение изменений к основным файлам данных: обновленные данные в конечном итоге записываются в основные файлы — возможно, сначала в память, а затем сбрасываются на диск.
В случае сбоя базы данных при восстановлении она использует WAL :
• Повторить: любые зафиксированные транзакции, еще не отраженные в основных файлах, применяются повторно.
• Отмена: все незавершенные (незафиксированные) транзакции откатываются для сохранения целостности базы данных.
2. Репликация/Избыточность
Помимо WAL, многие системы используют репликацию, чтобы гарантировать сохранность данных даже в случае выхода из строя оборудования или всего центра обработки данных.
• Синхронная репликация: записи немедленно копируются на несколько узлов или центров обработки данных. Транзакция считается завершённой только в том случае, если первичный узел и хотя бы одна реплика подтверждают её безопасное сохранение.
• Асинхронная репликация: изменения в конечном итоге синхронизируются с другими узлами, но существует (небольшое) окно, в котором может произойти потеря данных, если основной узел выйдет из строя до обновления реплики.
3. Резервные копии
Регулярное резервное копирование обеспечивает дополнительную защиту, выходящую за рамки журналов и репликации. В случае серьёзного повреждения данных, человеческой ошибки или катастрофического сбоя:
• Полные резервные копии: сохранение всей базы данных на определенный момент времени.
• Инкрементное/дифференциальное резервное копирование: сохранение изменений с момента последнего резервного копирования для более быстрого и частого резервного копирования.
• Внешнее хранение: обеспечивает сохранность резервных копий в случае локальных сбоев, позволяя восстанавливать данные даже в случае повреждения оборудования.
it пингвин | data engineer🐧
#Вопросы_с_собесов #acid
Закрываем цикл постов про A C I D
Другими словами, как только транзакция завершается, данные фиксируются навсегда и не могут просто исчезнуть.
Как базы данных обеспечивают долговечность:
1.Журналы транзакций (журналы предварительной записи - Write-Ahead Logs, он же WAL)
Большинство реляционных баз данных используют журнал предварительной записи (WAL) для сохранения изменений до их записи в основные файлы данных:
• Запись изменений в WAL: предполагаемые операции (обновления, вставки, удаления) записываются в WAL на долговременном носителе (диске).
• Зафиксировать транзакцию: как только запись WAL будет безопасно сохранена, база данных может отметить транзакцию как зафиксированную.
• Применение изменений к основным файлам данных: обновленные данные в конечном итоге записываются в основные файлы — возможно, сначала в память, а затем сбрасываются на диск.
В случае сбоя базы данных при восстановлении она использует WAL :
• Повторить: любые зафиксированные транзакции, еще не отраженные в основных файлах, применяются повторно.
• Отмена: все незавершенные (незафиксированные) транзакции откатываются для сохранения целостности базы данных.
2. Репликация/Избыточность
Помимо WAL, многие системы используют репликацию, чтобы гарантировать сохранность данных даже в случае выхода из строя оборудования или всего центра обработки данных.
• Синхронная репликация: записи немедленно копируются на несколько узлов или центров обработки данных. Транзакция считается завершённой только в том случае, если первичный узел и хотя бы одна реплика подтверждают её безопасное сохранение.
• Асинхронная репликация: изменения в конечном итоге синхронизируются с другими узлами, но существует (небольшое) окно, в котором может произойти потеря данных, если основной узел выйдет из строя до обновления реплики.
3. Резервные копии
Регулярное резервное копирование обеспечивает дополнительную защиту, выходящую за рамки журналов и репликации. В случае серьёзного повреждения данных, человеческой ошибки или катастрофического сбоя:
• Полные резервные копии: сохранение всей базы данных на определенный момент времени.
• Инкрементное/дифференциальное резервное копирование: сохранение изменений с момента последнего резервного копирования для более быстрого и частого резервного копирования.
• Внешнее хранение: обеспечивает сохранность резервных копий в случае локальных сбоев, позволяя восстанавливать данные даже в случае повреждения оборудования.
it пингвин | data engineer
#Вопросы_с_собесов #acid
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍13❤5🔥4✍2 2😭1
Можно ли сказать, что я переработал, если в рандомный момент переписки с другом я ответил дбт командой - dbt run -s .. 🤔 ?
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣21😁5💯3😭2❤1🫡1💅1
Обзор на курс DE
Итак, прошло почти 2 недели после начала потока DE от New Professions Lab.
Расчехляю свои заметки📖
В потоке ~40 человек. Всех поделили на группы по человек 5. Пока что особо не понял для чего, но в конце вроде бы будет какая-то командная работа, типо диплома. Пока что в командах мы никак не взаимодействует, все общение в общем чате в ТГ.
В чем суть курса - вам дают лекции (иногда записи, иногда стрим) по темам ДЕ и лабы как домашнее задание. Что оч удобно, все лекции записаны и можно смотреть когда удобно. Я был только на welcome встрече, остальное смотрю в записи.
Лекции
Что по лекциям сказать - очень хорошо. Материал интересный, подача мне нравится, как-то лампово все.
Какие лекции уже были - Kafka, Ansible, Airflow, Введение в базы данных, Docker, Основы DWH. MPP DB.
Я прям с кайфом смотрю. Например, я вообще не знал что такое Ansible. Первый раз услышал о нем, а оказывается это оч удобная и популярная штука. Наверное, им больше пользуются админы и девопсы.
Ansible — это инструмент автоматизации с открытым исходным кодом для управления конфигурациями, массовного развертывания и оркестрации инфраструктуры, работающий без установки агентов и в основном через SSH или WinRM на целевых узлах. Его ключевая идея — описывать желаемое состояние систем декларативно в YAML-файлах (playbooks), после чего Ansible приводит узлы к этому состоянию идемпотентно и повторяемо.
Короче - в удобном формате написал инструкции для рабочих машин и с одной тачки эти команды можно выполнить на всех перечисленных тачках (к которым есть доступ), развернуть базы данных, etl инструменты и тд
Лабы
Самое главное. Нужно делать лабы, получать баллы и идти дальше по курсу. По каждой лабе есть дедлайн - все серьезно 😁
В конце если наберешь необходимое кол-во баллов - получаешь сертификат. Если я не ошибаюсь, курс проходят до конца и получают сертификаты около половины обучающихся. Есть студенты, которые уже 3-ий раз пытаются пройти курс 😱
Лабы не такие уж и тривиальные. 0 лаба - знакомство с чеккером, который поднимается в докер контейнере и через него надо будет проверять свои разработки и сдавать лабы. 1 лаба супер топ - поднимаем свои тачки в ВК облаке. То есть у каждого студента своя машинка (ОС поставили ubuntu) 🔥 Также настраиваем сеть и firewall.
Работаем с тачкой пока что через свой локальный пк. Подключаемся через терминал по SSH. Также в 1 лабе с помощью вышеупомянутого ansible со своего пк поднимаем на удаленной машине Grafana, чтоб следить за состоянием своей машины.
С помощью чеккера в докере проверяем, что наша машина правильно настроена✅
Доп задача в 1 лабе - установить кафку на серваке. Скачали необходимые файлы, установили (исправили 20 ошибок🤯 ). Все настроили. Открыли два терминала - в одном пишем в кафку,с другого читаем. Все работает🤝
Возможно, вам кажется, что это легко. Но нет. Там куча подводных камней. Лабы нарочно не идеально описаны. Вас за ручку не проведут. Надо немного потыкаться. Я сам сидел пару дней до 3 часов ночи. Но когда сдаешь лабу - кажется она такая простая была))
Чатик наш кипит сообщениями. Радуемся за каждого коллегу, который сдал лабу😅
Первое впечатление - пока что мне реально все нравится. Этот пост я не с кем согласовывал!)
Мне нравится как этот продукт упакован - есть машины в облаке, чеккеры для автоматизации проверок, тг бот, записанные лекции оч крутыми спецами. Таблица с баллами мотивирует от других студентов не отставать. Поддержка в чате тоже топ. Есть пару ребят и из поддерджки, которые отвечают на все вопросы. А также мы, студенты, помогаем друг другу (за помощь тоже баллы дают 😁)
НО!
• Новичкам очень тяжело. Нужна уже какая-то база.
• Для себя понял, что гораздо легче проходить курс с макбука) Как раз мне его недавно на работе выдали😌
• Нужно ответственно проходить и рассчитывать время.
Продолжение следует..
—————————————————-
Как-то так😊 Как вам обзорчик?
Есть мысль, про инструменты из курса делать короткие обзорные посты. Что думаете?🤔 ⬇️
it пингвин | data engineer🐧
Итак, прошло почти 2 недели после начала потока DE от New Professions Lab.
Расчехляю свои заметки
В потоке ~40 человек. Всех поделили на группы по человек 5. Пока что особо не понял для чего, но в конце вроде бы будет какая-то командная работа, типо диплома. Пока что в командах мы никак не взаимодействует, все общение в общем чате в ТГ.
В чем суть курса - вам дают лекции (иногда записи, иногда стрим) по темам ДЕ и лабы как домашнее задание. Что оч удобно, все лекции записаны и можно смотреть когда удобно. Я был только на welcome встрече, остальное смотрю в записи.
Лекции
Что по лекциям сказать - очень хорошо. Материал интересный, подача мне нравится, как-то лампово все.
Какие лекции уже были - Kafka, Ansible, Airflow, Введение в базы данных, Docker, Основы DWH. MPP DB.
Я прям с кайфом смотрю. Например, я вообще не знал что такое Ansible. Первый раз услышал о нем, а оказывается это оч удобная и популярная штука. Наверное, им больше пользуются админы и девопсы.
Ansible — это инструмент автоматизации с открытым исходным кодом для управления конфигурациями, массовного развертывания и оркестрации инфраструктуры, работающий без установки агентов и в основном через SSH или WinRM на целевых узлах. Его ключевая идея — описывать желаемое состояние систем декларативно в YAML-файлах (playbooks), после чего Ansible приводит узлы к этому состоянию идемпотентно и повторяемо.
Короче - в удобном формате написал инструкции для рабочих машин и с одной тачки эти команды можно выполнить на всех перечисленных тачках (к которым есть доступ), развернуть базы данных, etl инструменты и тд
Лабы
Самое главное. Нужно делать лабы, получать баллы и идти дальше по курсу. По каждой лабе есть дедлайн - все серьезно 😁
В конце если наберешь необходимое кол-во баллов - получаешь сертификат. Если я не ошибаюсь, курс проходят до конца и получают сертификаты около половины обучающихся. Есть студенты, которые уже 3-ий раз пытаются пройти курс 😱
Лабы не такие уж и тривиальные. 0 лаба - знакомство с чеккером, который поднимается в докер контейнере и через него надо будет проверять свои разработки и сдавать лабы. 1 лаба супер топ - поднимаем свои тачки в ВК облаке. То есть у каждого студента своя машинка (ОС поставили ubuntu) 🔥 Также настраиваем сеть и firewall.
Работаем с тачкой пока что через свой локальный пк. Подключаемся через терминал по SSH. Также в 1 лабе с помощью вышеупомянутого ansible со своего пк поднимаем на удаленной машине Grafana, чтоб следить за состоянием своей машины.
С помощью чеккера в докере проверяем, что наша машина правильно настроена
Доп задача в 1 лабе - установить кафку на серваке. Скачали необходимые файлы, установили (исправили 20 ошибок
Возможно, вам кажется, что это легко. Но нет. Там куча подводных камней. Лабы нарочно не идеально описаны. Вас за ручку не проведут. Надо немного потыкаться. Я сам сидел пару дней до 3 часов ночи. Но когда сдаешь лабу - кажется она такая простая была))
Чатик наш кипит сообщениями. Радуемся за каждого коллегу, который сдал лабу😅
Первое впечатление - пока что мне реально все нравится. Этот пост я не с кем согласовывал!)
Мне нравится как этот продукт упакован - есть машины в облаке, чеккеры для автоматизации проверок, тг бот, записанные лекции оч крутыми спецами. Таблица с баллами мотивирует от других студентов не отставать. Поддержка в чате тоже топ. Есть пару ребят и из поддерджки, которые отвечают на все вопросы. А также мы, студенты, помогаем друг другу (за помощь тоже баллы дают 😁)
НО!
• Новичкам очень тяжело. Нужна уже какая-то база.
• Для себя понял, что гораздо легче проходить курс с макбука) Как раз мне его недавно на работе выдали
• Нужно ответственно проходить и рассчитывать время.
Продолжение следует..
—————————————————-
Как-то так
Есть мысль, про инструменты из курса делать короткие обзорные посты. Что думаете?
it пингвин | data engineer
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍7❤6✍2🤔2💅2💯1