Datawarehouse: многозначные, медленно меняющиеся размеры
В настоящее время я создаю хранилище данных для (кофе) агрегатора в Латинской Америке. У них есть две основные бизнес-операции:
- покупать кофе у фермеров и продавать его на международном рынке и
- предоставление микрокредитных займов этим фермерам для увеличения их урожайности.
Мой план состоит в том, чтобы создать хранилище данных поверх их операционных систем / баз данных.
Первый бизнес-процесс, который я буду интегрировать, - это кредитная операция, после чего я добавлю покупку кофе отдельными фермерами.
Для кредитной операции я представляю единственную таблицу фактов, которая состоит из суммы кредита, с измерениями для фермера, кредитного специалиста и т. Д. Но прежде чем перейти к таблице фактов, касающихся кредитов, я в настоящее время работаю над созданием измерения фермера.
У меня есть милое маленькое фермерское измерение с некоторыми ключами, географическим положением, полом, образованием и т. Д. И т. Д.
Я также хотел бы включить "экономическое производство" фермера. Это информация, которая фиксируется в процессе подачи заявки на кредит, и в основном говорит о том, какой кофе они производят и на каком участке земли они это производят. Соотношение между фермером и экономическим производством, таким образом, составляет 1:n
Кроме того, это меняется из года в год и, очевидно, известно только для фермеров, которые подали заявку на кредит.
Цель этой информации состоит в том, чтобы иметь возможность (даже до того, как будет создана таблица кредитных фактов) создать некоторые базовые цифры / представления о фермерах, их пространственном распределении и их экономической деятельности / результатах.
Таким образом, я думаю, что фермерское измерение связано с "производственным измерением". Это производственное измерение будет (1) изменяться во времени и (2) многозначным. Разница во времени я планирую реализовать в соответствии с типом 2 (столбцы valid_from, valid_to и current_valid).
Поскольку я довольно новичок во всей сцене хранилища данных, я много читал об общих методах и принципах, в основном из превосходной (!) Книги Кимбалла. Тем не менее, я не сталкивался с чем-либо, что описывает такую связь между измерениями и измерениями.
Поэтому мои вопросы:
- это распространенный и считается хорошим подходом?
- где я могу найти информацию о лучших практиках по этому вопросу
РЕДАКТИРОВАТЬ: Вторая возможность, о которой я думаю, будет состоять в том, чтобы создать какую-то таблицу фактов без учета фактов, которая имеет дело с "взаимодействием с клиентами" (например, процесс подачи заявки на кредит, в котором собирается такая информация от фермеров). Эта таблица фактов будет затем иметь FK для фермера и FK для производственного измерения, а также FK для таблицы измерения времени. Поскольку с ним не связано никаких фактов, это только сформировало бы какую-то таблицу ссылок 1:n. Единственное отличие от первого метода состоит в том, что измерение времени теперь находится в отдельной таблице, в отличие от включения в производственную таблицу, по моему мнению.
РЕДАКТИРОВАТЬ 2: Или я должен, возможно, создать таблицу фактов производства, хотя она не совпадает с бизнес-процессом агрегатора. В этом случае, вероятно, площадь поверхности для производства определенной культуры станет мерой, и потенциально типы / сорта культур и т. Д. Перейдут в отдельное измерение.