Лекция 6
Жизненный цикл ХД – слайд со схемой в презентации.
Характерная черта – нет утилизации, вывода из эксплуатации.
Инициация проекта
Сбор бизнес-требований (business requirements definition). Тут у нас консалтинг, приоритезация требований и вся фигня.
Результатом этого сбора является некоторая таблица, в которой перечислены измерения и фактические области данных. Смысл в том, что по строкам пишутся факты, по столбцам – измерения, а на их пересечении ставится отметка, если факт относится к измерению.
Проектирование и разработка. Архитектура:
Техническая – программно-аппаратная часть внедрения.
Безопасность, архивирование, прочие нетехнические требования.
Развертывание, интеграция в предприятие.
Ну в общем это все не совсем так, правильно – на картинке со слайдов.
Успех создания ХД во многом зависит от качества ETL, которое очень сильно зависит от качества исходных данных. В общем. ETL – это очень важно. =)
Профилирование данных – это выяснение возможных значений, это делается перед созданием ETL.
Этапы проектирование DWH:
Определение фактов – это есть результат бизнес-анализа.
Добавление временнЫх ключей. Каждый факт должен иметь привязанность к времени. Можно добавить время в бизнес-ключ каждого факта и измерения, но это фигово, потому что ключ получится составным. Поэтому связку – бизнес-ключ, время – делают альтернативным ключом и вводят суррогатный ключ.
Добавление производных данных. Это то, что нету в оперативной БД, но обычно нужно при анализе.
Определение гранулярности данных – в смысле насколько мы можем сделать drillиться в эти данные вглубь.
Объединение измерений. Некоторые измерения, если вариантов атрибутов у них немного (до 5-и), можно объединить в одну табличку-измерение.
Создание массивов. Если нам не нужны точные, гранулированные данные, можно объединить их в группы по некоторому признаку. Если попадает у факта значение в диапазон, то он относится к группе. Пример – уровень дохода.
Агрегирование и разделение данных. Агрегаты могут храниться и в одной таблице с детальными данными, но чаще – в отдельной таблице.
Зачем делать время отдельным измерением – чтобы хранить доп. атрибуты, связанные с конретными днями.
Иерархии:
По отдельной таблице для каждого уровня иерархии
Parent-child (в одной таблице)
Отделение связи между parent и child ом в отдельную таблицу, обеспечивающую связь. Это круче всего, можно поддержать хранение истории изменения иерархии без изменения самого товара. Плюс возможность задать альтернативные иерархии – более одного родителя можно задать. Ну и еще много всякого стафа можно сделать. Получается 2 таблицы – смысловая и вспомогательная, обеспечивающая иерархию.
Что должно быть атрибутом, что должно быть отдельным измерением?
Есть несколько наборов атрибутов. Если между атрибутами отношение «многие-ко-многим», то они должны быть в разных измерениях. Если связь между атрибутами «один-ко-многим», то это одно измерение.
PowerDesigner – аналог ERWin’а, более мощное средство.
