Определение гранулярности данных таблиц фактов

Определение гранулярности данных таблиц фактов

Важным шагом при проектировании таблиц фактов является определение гранулярности данных - уровня детализации данных на котором они будут храниться в таблице. Гранулярность данных таблиц фактов зависит от:

  1. состава измерений, связанных с таблицей фактов;
  2. состава иерархий измерений, по которым планируется осуществлять анализ данных.

Состав измерений определяется на этапе формирования концептуальной модели данных и уточняется на этапе формирования логической модели. Определить состав измерений таблицы фактов, как правило, достаточно просто, т.к. таблица фактов не создается сама для себя, а создается для использования хранящихся в них данных в процессе принятия определенных решений. В связи с этим, состав аналитических измерений таблиц фактов определяется потребностями бизнеса.

Приведем простой пример. В корпоративном хранилище данных компании, осуществляющей розничную торговлю, с таблицей фактов продаж, как правило, связаны следующие основные измерения: “Время”, “Товар”, “Точки продаж”. Но если в компании действует (или планируется к внедрению) система накопительных карт для покупателей, позволяющих предоставлять скидку в зависимости от общей накопленной суммы покупок, то в таблицу фактов продаж добавляется измерение “Клиент” (хотя измерение “Клиент” почти всегда также является основным).

Чуть сложнее бывает определить до какого уровня иерархии измерений будут храниться данные в таблице фактов. Это определяется текущими и будущими потребностями в анализе. Если вернуться к приведенному выше примеру, то хранить данные о продажах в разбивке по часам или дням - вопрос к бизнес-заказчику. Если анализа данных по дням будет достаточно - то дни, если нет - то часы.

Решение вопроса гранулярности данных таблицы фактов является зачастую компромиссным с решением вопроса размера корпоративного хранилища данных. Чем более детальные данные мы планируем использовать при анализе, тем больше места они занимают и требуют большего числа вычислительных ресурсов для их обработки. Но при нынешней относительно небольшой стоимости вычислительных ресурсов и систем хранения следует все же придерживаться правила загрузки и хранения самых детальных данных, получаемых из систем-источников. Это позволит избежать в будущем кардинального изменения модели данных хранилища (как следствие, структуры базы данных) и ETL-процессов в случае возникновения необходимости анализа детальных данных.

Источники: