Долговечность
Закрываем цикл постов про 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
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣22 8😁3😱2😭1
Пару месяцев назад проходил интересный собес на Кремлевский проект с хорошей оплатой.
Вот откуда пришел тот самый рекрутер 😆
Накидайте реакций если интересно⬇️ Завтра сделаю пост
*И кому не сложно бустаните канал плз, а то реакций совсем мало стало 🥲
boost
Вот откуда пришел тот самый рекрутер 😆
Накидайте реакций если интересно
*И кому не сложно бустаните канал плз, а то реакций совсем мало стало 🥲
boost
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍40💅17🔥10❤6 4🤔3🤷♂1😭1
This media is not supported in your browser
VIEW IN TELEGRAM
Собес на Кремлевский проект
Должность: Data Engineer
Компания: темка
Тип собеса: просто поболтали
Грейд: #senior #middle #jun наверное и без опыта могли взять
Вилка: 1млн чистыми на руки за 2 месяца
Итак, рассказываю✍️
В июле я оценивал рынок в перспективе найти вторую работу.
На тот момент я работал в банке по 2 часа в день и мог совмещать две работы (эх, надо было это ценить😢 )
Ко мне пришел рекрутер,как он сказал, с HR стартапа при Сколково. Общение сразу было легкое и я понял, что ему можно спокойно сказать, что мне нужна вторая работа. Он сказал все норм, проблем нет - можно совмещать. У них так много инженеров работает. И можно работать по ИП, СЗ, ГПХ.
В их конторе работает около 50 человек и в основном это госпроекты. Они молодые ребята, недавно организовали компанию и у них есть налоговые льготы.
Им нужен был data engineer на Кремлевский проект на 2 месяца и с возможным продлением. Сроки горят
Работать надо с NiFi. Я на тот момент с NiFi вообще не работал. Рекрутер сказал:
- не проблема, есть пару дней до собеса))))))🙂
Ну ок. Скинули мне 2 ТЗ. Одно ТЗ - на один месяц работы. Кстати, там был оочень подробно описано что нужно делать - что за потоки, куда подключаться, как парсить, куда заливать данные.
Я пару дней подготовился. Изучил ТЗ. Кинул клич в чатик с NiFi со спецами - помогите разобраться с NiFi за пару дней. Откликнулся добрый мужик, скинул мне полезную инфу - статейки и пару видосов.
Я нормально подготовился - понял суть NiFi, как делать потоки. запомнил основные процессоры. Все что мог разобрать за два дня - я сделал. С чистой совестью пошел на собес.
Собес
Собеседование длилось ровно 15 минут)) На нем присутствовали - я, рекрутер, менеджер проекта и тех лид.
Разговор по тех части с лидом длился 5 минут.
Вопросы:
На половину я отвечал просто - да/нет. Где-то пару предложения. Лид в глубь не копал, ему вообще как будто было лень спрашивать)
Я спросил - почему такой быстрый собес и вы ж вообще особо ничего и не проверили. Мне сказали, что вас же уже хорошо отскринили и пособесили в консалтинге (это вообще не так).
Далее мне сказали что нужно будет делать на проекте и наконец- то узнал название компании.
Проект -Корпорация малого и среднего предпринимательства (МСП) Я о таком раньше не слышал. Но вроде это большая компания.
Стек: NiFi, GP, Hadoop.
Основная работа с NiFi. Необходимо доработать 2 etl процесса и создать 4 новых. Читать данные с серверов ФНС.
Вся инфра у них в облаке ArenaData.
Оплата - почасовая. 3000 руб/час.
Считают зп чистыми на руки, на налог отдельно дают бабки.
И позже рекрутер прям со мной посчитал зп:
август 22 раб дня * 24к = 528к
сентябрь 22 раб дня * 24к = 528к
В общем, вариант был очень заманчивый. Но как и ожидалось - как они появились внезапно, так и быстро пропали.
Через несколько дней пришел ответ - позиция на фризе.
➖➖➖➖➖➖➖➖➖➖➖➖
Как вам такой собесик?)) Расскажите были ли у вас подобные странные предложения?⬇️
it пингвин | data engineer🐧
Должность: Data Engineer
Компания: темка
Тип собеса: просто поболтали
Грейд: #senior #middle #jun наверное и без опыта могли взять
Вилка: 1млн чистыми на руки за 2 месяца
Итак, рассказываю
В июле я оценивал рынок в перспективе найти вторую работу.
На тот момент я работал в банке по 2 часа в день и мог совмещать две работы (эх, надо было это ценить
Ко мне пришел рекрутер,как он сказал, с HR стартапа при Сколково. Общение сразу было легкое и я понял, что ему можно спокойно сказать, что мне нужна вторая работа. Он сказал все норм, проблем нет - можно совмещать. У них так много инженеров работает. И можно работать по ИП, СЗ, ГПХ.
В их конторе работает около 50 человек и в основном это госпроекты. Они молодые ребята, недавно организовали компанию и у них есть налоговые льготы.
Им нужен был data engineer на Кремлевский проект на 2 месяца и с возможным продлением. Сроки горят
Работать надо с NiFi. Я на тот момент с NiFi вообще не работал. Рекрутер сказал:
- не проблема, есть пару дней до собеса))))))
Ну ок. Скинули мне 2 ТЗ. Одно ТЗ - на один месяц работы. Кстати, там был оочень подробно описано что нужно делать - что за потоки, куда подключаться, как парсить, куда заливать данные.
Я пару дней подготовился. Изучил ТЗ. Кинул клич в чатик с NiFi со спецами - помогите разобраться с NiFi за пару дней. Откликнулся добрый мужик, скинул мне полезную инфу - статейки и пару видосов.
Я нормально подготовился - понял суть NiFi, как делать потоки. запомнил основные процессоры. Все что мог разобрать за два дня - я сделал. С чистой совестью пошел на собес.
Собес
Собеседование длилось ровно 15 минут)) На нем присутствовали - я, рекрутер, менеджер проекта и тех лид.
Разговор по тех части с лидом длился 5 минут.
Вопросы:
• Работал в КХД?
• Работал с NiFi?
• Оптимизировал потоки в NiFi?
• Проектировал витрины?
• Работал с SQL?))
• Работал с Data Vault?
• Как разложил бы данные (привел пример данных) по таблицам в дата волте. Что будет хабом, сателитом, линком?
На половину я отвечал просто - да/нет. Где-то пару предложения. Лид в глубь не копал, ему вообще как будто было лень спрашивать)
Я спросил - почему такой быстрый собес и вы ж вообще особо ничего и не проверили. Мне сказали, что вас же уже хорошо отскринили и пособесили в консалтинге (это вообще не так).
Далее мне сказали что нужно будет делать на проекте и наконец- то узнал название компании.
Проект -
Стек: NiFi, GP, Hadoop.
Основная работа с NiFi. Необходимо доработать 2 etl процесса и создать 4 новых. Читать данные с серверов ФНС.
Вся инфра у них в облаке ArenaData.
Оплата - почасовая. 3000 руб/час.
Считают зп чистыми на руки, на налог отдельно дают бабки.
И позже рекрутер прям со мной посчитал зп:
август 22 раб дня * 24к = 528к
сентябрь 22 раб дня * 24к = 528к
В общем, вариант был очень заманчивый. Но как и ожидалось - как они появились внезапно, так и быстро пропали.
Через несколько дней пришел ответ - позиция на фризе.
➖➖➖➖➖➖➖➖➖➖➖➖
Как вам такой собесик?)) Расскажите были ли у вас подобные странные предложения?
it пингвин | data engineer
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Кто постоянно отвлекается - пробуйте 😅
Особенно актуально в понедельник
Особенно актуально в понедельник
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤣24👍4😁4 3❤1😭1🙈1
Когда начинаете искать работу, сначала сходите на собеседования в компании, в которые точно не собираетесь устраиваться🤝
#МыслиВслух
#МыслиВслух
1❤21 11👍9🔥4🤔4😭1🤝1
30 минут не понимал почему у меня дичь с данными, везде дубли, пока не увидел это:
У кого было, признавайтесь?))
select hub_event_order_pk, a.hub_order_pk
from all_ a
join dbt_dds.link_event_order_x_order l on a.hub_order_pk=a.hub_order_pk
where l.tech_date>='2025-10-16'
У кого было, признавайтесь?))
😁27 16🤣5😭2💅2
Кто не знает на jetbrains теперь можно бесплатно качать (c vpn) PyCharm и DataGrip для для некоммерческого использования🫡 Начал с датагрип работать - пока что оч нравится визуально
Пользуетесь ли этими IDE-шками? Какие ваши любимые?⬇️ 🤔
Пользуетесь ли этими IDE-шками? Какие ваши любимые?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍2 2❤1😭1💅1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16 9💅3😱2👍1😭1 1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎃16❤13😁8 3🔥1🤔1😭1
Обзор на курс DE
Итак, прошла половина курса DE от New Professions Lab
Какие лабы еще были сделаны:
Лаба 2 — batch обработка данных e-commerce портала с кликом, аирфлоу и кафкой
Лаба 3 — realtime обработка данных e-commerce портала с кафкой и спарком
Лаба 4 — дата-сервис с фласком, кликом, кафкой (суперачивка - построить дашборд).
Какие еще были лекции:
• Clickhouse
• Hadoop
• Форматы хранения данных
• Введение в Apache Spark
• Apache Spark: оптимизация работы с данными
• Apache Spark Streaming
• Docker. Ansible. Kubernetes
• несколько консультаций
Лекции нравятся. По клику прям очень зашла. Я не знал, что Clickhouse настолько крутая СУБД и так активно везде внедряется. В том же OpenAI анализиуют петабайты данных по логам ежедневно на клике. Капитализация клика оценивается в $6 млрд.
Плотность лекций и лаб достаточно большая, я еще не посмотрел 3 лекции. В целом, лабы выполняю нормально, все что обязательно сделать - сделал, осталось пару суперачивок (необзятальные лабы). Примерно у 70% обучающихся проблем нет, лабы выполняются. Но многим оч тяжело.
Также я активно пользуюсь нейронками, чтобы быстрее выполнить лабы. Но преподы рекомендуют все делать самому без нейронок.
И еще раз хочу подчеркнуть - очень нравится, что есть удаленные машины, на которых выполняем все лабы. Скилл работы с терминалом и настройки окружения прокачивается.
Мне конечно было бы комфортнее, чтоб такой курс длился не 2 месяца, а 3 - 4. Так сейчас у меня очень много дел - напомню, у меня последний месяц испыталки в новой компании (и здесь уже много задач), менторство, тг канал и вот еще такой активный курс. Ну ничего, справимся ✊
Таком промежуточный итог, посмотрим что будет дальше.
it пингвин | data engineer🐧
Итак, прошла половина курса DE от New Professions Lab
Какие лабы еще были сделаны:
Лаба 2 — batch обработка данных e-commerce портала с кликом, аирфлоу и кафкой
Лаба 3 — realtime обработка данных e-commerce портала с кафкой и спарком
Лаба 4 — дата-сервис с фласком, кликом, кафкой (суперачивка - построить дашборд).
Какие еще были лекции:
• Clickhouse
• Hadoop
• Форматы хранения данных
• Введение в Apache Spark
• Apache Spark: оптимизация работы с данными
• Apache Spark Streaming
• Docker. Ansible. Kubernetes
• несколько консультаций
Лекции нравятся. По клику прям очень зашла. Я не знал, что Clickhouse настолько крутая СУБД и так активно везде внедряется. В том же OpenAI анализиуют петабайты данных по логам ежедневно на клике. Капитализация клика оценивается в $6 млрд.
Плотность лекций и лаб достаточно большая, я еще не посмотрел 3 лекции. В целом, лабы выполняю нормально, все что обязательно сделать - сделал, осталось пару суперачивок (необзятальные лабы). Примерно у 70% обучающихся проблем нет, лабы выполняются. Но многим оч тяжело.
Также я активно пользуюсь нейронками, чтобы быстрее выполнить лабы. Но преподы рекомендуют все делать самому без нейронок.
И еще раз хочу подчеркнуть - очень нравится, что есть удаленные машины, на которых выполняем все лабы. Скилл работы с терминалом и настройки окружения прокачивается.
Мне конечно было бы комфортнее, чтоб такой курс длился не 2 месяца, а 3 - 4. Так сейчас у меня очень много дел - напомню, у меня последний месяц испыталки в новой компании (и здесь уже много задач), менторство, тг канал и вот еще такой активный курс. Ну ничего, справимся ✊
Таком промежуточный итог, посмотрим что будет дальше.
it пингвин | data engineer
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤7👍4✍2 2
Будни дата инженера
Много людей подписано на канал, кто даже не работает в it, кто только думает вкатываться. Много аналитиков, биайщиков, бэкендеров и инженеров из других it-направлений
Не все понимают чем занимается дата инженер. Сфера задач у DE обширная. В работе DE используется множество технологий: SQL, Python, Scala, PostgreSQL, Oracle, Greenplum, Airflow, Dagster, Hadoop, Spark, Trino, dbt, Informatica, NiFi, Kafka, Flink, Docker, Kubernetes, Linux и т. д. Кто-то много кодит и собирает реально сложные пайплайны, кто-то пишет несложные SQL-скрипты и автоматизирует готовый код от аналитиков. Кто-то плотно работает с инфраструктурой, настраивает кучу контейнеров в Docker и Kubernetes. Кто-то плотно работает с DWH, пишет большие процедуры, занимается сложным моделированием таблиц и оптимизацией.
На канале будет новая рубрика — «Будни дата-инженера».
В ней я буду конкретно рассказывать о своих текущих задачах: что нужно сделать, какими инструментами и как именно я это сделал. Сейчас я работаю на всех слоях хранилища данных и с большим количеством технологий - задачки разнообразные. Также буду писать о своём прошлом опыте: какие были задачки и какие инструменты использовал. Думаю, многим это будет интересно и полезно.
И напоминаю: предложка всегда открыта. Буду ждать истории от подписчиков DE. Рассказывайте о своих типичных и нетипичных задачах. Давайте развивать комьюнити.
На неделе расскажу о своей недавно выполненной задачке✍️ Если интересна новая рубрика, накидайте реакций. ⬇️
it пингвин | data engineer🐧
Много людей подписано на канал, кто даже не работает в it, кто только думает вкатываться. Много аналитиков, биайщиков, бэкендеров и инженеров из других it-направлений
Не все понимают чем занимается дата инженер. Сфера задач у DE обширная. В работе DE используется множество технологий: SQL, Python, Scala, PostgreSQL, Oracle, Greenplum, Airflow, Dagster, Hadoop, Spark, Trino, dbt, Informatica, NiFi, Kafka, Flink, Docker, Kubernetes, Linux и т. д. Кто-то много кодит и собирает реально сложные пайплайны, кто-то пишет несложные SQL-скрипты и автоматизирует готовый код от аналитиков. Кто-то плотно работает с инфраструктурой, настраивает кучу контейнеров в Docker и Kubernetes. Кто-то плотно работает с DWH, пишет большие процедуры, занимается сложным моделированием таблиц и оптимизацией.
На канале будет новая рубрика — «Будни дата-инженера».
В ней я буду конкретно рассказывать о своих текущих задачах: что нужно сделать, какими инструментами и как именно я это сделал. Сейчас я работаю на всех слоях хранилища данных и с большим количеством технологий - задачки разнообразные. Также буду писать о своём прошлом опыте: какие были задачки и какие инструменты использовал. Думаю, многим это будет интересно и полезно.
И напоминаю: предложка всегда открыта. Буду ждать истории от подписчиков DE. Рассказывайте о своих типичных и нетипичных задачах. Давайте развивать комьюнити.
На неделе расскажу о своей недавно выполненной задачке
it пингвин | data engineer
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍71🔥31 11❤5💅2🥰1😭1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁39😱11 7🤣6🥰3💅2😭1
Будни дата инженера
Итак, как я и обещал рассказываю про мою недавнюю задачу.
Если кратко она звучала так:
Забрать данные из Кафки ML и построить витрину в DWH.
Сначала расскажу о нашем DWH.
Я работаю дата инженером в одном большом ритейле. А точнее работаю в доставке и у нас свое отдельное хранилище данных.
DWH у нас построено на Greenplum-e. Модель данных в хранилище - Data Vault. Данные в Greenplum-e по таблицам грузятся при помощи DBT. Оркестратор для запуска dbt моделей и не только для dbt - всем известный Airflow. Источники данных для нашего DWH по сути - топики в кафке. Данные из бэка попадают в Кафку. И дальше начинается наша работа, работа дата инженеров. Мы вытягиваем данные из Кафки при помощи Nifi. И грузим json-ы из Nifi в сырой слой Greenplum-a. Есть еще несколько разных инструментов, но они для этого кейса не важны.
Теперь давайте подробнее расскажу в чем суть задачи.
Есть команда ML (Machine Learning).
Они разработали модель для планирования (или даже для рекомендации) смен для сборщиков в магазинах. Дальше будет рекомендательная модель и для курьеров.
И нам нужно забирать эти данные в наше хранилище. ML-щики будут эти данные отправлять для нас в определенный топик Кафки. В одном сообщении (одно сообщение - для одного магазина на каждый день) будет храниться много рекомендаций смен сотрудников. Атрибуты - дата генерации, на какую дату рекомендация, id сотрудника, id магазина, различные типы, номер смены, рекомендованное время работы, рекомендованное время для обеденного перерыва и тд
Также хорошие заказчики прислали нужный им вид таблицы - какие нужны поля, комментарии и что они там хотят видеть.
Выполняем задачу
Создаем задачу для команды Кафки, чтоб нам выдали креды для подключения к новой для нас Кафки ML.
Выдали креды. Создаем новый pipepline в Nifi. Подключаемся к нужным топикам ML. Настраиваем загрузку данных из Кафки в таблицу в Greenplum (в сыром слое). Таблицу только что сами в GP и создали. Данные буферизируются в Nifi и отправляются в GP каждые 10 минут или каждые 10000 сообщений. Также настроили обработку ошибок и кривых сообщений.
Данные появились в GP - таблица stg_... Поля - дата, ид документа, само сообщение (json).
Сначала тестово написали парсер для json. И также при парсенге нужно генерить суррогатный ключ для каждой рекомендации для одного сотрудника. Ключ генерим из нескольких полей. Добавляем различные технические поля - даты, источник данных.
ГПТ очень помогает в таких задачах.
Распарсили json, обогатили данными из нашего dds слоя (присоединились к таблицам в нашем дата волте) и видим уже прототип витрины.
Теперь все наши скрипты оборачиваем в dbt модельки, настраиваем правильный конфиг для GP. Запускаем модельки "dbt run", видим данные в витрине.
Тестим запуски, пересчеты, проверяем корректность данных. Показываем витрину аналитику. Если есть замечания - исправляем.
Далее пушим наши изменения через git в прод. Подхватываем все наши новые файлы в проекте, делаем файл миграции для dbt. Ревьюер проверяет всю нашу разработку. Пока что мы еще молодые и зеленые в новой компании и не можем сами в прод мерджить. Запускаем миграцию в Airflow. Миграция отработала успешно.
Витрина на проде. Данные появились. Задачка закрыта. Приступаем к следующей. Задач много, а сроки как обычно горят😁
Я хоть и постарался подробно описать все. Но конечно же много деталей опустил. На каждом этапе было много нюансов - подключение к Кафке ML, работа с тестовыми топиками, написание SQL скриптов, создание витрины в обход слоя ддс, разработка на малом количестве данных, запуск миграции в аирфлоу и тд.
И еще можно обратить внимание, что я глубоко не вникал для чего нам эти данные и как они генерятся. Примерно понятно что там, но их ценность и как с ними будут работать - мне неинтересно. Может даже интересно, но вникать глубоко времени нет.
В следующем посте хочу кратко написать про перечисленные инструменты (для новичков). Будут краткие гптшные определения, чисто для удобства.
Дайте обратную связь плз, как вам формат? Какие есть вопросы по задачке?
it пингвин | data engineer🐧
Итак, как я и обещал рассказываю про мою недавнюю задачу.
Если кратко она звучала так:
Забрать данные из Кафки ML и построить витрину в DWH.
Сначала расскажу о нашем DWH.
Я работаю дата инженером в одном большом ритейле. А точнее работаю в доставке и у нас свое отдельное хранилище данных.
DWH у нас построено на Greenplum-e. Модель данных в хранилище - Data Vault. Данные в Greenplum-e по таблицам грузятся при помощи DBT. Оркестратор для запуска dbt моделей и не только для dbt - всем известный Airflow. Источники данных для нашего DWH по сути - топики в кафке. Данные из бэка попадают в Кафку. И дальше начинается наша работа, работа дата инженеров. Мы вытягиваем данные из Кафки при помощи Nifi. И грузим json-ы из Nifi в сырой слой Greenplum-a. Есть еще несколько разных инструментов, но они для этого кейса не важны.
Теперь давайте подробнее расскажу в чем суть задачи.
Есть команда ML (Machine Learning).
Они разработали модель для планирования (или даже для рекомендации) смен для сборщиков в магазинах. Дальше будет рекомендательная модель и для курьеров.
И нам нужно забирать эти данные в наше хранилище. ML-щики будут эти данные отправлять для нас в определенный топик Кафки. В одном сообщении (одно сообщение - для одного магазина на каждый день) будет храниться много рекомендаций смен сотрудников. Атрибуты - дата генерации, на какую дату рекомендация, id сотрудника, id магазина, различные типы, номер смены, рекомендованное время работы, рекомендованное время для обеденного перерыва и тд
Также хорошие заказчики прислали нужный им вид таблицы - какие нужны поля, комментарии и что они там хотят видеть.
Выполняем задачу
Создаем задачу для команды Кафки, чтоб нам выдали креды для подключения к новой для нас Кафки ML.
Выдали креды. Создаем новый pipepline в Nifi. Подключаемся к нужным топикам ML. Настраиваем загрузку данных из Кафки в таблицу в Greenplum (в сыром слое). Таблицу только что сами в GP и создали. Данные буферизируются в Nifi и отправляются в GP каждые 10 минут или каждые 10000 сообщений. Также настроили обработку ошибок и кривых сообщений.
Данные появились в GP - таблица stg_... Поля - дата, ид документа, само сообщение (json).
Сначала тестово написали парсер для json. И также при парсенге нужно генерить суррогатный ключ для каждой рекомендации для одного сотрудника. Ключ генерим из нескольких полей. Добавляем различные технические поля - даты, источник данных.
ГПТ очень помогает в таких задачах.
Распарсили json, обогатили данными из нашего dds слоя (присоединились к таблицам в нашем дата волте) и видим уже прототип витрины.
Теперь все наши скрипты оборачиваем в dbt модельки, настраиваем правильный конфиг для GP. Запускаем модельки "dbt run", видим данные в витрине.
Тестим запуски, пересчеты, проверяем корректность данных. Показываем витрину аналитику. Если есть замечания - исправляем.
Далее пушим наши изменения через git в прод. Подхватываем все наши новые файлы в проекте, делаем файл миграции для dbt. Ревьюер проверяет всю нашу разработку. Пока что мы еще молодые и зеленые в новой компании и не можем сами в прод мерджить. Запускаем миграцию в Airflow. Миграция отработала успешно.
Витрина на проде. Данные появились. Задачка закрыта. Приступаем к следующей. Задач много, а сроки как обычно горят😁
Я хоть и постарался подробно описать все. Но конечно же много деталей опустил. На каждом этапе было много нюансов - подключение к Кафке ML, работа с тестовыми топиками, написание SQL скриптов, создание витрины в обход слоя ддс, разработка на малом количестве данных, запуск миграции в аирфлоу и тд.
И еще можно обратить внимание, что я глубоко не вникал для чего нам эти данные и как они генерятся. Примерно понятно что там, но их ценность и как с ними будут работать - мне неинтересно. Может даже интересно, но вникать глубоко времени нет.
В следующем посте хочу кратко написать про перечисленные инструменты (для новичков). Будут краткие гптшные определения, чисто для удобства.
Дайте обратную связь плз, как вам формат? Какие есть вопросы по задачке?
it пингвин | data engineer
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥76👍13✍6❤5😱3 2😭1
Please open Telegram to view this post
VIEW IN TELEGRAM