Ключевые вопросы, которые необходимо учитывать при построении хранилища данных
Dr. Mark Whitehorn, Co-Founder, PenguinSoft Consulting Ltd.
11 октября 2011
Какие технические и организационные вопросы мы должны рассмотреть прежде чем строить корпоративное хранилище данных?
Основными вопросами (они на самом деле не технические и не организационные, но тоже очень важные) являются (но не ограничиваются приведенным списком):
- Какого рода анализ нужен бизнес-пользователям?
- Выполняется ли сейчас сбор необходимых данных для осуществления данного анализа?
- Где размещаются эти данные?
- Каково их качество (чистота)?
- Хранятся ли эти данные в нескольких источниках?
- Какая структура лучше всего подойдет для хранилища данных (например, многомерная или реляционная)?
Техническими же вопросами являются (но не ограничиваются приведенным списком):
- Какой объем данных будет передаваться по корпоративной сети и сможет ли она справиться с таким трафиком?
- Какого объема будет необходима система хранения данных?
- Насколько производительна должна быть дисковая подсистема?
- Собираетесь ли вы использовать твердотельные накопители (SSD) для хранения «горячих», часто используемых данных?
- Какие системы управления базами данных существуют в компании и какой имеется опыт их применения?
Организационные вопросы включают (но приведенным списком не ограничиваются):
- Как отличаются между собой определения основных бизнес-сущностей внутри имеющихся OLTP-систем? Как правило, различные департаменты и подразделения используют свои собственные определения таких терминов, как «клиент», «продажа» и «счет» и вкладывают в них свой, отличный от определений других подразделений, смысл. Таким образом, необходимо будет стандартизировать определения и добавлять для них префиксы, такие как «все продажи», «недавние продажи», «коммерческие продажи» и так далее. Но нужно иметь в виду, что бизнес-менеджеры обычно не любят изменений в существующей семантике.
- Что представляет из себя процесс сбора бизнес-требований? Часто бизнес-заказчики не хотят тратить время на определение их же потребностей в бизнес-анализе, которые будут удовлетворены хранилищем данных. Вместо этого, они ожидают от разработчика, что его бизнес-консультанты используя свои телепатические способности, определят требования к хранилищу данных и их потребности в анализе.
Последний пункт звучит как циничное описание глупости других людей, которое я использую, чтобы подчеркнуть свой острый ум. Но на самом деле это не так. В прошлом я делал то же самое при определении требований к специфичным для меня работам. Например, я мог сказать строителю: «Послушайте, я просто хочу сарай, хорошо? Строительство сарая не может быть слишком сложным! Наверняка в прошлом Вы уже строили десятки сараев». Строитель строит, и в итоге я говорю: «Как вы додумались поставить такую маленькую дверь в сарай ?!?!»
Опыт сбора пользовательских требований (я надеюсь) позволяет мне быть гораздо более благожелательным к решениям тех же строителей. Сейчас я стараюсь уделять больше времени для того, чтобы определить, что именно я хочу. Но я думаю, что этот аспект человеческого поведения является совершенно нормальным: люди (включая и меня) не хотят быть привязаны, они просто хотят, чтобы кто-то что-то создал, волшебным образом соответствующее их потребностям.
В целом, приведенный выше список только очерчивает круг потенциальных вопросов, что конечно, создает впечатление о проекте построения хранилища данных как об очень сложном проекте. Задача действительно сложная. Участвуйте в подобных проектах. Потому что когда хранилище данных работает должным образом, оно очень полезно, приносит огромное удовольствие и радость. Мой опыт показывает, что технические вопросы почти всегда можно решить, организационные же часто приводят проекты построения хранилища данных к провалу.
Я оставляю Вас с еще одним вопросом (на мой взгляд, одним из наиболее важных): политика. Под этим я понимаю ситуацию, когда люди лгут о своих действиях и/или мотивации.
Например, глава финансового департамента может видеть в хранилище данных угрозу. Без внедренного в компании хранилища данных он контролирует поток информации из финансового департамента, а контроль есть власть. Хранилище данных ставит под угрозу существование основы этой власти. Такой человек вряд ли встанет и скажет это на заседании Совета директоров. Вместо этого он может сказать: «Внедрять хранилище данных слишком дорого». Хуже того, он может сказать: «Хранилище данных? Это отличная идея, я полностью ее поддерживаю», - а затем провести шесть месяцев, тихо пытаться остановить проект.
Остерегайтесь политики в проекте построения хранилища данных. В конце концов, хранилище данных является системой, предназначенной для обмена информацией в рамках всей организации. Если оно это делает хорошо, то неизбежно наступает кому-то на пальцы.