@Argnist. относительно вопроса во втором комментарии ... Возможно, не имеет смысла иметь тип 2 для всех dim, но из вашего примера выглядело, как будто ваши документы могут «измениться», поэтому вы захотите сохранить изменения в dim типа 2 (возможно, номера версий документа?), аналогично для изменений в вашей персональной информации. Очевидно, что если мое понимание было неверным, то создайте отдельные dims (или конкретные столбцы для dims type 1)

я есть несколько объектов в моем хранилище данных:

Человек - с атрибутами personId, dateFrom, dateTo и другими, которые могут быть изменены, например, фамилия, дата рождения и т. д. - медленно меняющееся измерение

Документ - идентификатор документа, номер, тип

Адрес - адрес, город, улица, дом, квартира

Отношения (Персона и Документ) - «Один ко многим», а (Персона и Адрес) - «Многие ко многим».

Моя цель - создать таблицу фактов истории, которая может ответить на следующие вопросы:

Какие лица с какими документами проживали по указанному адресу на определенную дату?

2. Какая история резидентов имеет определенный адрес в определенный интервал времени?

Это не только для того, что DW разработан, но я думаю, что это самая сложная вещь в дизайне DW.

Например, мисс Браун с personId = 1, документы с documentId = 1 и documentId = 2 жили по адресу с addressId = 1 с 01.01.2005 по 02.02.2010, а затем перемещались в addressId = 2, где был проживает с 03/03/2010 по настоящее время (NULL?). Но она поменяла фамилию на миссис Грин с 04/05/2006 и ее первый документ с documentId = 1 на documentId = 3 с 06/07/2007. Мистер Блэк с personId = 2, documentId = 4 проживал по адресу addressId = 1 с 02/03/2010 по настоящее время.

Ожидаемый результат по нашему запросу для вопроса 2, где addressId = 1 и интервал времени с 01.01.2000 г. по настоящее время, должен быть таким:

Ряды:

last_name="Brown", documentId=1, dateFrom=01/01/2005, dateTo=04/04/2006

last_name="Brown", documentId=2, dateFrom=01/01/2005, dateTo=04/04/2006

last_name="Green", documentId=1, dateFrom=04/05/2006, dateTo=06/06/2007

last_name="Green", documentId=2, dateFrom=04/05/2006, dateTo=06/06/2007

last_name="Green", documentId=2, dateFrom=06/07/2007, dateTo=02/01/2010

last_name="Green", documentId=3, dateFrom=06/07/2007, dateTo=02/01/2010

last_name="Black", documentId=4, dateFrom=02/03/2010, dateTo=NULL

У меня была идея создать таблицу фактов с составным ключом (personId, documentId, addressId, dateFrom), но я понятия не имею, как загрузить эту таблицу и затем получить ожидаемый результат с этой структурой.

Буду рад любой помощи!

Ответы на вопрос(1)

Ваш ответ на вопрос