Роль модели данных в процессе создания хранилища данных
В процессе управления компанией все виды деятельности должны поддерживать стратегию и тактику с минимальными затратами и приносить максимальную эффективность. Для этих целей аналитическое программное обеспечение должно давать максимум отдачи, т.е. строиться на корректных моделях и правильно подобранных показателях деятельности, а также максимально возможное его использование.
С точки зрения развития аналитического программного обеспечения модель данных – это основа всей структуры хранилища, взаимосвязей его таблиц, текущих и будущих возможностей анализа и информационного развития компании. Цель данной статьи рассказать об опыте построения моделей данных для компаний, планирующих внедрить хранилище данных.
Объем проекта
В начале проекта определяются требования бизнеса относительно того, какие данные, отчеты, показатели интересны бизнесу. У любого проекта есть ограничения (бюджет, сроки, требования качества), поэтому результатом сбора требований может оказаться больший объем работ, чем предусмотрено оговоренными ограничениями. Здесь важно выделить требования, которые необходимо получить в результате реализации проекта, причем независимо от того, имеется ли на данный момент такая информация или нет. Это могут быть требования, которые уже сегодня исполняются и которые следует перенести в хранилище, а также требования, которые сегодня не исполняются, но которые желательно реализовать. В том случае, если проект сталкивается с ограничением по времени и ресурсам, следует придерживаться приведенной последовательности для дальнейших работ. Ограничения могут коснуться команды специалистов по реализации проекта на стадии сбора отчетов, KPI, изучения источников данных.
Разработать модель данных всегда проще, чем потом ее реализовать физически в хранилище и заполнить данными. Теоретически количество сущностей в модели может быть огромным (от 200 до 400 и более). Но надо учитывать, что объем дальнейших работ будет линейно зависеть от количества сущностей модели. Поэтому, если изначально нет ограничений на данное количество, можно выполнить проектирование модели в срок, однако дальнейшие работы в срок выполнены не будут. Есть два пути решения задачи: построить модель всех интересуемых областей бизнеса, но при этом не ставить целью создание физически всей ее сущности; создавать модель постепенно, последовательно заполняя сущности и разбив проект на несколько этапов.
Обязательные условия
Проектный опыт нашей компании (Energy Consulting/Integration на момент публикации, прим. Prj-Exp.ru) показывает, что для построение модели требуется выполнение двух обязательных условий: наличие опытного лидера по моделированию; активное участие в работах представителей бизнеса и ИТ-службы заказчика. Модель данных – это «взгляд» на деятельность компании, и лучше самого заказчика его бизнес не знает никто. При затрате больших временных ресурсов бизнес-консультантов для получения информации модель будет создана и будет верна. Но при таком подходе не будет полного понимания того, что это за модель и какие отчеты можно получить из хранилища, а также что надо предпринять в компании для улучшения информационной среды. Теоретически идеальной является ситуация, которая предусматривает участие в проекте со стороны его исполнителя эксперта по всем областям деятельности компании, который знает, как устроены ее системы данных. В проекте появляется лидер по модели, который постепенно собирает все сведения о взглядах аналитиков на деятельность компании и в дальнейшем о том, как эта информация представлена в ее системах. При этом основным его качеством должны быть не столько глубокое знание специфики деятельности компании, сколько умение правильно задавать вопросы и наличие опыта проектирования баз данных.
Несмотря на уникальность каждого вида бизнеса, системы и принципы выделения сущностей, их взаимосвязи довольно схожи, поэтому, если проектная команда знакома с тем видом бизнеса, где реализуется проект, то, как и во всех проектах, это станет значительным преимуществом по времени, затраченному на проект, и качеству модели.
Процесс создания
Рассмотрим процесс создания модели. Чаще всего сбор требований осуществляют по нескольким сотрудникам компании. В результате он оказывается раздробленным, что может привести к размытости формулировок, полученных от разных специалистов. Наличие отраслевого решения, приобретенного от поставщика моделей, способствует облегчению работы по формированию требований. Безусловным требованием к бизнес-консультантам является понимание структуры баз данных, понятий «сущность, таблица, атрибуты, справочники», а также бизнеса заказчика. Итогом этой работы может быть создание глоссария объектов, т.е. четких определений тех объектов, которые будут созданы в модели.
С лидером по формированию модели будет создана первая модель, которую нужно проверить на адекватность и точность со специалистами, работающими с источниками данных. Это исследование проводят ИТ-консультанты, выясняя наличие данных и правильность их взаимосвязи в системах, а также бизнес-консультанты, поскольку именно они формулировали требования, и в случае возникновения вопросов решат их самостоятельно или совместно с бизнес-заказчиком.
Приведем пример, когда название сущности является предметом споров между участниками проекта. Бизнес-консультанты, называя слово, подразумевают одну сущность (как говорят в бизнесе), а под этим же словом в источнике данных понимается другое понятие, что длительное время не позволяет правильно создать область анализа. Допустим, что под таким понятием, как «объект недвижимости», в компании, занимающейся сдачей в аренду площадей, бизнес-пользователи понимают и комплекс объектов, и каждое конкретное здание. Принцип названия для них – сдаваемый объект, что может включать и комплекс, и отдельное здание, и отдельный этаж, и даже отдельные офисы комплекса. В учетной системе объектом недвижимости может быть каждое владение. Первый анализ покажет, что данные по объектам недвижимости в системе есть, поскольку внешне они похожи. В дальнейшем объекту недвижимости могут быть присвоены атрибуты «количество этажей», «площадь парковки», но поскольку смысл этих объектов разный, то эта область останется некорректной до тех пор, пока не будет утверждено полное описание данных сущностей. В действительности должно быть создано два объекта – «сданный объект» и «имеющиеся объекты» и даже третья сущность – «связь сданных объектов с имеющимися», которая отразит, какие здания в комплексе или этажи сданы одновременно.
Если построить модель на основании только одной сущности, то будет разработана одна таблица с признаками, и только к моменту ее наполнения данными (списком объектов) возникнет проблема с неверными определениями. Станет ясно, что это три списка, три таблицы. Поэтому пользователь должен понимать, что с его слов создана таблица с определенными свойствами и полученная информация влияет на модель. Скорее всего, ошибка будет выяснена еще на этапе формирования модели, но в более сложном случае консультант, собирающий информацию, не заметил бы неточности в формулировках. В любом случае проверка ИТ-специалистами на следующем этапе и сравнение с тем, как хранятся данные в источнике, выявляют неточности, не замеченные бизнес-консультантами, либо выявляют совсем другой аспект – нехватку информации.
К сожалению, даже проверка с источниками данных без точного определения сущности не даст правильного ответа. Имеются примеры, когда в формировании какого-либо справочника ИТ-специалисты не участвуют и сверить содержание справочников с источниками данных не могут. Например, рассмотрим частое употребляемое понятие «продукт» («услуга» или «товар»). Есть список продуктов в бухгалтерском учете компании, есть продуктовая линейка в ее маркетинговом отделе, отличная от списка в бухгалтерском учете (это и услуги, и пакеты услуг, и продукты). Аналогично может отличаться степень детализации продукта у коммерческого отдела и у маркетинга. Следовательно, как будут описаны справочники и какие будут приведены представителями бизнеса и бизнес-консультантами примеры, так и будет составлена модель. Это могут быть либо одна, либо две, либо три сущности в зависимости от различий в принципе выделения продуктов. Именно поэтому определения и то, как эти сущности с точки зрения бизнеса связаны, важны для того, чтобы в дальнейшем на вопросы каждого отдела в отдельности по продуктам можно было ответить с помощью созданной модели.
Оптимальный путь создания модели
Наилучшим способом быстрого и точного создания модели является проведение совместных встреч представителей бизнеса и проектной команды, в которую входят бизнес и ИТ-консультанты, а также специалисты заказчика, знающие источники данных. Такие встречи лучше всего проводить после анализа требований бизнеса и формирования соответствующей этим требованиям модели. Желательно также, чтобы каждый представитель или будущий пользователь заказчика еще на этапе формирования требований понимал табличную структуру.
В заключение отметим интересный факт – по своей величине модель хранит больше информации, чем можно удержать в памяти. Но самое главное то, что ее можно сохранить и передать к разработке ИТ-специалистам. Например, в одном проекте нашей компании на одном из крупных предприятий мы определили более 100 сущностей, 1500 атрибутов, которые связаны между собой, имеют английские и русские наименования, описания. В ходе развития модели каждая сущность могла иметь то большее, то меньшее количество атрибутов, существовать или не существовать, соединяться и быть свойством другой или не соединяться. Следовательно, держать в голове последнюю актуальную версию определений крайне сложно, зато к завершению проектирования к модели можно относиться как к единственному источнику, описывающему правильно всю деятельность компании.