Разница во времени в хранилище данных - PullRequest
0 голосов
/ 13 декабря 2011

Я использую нисходящий подход для своего хранилища данных, поэтому DW находится в 3NF, а витрины данных многомерны. Я читал, что DW должен иметь временную метку (или что-то подобное) для сохранения исторических данных.
Мои вопросы:
Нужно ли мне хранить данные из прошлого в моем DW, или этого достаточно, чтобы иметь размерно-временные измерения (технически я использую SCD типа 2 там, где это необходимо).

Если DW должен изменяться во времени, то:
когда мы используем SCD в нисходящем подходе?
я должен использовать метки времени как часть PK таблицы?

Спасибо!

1 Ответ

1 голос
/ 23 декабря 2011

Если возможно, старайтесь избегать отслеживания истории в нормализованной схеме. Тип 2 SCD намного, намного проще. Однако вам необходимо сделать свои витрины данных постоянными - историю нельзя реконструировать, поэтому витрины данных являются каноническим источником ваших исторических данных.

Несколько советов:

  • Не используйте повторно ключи ODS / DW в ваших размерах. Слияние по естественному ключу данных. Это отделяет ваши ODS от ваших звездных схем и позволяет вам перестраивать ваши ODS без влияния на звездные схемы.

  • Отслеживание истории и восстановление исторической позиции по сложным нормализованным данным - действительно сложная задача. Не беспокойся; придерживайтесь «текущего состояния» в ваших ODS.

  • Создание универсального обработчика измерения типа 2 (вы можете использовать данные из системного словаря данных). Это позволяет вам представить таблицу предварительной загрузки и использовать обработчик для объединения данных с измерением.

    Выполнение этого отделяет ETL от отслеживания истории и позволяет тестировать их изолированно. Вы можете проверить ETL, проверив правильность таблицы предварительной загрузки - вам не нужно тестировать до / после сценариев. Вы можете протестировать отслеживание истории с помощью набора модульных тестов для обработчика измерений.

    Этот тип архитектуры значительно упрощает тестирование.

  • Одно из преимуществ постоянных витрин данных, а не постоянных ОРВ, состоит в том, что вы можете легко выполнять крупные операции на ОРВ. Если ODS не должен отслеживать историю, его можно при необходимости удалить и заново создать, и вы можете легко изменить модель данных без необходимости переноса исторических данных.

...