DON'T STOP AND CODE
93 subscribers
41 photos
1 video
1 file
109 links
Мой путь в программировании
#python

Для связи: @avagners
Download Telegram
Завершил 30 дней на HackerRank.
Вот золотые шильдики.
🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
🔥1
🔥Записался на курс "Инженер данных".🔥

Всем привет! Решил, что логическим развитием моей карьеры будет освоение такого направления в разработке как data engineering.

Моим первым местом работы был Магнит, где я познакомился с Big Data. На текущем месте работы я также работаю с данными. Т.е. у меня уже есть некоторый опыт в этой специализации.

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

Курс длится 6,5 месяцев. Программа интересная.

Вперед!👨‍💻
👍3🔥3👏2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥2
Тем временем как у меня дела с ООАП?

Всё хорошо. Постепенно осваиваю тему. Сейчас изучаю что такое полиморфизм, ковариатность, отношения между классами.

Например, какое отношение между классами выбрать на стадии проектирования? "Содержит" или "является"?

Тема для меня была довольно сложная для понимания. Но постепенно пазл складывается и у меня формируется довольно хорошее представление в голове на эту тему.

Тема мне даётся непросто. Спустя только почти 2,5 месяца изучения, у меня реально начало появляться понимание как всё работает.

Тема большая. Поэтому мне ещё её изучать и изучать.
👏5
This media is not supported in your browser
VIEW IN TELEGRAM
Всем привет!

Месяц ничего не писал.
Как у меня дела?

Всё хорошо. Хочу поделиться целью на первое полугодие.

Мне нужно увеличить доход на 30%+. У меня уже есть первый результат.

С нового года мне пересмотрели ЗП и увеличили её на 15%.=)
Мы с женой выражаем благодарность компании и моему руководителю.

Это моё первое повышение ЗП в должности разработчика без перехода на новое место работы.

Для меня это ещё признак того, что у меня получается, я развиваюсь, и иду в правильном направлении.

Но что на счёт выполнения цели в полном объёме?

Для этого у меня есть план.
Он включает в себя подготовку к собеседованиям и сами собеседования в другие компании.

В рамках подготовки к собеседованиям мне нужно:
- прочитать пару книг;
- повторить структуры данных и алгоритмы;
- изучить типичные вопросы на собеседованиях для своей специализации;
- подготовить ответы на типичные личностные вопросы;
- актуализировать резюме.

Ну и самое главное проходить непосредственно собеседования.
По плану нужно проходить их очень активно.
👍3🔥3👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Прохожу курс "Инженер данных" - прошел 25%.

Хочется отметить что тема мне знакома.
С помощью курса получается здорово систематизировать знания.
Серьезных трудностей курс пока не вызывает.

При этом хочу выделить то, что узнал нового:
- простая и инкрементальная загрузка данных;
- архитектура DWH (Staging, Хранилище, Витрины);
- модели данных (Реляционная - OLTP, Многомерная - OLAP);
- виды многомерных моделей (Звезда, Снежинка);
- функции и триггеры в бд;

Отдельно выделю знакомство с PostgreSQL, DBeaver, Metabase.
Получаю удовольствие от выполнения заданий и написания кода. =)

Продолжаем.👨‍💻
🔥6👍2
This media is not supported in your browser
VIEW IN TELEGRAM
😁3
Бэкап или Откат?

Бэкап представляет собой файлы, в которых содержится инструкция, как восстановить сохранённую копию БД. Например, в PostgreSQL есть утилита pg_dump. Она генерирует файл с SQL-запросами для создания таблиц и вставки в них данных.

Откат изменений — это более сложный процесс восстановления БД к исходному состоянию. Откат отменяет те изменения, которые были внесены. Для каждого действия в БД можно найти противоположное действие. Если была добавлена новая колонка, то скрипт отката должен содержать алгоритм удаления этой колонки. Он может быть осуществлён скриптами или с помощью утилит. Скрипты должны учитывать алгоритм миграции и все временные таблицы. Существуют специальные приложения, которые позволяют выполнять миграции, версионировать БД и откатывать изменения, например системы контроля версий Liquibase и Flyway.
🔥4
Очень смешно))
😁6
Доброй субботы, друзья! 👨‍💻
🔥32
Слои в корпоративном хранилище данных (КХД).

- Слой Raw (от англ. «сырой») — слой сырых данных. Исходные данные сохраняются, чтобы можно было сделать дополнительные ETL-процессы без перевыгрузки информации из систем-источников.

- Слой ODS (от англ. Operational Data Store — «хранилище операционных данных»). В рамках этого слоя сырые данные очищаются от технической информации: даты обновления строк, изменение полей и др. Состояние данных близко к источнику, но с ними уже могут работать аналитики.

- Слой DDS (от англ. Detail Data Store — «хранилище детализированных данных»). В этом слое готовятся справочники со всей нужной информацией по компании, нормализируются данные, создаются ключи связей, чтобы было удобнее использовать информацию из разных источников.

- Слой CDM (от англ. Common Data Marts — «общие витрины данных»). Здесь собираются широкие витрины с агрегатами и показателями с детализацией вплоть до пользователя. Данные поступают в витрины по регламенту из источников DDS слоя.

- Слой REP (от англ. Reporting — «отчётность»). Отсюда данные отправляются, например, в BI или автоматизированные боты, чтобы пользователи получили готовые отчёты. Данные в REP отличаются тем, что они готовятся для конкретной задачи. Данные же в слое CDM постоянно переиспользуются.

Описанные слои не являются обязательными для процесса обработки, всё зависит от целей и особенностей компании и её данных.

Чаще всего можно увидеть менее объёмную схему обработки данных:

Источник данных → слой Raw → слой ODS → слой CDM

👨‍💻
👍2
Друзья, делаю 2D игру на Python.

Для закрепления и отработки ООАП решил сделать игру-платформер.

Буду использовать игровой движок https://github.com/pythonarcade/arcade.

Цель: сделать игру на 20+ классов.

Пожелайте мне удачи. =)
👍4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Проектирование ETL процесса👨‍💻

1) Сколько слоев данных в хранилище?
- чаще всего встречаются слой стейджинга и витрины данных, реже — слой детальных интегрированных данных;
- стейджинг нужен для хранения данных в формате системы-источника, витрина данных — для хранения данных в виде измерений и фактов;
- для каждого из слоёв создается отдельная модель данных;

2) Какой тип загрузки больше всего подходит?
- инкрементальная загрузка - обрабатывает только ту порцию данных, которая изменилась по отношению к прошлой загрузке, тем самым сокращая объём обрабатываемых данных;
- полный пересчет - в большинстве случаев применяется для обработки небольших объёмов данных;
- архивная загрузка - загрузки архивных данных за прошедшие периоды;

3) Какие алгоритмы преобразования нужно применить?
- маппинг, или S2T - это документ, который отражает трансформации полей источника на поля приёмника;

4) Как данные связаны между собой и какую последовательность загрузки выбрать?
- измерения всегда загружаются в первую очередь;
- факты загружаются после измерений, так как используют их данные;
- проверить таблицы с измерениями, чтобы понять, нет ли в них связей между собой;

5) Проектируем систему восстановления.
- в случае сбоев процессы должны продолжать свою работу с момента падения;
- нужно настроить проверку статуса загрузки — загружался ли объект ранее;
- нужно настроить сохранение статуса загрузки — в случае успешной загрузки об этом должна создастся запись;
🔥4
Архитектура компонентов Airflow
👍2🤔1
Путь задачи в Airflow
2👍2