Исторические наборы данных в первоначальной сборке
Проблема, с которой я сейчас сталкиваюсь, я считаю логичной и, возможно, ограничением SSIS.
Мои данные имеют набор учетных записей, в любой момент эта учетная запись может принадлежать организации. Эта комбинация контролирует мое историческое измерение "Аккаунт"
Например
╔════════════╦═══════════════╦════════════════╦════════════╦════════════╦═════════╗
║ AccountKey ║ AccountNumber ║ OrganisationSK ║ VaildFrom ║ VaildTo ║ Current ║
╠════════════╬═══════════════╬════════════════╬════════════╬════════════╬═════════╣
║ 1 ║ 2000 ║ 10 ║ 2000-01-01 ║ 2006-02-10 ║ N ║
╠════════════╬═══════════════╬════════════════╬════════════╬════════════╬═════════╣
║ 2 ║ 2000 ║ 11 ║ 2006-02-10 ║ 2010-06-01 ║ N ║
╠════════════╬═══════════════╬════════════════╬════════════╬════════════╬═════════╣
║ 3 ║ 2000 ║ 10 ║ 2010-06-01 ║ NULL ║ Y ║
╚════════════╩═══════════════╩════════════════╩════════════╩════════════╩═════════╝
Делать это достаточно легко, так как я просто позволю SCD делать свое дело, это начальная нагрузка, с которой я борюсь.
Используя SSIS в качестве инструмента ETL, могу ли я использовать внутреннее соединение, давая мне три записи, сортировать их по "ValidFrom", а затем передавать все три в SCD, и SSIS все выяснит?
В этих обстоятельствах, что люди делали в прошлом?
1 ответ
Вы можете использовать внутреннее соединение в SSIS, используя преобразование слияния. Ссылка ниже:
Одним из требований для объединения слиянием является сортировка как минимум одного столбца (столбцов), к которому вы присоединяетесь, из обоих источников данных, чтобы вы могли отсортировать данные по требуемому столбцу "ValidFrom".
Затем вы можете подключить выход Merge Join к преобразованию SCD.
Обратите внимание, что преобразование Merge Join является полублокирующим преобразованием, поэтому производительность ETL может быть затруднена, если вы работаете с большим объемом данных.