Совет №65. Документируйте ETL-систему
Независимо от того, используете ли вы для ETL специализированные инструменты, или разрабатываете своими руками, ETL-система является таким же программным обеспечением, как и любое другое, и должна быть документирована. По мере развития самого хранилища данных, ETL-система развивается с ним в ногу. Вы и ваши коллеги должны иметь возможность быстро разобраться как в архитектуре системы, так и в мельчайших деталях.
Существует распространенный миф, что ETL-инструменты самодокументируются. Это верно только в сравнении с самописными системами. Не верьте этому! Всегда нужно проектировать архитектуру ETL-системы. И всегда нужно документировать эту систему. Да, нужно писать документ.
Первым делом при разработке легко сопровождаемой ETL-системы нужно остановиться и задуматься о том, что вы делаете. Как вы может разбить системы на модули? Как эти модули вместе сложатся в единый поток? Разрабатывайте систему таким образом, чтобы каждой таблице в хранилище соответствовал отдельный пакет, поток, модуль (в общем, то, как это называется в используемом вами инструменте). Напишите документ, описывающий общий подход – хотя бы несколько страниц и один-два скриншота.
Спроектируйте шаблон модуля и сгруппируйте похожие действия. Шаблон должен ясно определять, какие элементы используются для извлечений, трансформаций, поиска по справочникам, приведений к общему виду, обработок изменений в справочниках, и загрузок в целевые таблицы. Затем задокументируйте шаблон самым скрупулезным образом, используя скриншоты. Документация должна фокусироваться на том, что делается, а не на деталях того, как делается каждый шаг.
Далее, по шаблону постройте модули для каждого измерения и таблицы фактов. Если ваш ETL-инструмент позволяет задавать расположение отдельных элементов, то делайте все модули выглядящими одинаково. Тогда можно посмотреть в верхнюю левую часть, и будет легче понять витиеватую логику в середине. Модули для каждой таблицы-измерения должны выглядеть действительно похожими друг на друга; то же самое и для модулей таблиц фактов. Документация для каждой таблицы должна концентрировать внимание на отличиях от шаблона. Не повторяйте детали, уделяйте внимание только важным моментам. Приправьте ETL-систему комментариями, если инструмент позволяет это сделать.
Наконец, ваш ETL-инструмент может поддерживать в некотором виде самодокументирование. Используйте эту функциональность. Но так как в результат обычно либо откровенно слабый (например, набор скриншотов), либо наоборот слишком детальный (перечень значений всех свойств всех объектов), то рассматривайте это лишь как дополнение к нормальной документации. Наш опыт показывает, что обычно это не очень полезно.
Материал опубликован с разрешения компании Ralph Kimball Associates
Автор оригинала: Ralph Kimball
Перевод на русский язык: Егор Демьянов
Оригинальный документ располагается здесь
Для удобства отслеживания новых публикаций рекомендуем подписаться на рассылку или на канал RSS.
- Совет №35. Моделирование промежутков времени
- Совет №28. Предотвращение катастрофических сбоев в хранилищах данных
- Совет №29. Грациозные модификации существующих таблиц фактов и измерений
- Совет №31. Проектируем партицию реального времени
- Совет №24. Разрабатываем измерения в многонациональном хранилище данных