Бэкап или Откат?
Бэкап представляет собой файлы, в которых содержится инструкция, как восстановить сохранённую копию БД. Например, в PostgreSQL есть утилита pg_dump. Она генерирует файл с SQL-запросами для создания таблиц и вставки в них данных.
Откат изменений — это более сложный процесс восстановления БД к исходному состоянию. Откат отменяет те изменения, которые были внесены. Для каждого действия в БД можно найти противоположное действие. Если была добавлена новая колонка, то скрипт отката должен содержать алгоритм удаления этой колонки. Он может быть осуществлён скриптами или с помощью утилит. Скрипты должны учитывать алгоритм миграции и все временные таблицы. Существуют специальные приложения, которые позволяют выполнять миграции, версионировать БД и откатывать изменения, например системы контроля версий Liquibase и Flyway.
Бэкап представляет собой файлы, в которых содержится инструкция, как восстановить сохранённую копию БД. Например, в PostgreSQL есть утилита pg_dump. Она генерирует файл с SQL-запросами для создания таблиц и вставки в них данных.
Откат изменений — это более сложный процесс восстановления БД к исходному состоянию. Откат отменяет те изменения, которые были внесены. Для каждого действия в БД можно найти противоположное действие. Если была добавлена новая колонка, то скрипт отката должен содержать алгоритм удаления этой колонки. Он может быть осуществлён скриптами или с помощью утилит. Скрипты должны учитывать алгоритм миграции и все временные таблицы. Существуют специальные приложения, которые позволяют выполнять миграции, версионировать БД и откатывать изменения, например системы контроля версий Liquibase и Flyway.
🔥4
Слои в корпоративном хранилище данных (КХД).
- Слой Raw (от англ. «сырой») — слой сырых данных. Исходные данные сохраняются, чтобы можно было сделать дополнительные ETL-процессы без перевыгрузки информации из систем-источников.
- Слой ODS (от англ. Operational Data Store — «хранилище операционных данных»). В рамках этого слоя сырые данные очищаются от технической информации: даты обновления строк, изменение полей и др. Состояние данных близко к источнику, но с ними уже могут работать аналитики.
- Слой DDS (от англ. Detail Data Store — «хранилище детализированных данных»). В этом слое готовятся справочники со всей нужной информацией по компании, нормализируются данные, создаются ключи связей, чтобы было удобнее использовать информацию из разных источников.
- Слой CDM (от англ. Common Data Marts — «общие витрины данных»). Здесь собираются широкие витрины с агрегатами и показателями с детализацией вплоть до пользователя. Данные поступают в витрины по регламенту из источников DDS слоя.
- Слой REP (от англ. Reporting — «отчётность»). Отсюда данные отправляются, например, в BI или автоматизированные боты, чтобы пользователи получили готовые отчёты. Данные в REP отличаются тем, что они готовятся для конкретной задачи. Данные же в слое CDM постоянно переиспользуются.
Описанные слои не являются обязательными для процесса обработки, всё зависит от целей и особенностей компании и её данных.
Чаще всего можно увидеть менее объёмную схему обработки данных:
Источник данных → слой Raw → слой ODS → слой CDM
👨💻
- Слой 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+ классов.
Пожелайте мне удачи. =)
Для закрепления и отработки ООАП решил сделать игру-платформер.
Буду использовать игровой движок https://github.com/pythonarcade/arcade.
Цель: сделать игру на 20+ классов.
Пожелайте мне удачи. =)
GitHub
GitHub - pythonarcade/arcade: Easy to use Python library for creating 2D arcade games.
Easy to use Python library for creating 2D arcade games. - pythonarcade/arcade
👍4🔥2
Проектирование ETL процесса👨💻
1) Сколько слоев данных в хранилище?
- чаще всего встречаются слой стейджинга и витрины данных, реже — слой детальных интегрированных данных;
- стейджинг нужен для хранения данных в формате системы-источника, витрина данных — для хранения данных в виде измерений и фактов;
- для каждого из слоёв создается отдельная модель данных;
2) Какой тип загрузки больше всего подходит?
- инкрементальная загрузка - обрабатывает только ту порцию данных, которая изменилась по отношению к прошлой загрузке, тем самым сокращая объём обрабатываемых данных;
- полный пересчет - в большинстве случаев применяется для обработки небольших объёмов данных;
- архивная загрузка - загрузки архивных данных за прошедшие периоды;
3) Какие алгоритмы преобразования нужно применить?
- маппинг, или S2T - это документ, который отражает трансформации полей источника на поля приёмника;
4) Как данные связаны между собой и какую последовательность загрузки выбрать?
- измерения всегда загружаются в первую очередь;
- факты загружаются после измерений, так как используют их данные;
- проверить таблицы с измерениями, чтобы понять, нет ли в них связей между собой;
5) Проектируем систему восстановления.
- в случае сбоев процессы должны продолжать свою работу с момента падения;
- нужно настроить проверку статуса загрузки — загружался ли объект ранее;
- нужно настроить сохранение статуса загрузки — в случае успешной загрузки об этом должна создастся запись;
1) Сколько слоев данных в хранилище?
- чаще всего встречаются слой стейджинга и витрины данных, реже — слой детальных интегрированных данных;
- стейджинг нужен для хранения данных в формате системы-источника, витрина данных — для хранения данных в виде измерений и фактов;
- для каждого из слоёв создается отдельная модель данных;
2) Какой тип загрузки больше всего подходит?
- инкрементальная загрузка - обрабатывает только ту порцию данных, которая изменилась по отношению к прошлой загрузке, тем самым сокращая объём обрабатываемых данных;
- полный пересчет - в большинстве случаев применяется для обработки небольших объёмов данных;
- архивная загрузка - загрузки архивных данных за прошедшие периоды;
3) Какие алгоритмы преобразования нужно применить?
- маппинг, или S2T - это документ, который отражает трансформации полей источника на поля приёмника;
4) Как данные связаны между собой и какую последовательность загрузки выбрать?
- измерения всегда загружаются в первую очередь;
- факты загружаются после измерений, так как используют их данные;
- проверить таблицы с измерениями, чтобы понять, нет ли в них связей между собой;
5) Проектируем систему восстановления.
- в случае сбоев процессы должны продолжать свою работу с момента падения;
- нужно настроить проверку статуса загрузки — загружался ли объект ранее;
- нужно настроить сохранение статуса загрузки — в случае успешной загрузки об этом должна создастся запись;
🔥4
#мысли
Главная задача специалиста по работе с данными: "Помогать бизнесу. Мы помогаем бизнесу быть эффективнее!".
Я бы сказал, что это относится не только к инженерам данных, но и ко всем разработчикам. Мы пишем код не ради кода. Не соревнуемся в сложности решения той или иной задачи, а всегда помним про главную задачу.
Бизнес зарабатывает - мы получаем ЗП. Все довольны.
И при поиске работы мы должны рассказывать не про скиллы, а про ценность, которую мы смогли внести в бизнес.
Важно понимать, как именно работа проделанная дата инженером влияет на то, что происходит с бизнесом.
Главная задача специалиста по работе с данными: "Помогать бизнесу. Мы помогаем бизнесу быть эффективнее!".
Я бы сказал, что это относится не только к инженерам данных, но и ко всем разработчикам. Мы пишем код не ради кода. Не соревнуемся в сложности решения той или иной задачи, а всегда помним про главную задачу.
Бизнес зарабатывает - мы получаем ЗП. Все довольны.
И при поиске работы мы должны рассказывать не про скиллы, а про ценность, которую мы смогли внести в бизнес.
Важно понимать, как именно работа проделанная дата инженером влияет на то, что происходит с бизнесом.
👍3🔥3❤2
🔥4
#словарик
Redis - хранилище данных, применяемые как очереди сообщений;
Apache Kafka - очереди сообщений с соответствующим базам данных уровнем надежности;
Redis - хранилище данных, применяемые как очереди сообщений;
Apache Kafka - очереди сообщений с соответствующим базам данных уровнем надежности;
👍3
Перевалило за 1000 коммитов на github. =)
Кто не подписан, давай подпишемся друг на друга.🤓
https://github.com/avagners
Кто не подписан, давай подпишемся друг на друга.🤓
https://github.com/avagners
🔥4🎉1
Для меня этот год является годом открытий. 😌
1) Пошёл в зал. Занимаюсь с тренером. Результат огонь🔥🔥🔥.
2) На работе выдали macbook pro 16 на M1. Впервые пользуюсь продукцией эпл. 👨💻
3) Прошёл курс массажа. Поправил хорошенько спину. 💪
4) Сломал 2 руки. Попробовал ДМС. Услуги в частной клинике на высоте. Никогда прежде не использовал ДМС, хотя мне все предыдущие работодатели их оформляли. ДМС понравилось)😅
Вот такие дела)
1) Пошёл в зал. Занимаюсь с тренером. Результат огонь🔥🔥🔥.
2) На работе выдали macbook pro 16 на M1. Впервые пользуюсь продукцией эпл. 👨💻
3) Прошёл курс массажа. Поправил хорошенько спину. 💪
4) Сломал 2 руки. Попробовал ДМС. Услуги в частной клинике на высоте. Никогда прежде не использовал ДМС, хотя мне все предыдущие работодатели их оформляли. ДМС понравилось)😅
Вот такие дела)
🔥4🤔1🙏1