Я изо всех сил пытаюсь выяснить, как преобразовать структуру таблицы «один ко многим» из транзакционной базы данных в измерение «один к одному» для хранилища данных.
В базе данных транзакций структура данных имеет вид:
Корневая запись (Parent_ID)
Таблица поиска «Множество идентификаторов родителей» (Patent_ID, Child_ID)
Справочная таблица (Child_ID, Name)
Присоединение к моей справочной таблице возвращает набор данных, который выглядит следующим образом:
╔═════════════╦═══════════╦══════════╦════════════╗
║ Root_ID ║ Root_Code ║ Child_ID ║ Child_Name ║
╠═════════════╬═══════════╬══════════╬════════════╣
║ 1 ║ 1000 ║ 22 ║ Name 1 ║
║ 1 ║ 1000 ║ 23 ║ Name 2 ║
║ 1 ║ 1000 ║ 24 ║ Name 3 ║
║ 1 ║ 1000 ║ 25 ║ Name 4 ║
║ 2 ║ 1150 ║ 67 ║ Name 5 ║
║ 2 ║ 1150 ║ 68 ║ Name 6 ║
║ 2 ║ 1150 ║ 69 ║ Name 7 ║
║ 3 ║ 2019 ║ 11 ║ Name 8 ║
║ 3 ║ 2019 ║ 12 ║ Name 9 ║
║ 5 ║ 2010 ║ 91 ║ Name 10 ║
║ 5 ║ 2010 ║ 92 ║ Name 11 ║
║ 5 ║ 2010 ║ 93 ║ Name 12 ║
║ 5 ║ 2010 ║ 94 ║ Name 13 ║
║ 5 ║ 2010 ║ 95 ║ Name 14 ║
║ 5 ║ 2010 ║ 96 ║ Name 15 ║
║ 6 ║ 5010 ║ 33 ║ Name 16 ║
╚═════════════╩═══════════╩══════════╩════════════╝
В моем измерении я хочу знать, что Root_ID (1) имеет значения Child_ID (22,23,24,25) и может ссылаться на это, используя сгенерированный ключ в измерении.
Имейте в виду, я никогда не смогу предсказать, сколько будет записей о детях,
поэтому создание X колонок в моем измерении не вариант.
Я уверен, что разумное хранилище данных, чем я, знает, как это обычно обрабатывается.
Для иллюстрации желаемого результата:
Запись фактов (Dimension_Root_Key = 1)
Размер (ключ 1, имя 1, имя 2, имя 3, имя 4)