Единственный способ избежать «огромного количества неизмененных данных» - это хранить только «старые» данные при изменении «новых» данных. Это усложнит процесс ETL, поскольку он должен эффективно извлекать данные, прежде чем они будут добавлены / обновлены процессом ETL.
Обычно этот процесс выглядит следующим образом: «новые» данные от вашего поставщика услуг
Для каждого уникального идентификатора в «новых» данных скопируйте «старые» данные в таблицу истории вместе с меткой времени Вставьте «новые» 'данные в основную таблицу данных
Это приведет к тому, что таблица истории будет содержать «старые» данные для всего, что было изменено. Однако это не поможет определить «новые» данные. Для этого вам нужно добавить метку времени в основную таблицу, чтобы определить, когда была добавлена строка.
Вы должны начать с размышлений о том, какой результат вы хотите получить от всего этого процесса. Например:
- Подумайте, что вы хотели бы видеть для данных, которые добавлены (новые значения)
- Подумайте о том, что вы хотели бы видеть для данных что изменено (старые значения + новые значения)