Что такое область подготовки данных?
1. Введение
Работая с конвейерами данных, вы могли заметить промежуточную область в большинстве конвейеров данных. Если вы работаете в пространстве данных и у вас есть такие вопросы, как
- Зачем там область подготовки данных? Разве мы не можем просто загрузить наши данные в целевые таблицы?
- Зачем нам хранить сырые/необработанные данные, если у нас уже есть очищенные данные?
- Не дорого ли хранить данные, которые мы не собираемся использовать?
- Удаляются ли данные из области подготовки данных полностью после преобразования?
Тогда этот пост для вас. В этом посте мы рассмотрим, что такое промежуточная область и почему она имеет решающее значение для конвейеров данных.
2. Что такое область подготовки данных
Область подготовки данных — это концепция проектирования конвейера данных. Это относится к области, где хранятся необработанные данные, прежде чем они будут преобразованы для дальнейшего использования. Промежуточными областями могут быть таблицы базы данных, файлы в облачной системе хранения и т. д.
3. Преимущества наличия области подготовки данных
В большинстве конвейеров данных данные в исходной системе постоянно изменяются. Хранение данных из источника в промежуточной области при каждом запуске конвейера данных предоставляет нам исторический снимок исходных данных.
Предположим, у нас есть конвейер данных, каждый день извлекающий данные из базы данных приложения. База данных приложения представляет данные в текущем состоянии. Например, предположим, что у нас есть пользовательская таблица со столбцом zipcode. Если пользователь изменит свой zipcode, приложение перезапишет существующее значение zipcode . Это стандартный конструкция базы данных OLTP.
Предположим, мы обнаружили ошибку на этапе преобразования и должны повторно обработать данные за последние три месяца, используя правильную логику. У нас нет данных на момент времени за последние три месяца, так как база данных приложения будет содержать только текущее состояние. Но если мы сохранили извлеченные данные в промежуточной области, мы можем запустить обратную загрузку с правильной логикой для данных в промежуточной области.
Таким образом, мы видим, что в области подготовки данных хранятся исторические снимки исходных данных. Промежуточная область устраняет нашу зависимость от источника исторических данных.
Вот еще несколько примеров сценариев, в которых могут быть полезны промежуточные области.
- Промежуточные данные со скрейпинга веб-сайтов предоставляют нам исторический снимок веб-сайта. Промежуточная область имеет решающее значение, поскольку веб-сайт может блокировать парсеры, вызовы с ограничением скорости и т. д.
- Расхождения в данных можно проследить до необработанных исходных данных. Эта линия передачи данных имеет решающее значение при отладке проблем с вашим конвейером данных.
- Если входящие данные добавляют новый столбец после определенной даты, мы можем изменить наш сценарий загрузки с помощью простой логики if-else на основе даты, чтобы учесть это. Наличие логики, основанной на датах, позволяет нам управлять эволюцией схемы.
- Заполните целевые данные новой логикой преобразования, примененной к промежуточным данным.
Некоторые конвейеры данных имеют область необработанной/базовой/целевой зоны, где хранятся данные, извлеченные из исходной системы, и промежуточную область, где необработанные данные преобразуются для получения согласованных имен и типов столбцов.
Бизнес-логика применяется к промежуточным данным и тестируется перед вставкой в окончательные таблицы.
4. Заключение
Надеюсь, эта статья дало вам представление о том, что такое промежуточная область и почему она имеет решающее значение в конвейере данных. В следующий раз, когда вы будете строить конвейер данных, убедитесь, что у вас есть область подготовки данных, и ваше «я» из будущего скажет вам спасибо.