Проектирование инновационных решений для работы с данными
Задачи, которые стоят перед нами сегодня при проектировании, связаны с необходимостью избегать ошибок, основаных на постоянных проектных изменениях. Как мы можем уменьшить их воздействие на организацию наших данных? Возможно ли это в принципе?
Вопрос проектирования хранилищ данных широко обсуждался на протяжении последних лет. Многолетние споры Ральфа Кимбалла и Билла Инмона вошли в историю. Выбор между нормализованными хранилищами данных и хранилищами с измерениями по-прежнему рассматривается при при разработке каждого нового хранилища данных. Для данной дискуссии этот выбор несуществен. Какой бы подход Вы не выбрали, Вам все равно придётся планировать дальнейший процесс проектирования. Можем ли мы построить проект шаг за шагом? Можем ли мы уменьшить воздействие проекта в целом и свести к минимуму регрессионное тестирование? Это постоянная проблема, с которой мы сталкиваемся при разработке решений для работы с данными, особенно при использовании Аджайл технологий для разработки успешного проекта. Главный принцип здесь - спланировать и разработать один раз, а в дальнейшем продолжать разработку в соответствии с планом, но здесь есть некоторые важные факторы, которые нужно учитывать на этапе проектирования, позволяющие оптимизировать проект и минимизировать рефакторинг, который может потребоваться при внесении изменений в проект.
Первое, что Вы должны предусмотреть - это использование шаблонов проектирования для моделирования хранилищ данных. Данный подход основывается на том, что все объекты строятся с использованием шаблонов, которые могут быть использованы для решения большинства задач в течение всего процесса проектирования. Это означает, что похожие таблицы будут основаны на стандартных образцах. На самом базовом уровне мы предварительно определяем их размер и как они будут выглядеть. Они будут включать в себя суррогатный ключ и различные атрибуты, необходимые для каждой из них. Кроме того, они содержат в себе мониторинг полей, позволяющий нам контролировать, как и когда происходит обработка данных.
Для более сложных данных или измерений мы также создаём шаблон, который позволяет нам поддерживать различные постепенно изменяющиеся измерения, а также для управления быстро меняющимеся данными, оба этих продвинутых метода проектирования предоставляют нам возможность управлять данными эффективно и последовательно. Для установки связей мы смотрим на тот метод, где определяются промежуточные таблицы для управления связями. Для этой цели мы строим таблицы перерасчёта, обеспечивающие надежные методы установки связей между данными и измерениями, что в свою очередь улучшает производительность и расширяет возможности запросов в будущем, а также играет ключевую роль в предоставлении возможностей модели работать в нескольких предметных областях.
Второй принцип заключается в разработке с перспективой на будущее. В данной ситуации Вы сталкиваетесь с возможностью разработки на основе только определенных требований, не задумываясь о Ваших будущих потребностях. В контексте Аджайл технологий это может показаться очевидным подходом к проектированию: разрабатывайте то, что Вам нужно, и тогда, когда Вам это нужно. Концепция "Разработка точно в срок" многократно обсуждена и отработана в течение последних нескольких лет. Тем не менее, когда Вы на практике воплощаете эти принципы в жизнь, попытайтесь определить данные и измерения как можно более точно уже на первом шаге разработки, чтобы убедиться, что Вы проектируете в соответствии с будущими потребностями, в дополнение к тому, на что Вы ориентируетесь на данный момент. Это приведёт к дополнительными атрибутами, которые могут быть использованы только в гораздо более поздних спринтах, но которые нужны для того, чтобы уменьшить количество рефакторинга. Кроме того, это может быть необходимо для определения дополнительных измерений, что позволит свести к минимуму переделки когда дело дойдет до добавления измерений в таблицы в будущем. Принцип заключается в разработке того, что Вам нужно, и когда Вам это нужно, но проявляя дальновидность в определениях объектов как можно раньше.
Заключительной рекомендацией по созданию инновационных продуктов будет пожелание обеспечить для Ваших хранилищ данных поддержку интеграции с несколькими источниками данных с самого начала. Поэтому добавьте дополнительные атрибуты и функциональность процедуры извлечения, трансформации и загрузки данных, которая поддерживает этот метод. Задачей создания хранилища данных, на практике, является обеспечение бизнеса комплексной и надежной технологией; таким образом, Вы должны начинать разработку с целью интеграции. По большому счету, проектирование и разработка хранилищ данных требует от архитектора и моделлера данных заглянуть в будущее. Они должны предвосхищать появление требований к данным и определять объекты данных и связи между ними как можно более детально с самого начала Также Вы можете избежать многих ошибок разработчиков хранилищ данных начав разработку с мыслью о конечном продукте, строя свой проект на основе потребностей бизнеса.