Мы работаем над хранилищем данных для банка и в значительной степени следуем стандартной модели Kimball промежуточных таблиц, звездной схемы и ETL, чтобы вытащить данные через этот процесс.
Kimball рассказывает об использовании промежуточной области для импорта, очистки, обработки и всего, пока вы не будете готовы помещать данные в схему звездочек. На практике это обычно означает загрузку данных из источников в набор таблиц с небольшой или никакой модификацией, за которыми следует выбор данных через промежуточные таблицы, пока он не будет готов перейти в схему звездочек. Это большая работа для одного объекта, здесь нет единой ответственности.
Предыдущие системы, над которыми я работал, сделали различие между различными наборами таблиц, в том числе:
- Загрузить таблицы: исходные системные данные, немодифицированные
- Статические таблицы: промежуточная обработка, типизация и очистка
- Таблицы хранилища
Вы можете вставлять их в отдельные схемы, а затем применять разные политики для архивации/резервного копирования/безопасности и т.д. Один из других парней работал на складе, где есть StagingInput и StagingOutput, аналогичная история. Команда в целом обладает большим опытом, как хранилищем данных, так и другим.
Однако, несмотря на все это, просматривая Кимбалл и Интернет, в письменной форме ничего не говорится о предоставлении какой-либо структуры промежуточной базе данных. Можно было бы простить, полагая, что г-н Кимбалл хотел бы, чтобы мы все работали с постановкой этого большого глубокого темного неструктурированного пула данных.
Хотя, конечно, довольно очевидно, как это сделать, если мы хотим добавить еще какую-то структуру в промежуточную область, кажется странным, что в ней ничего не написано.
Итак, что делают все остальные? Является ли постановка этой большой неструктурированной беспорядком или у людей есть интересные проекты?