СПАСИБО: Оба ответа очень полезны, но я мог выбрать только один. Я очень ценю совет!
наше хранилище данных будет использоваться больше для отчетов о рабочих процессах, чем традиционные аналитические отчеты. Наши пользователи заботятся о «текущей картине» гораздо больше, чем об истории. (хотя история тоже имеет значение.) Мы являемся государственным учреждением, у которого нет затрат или соответствующих расчетов. В основном просто количество людей в данных местах и с соответствующей историей.
Мы используем Oracle, и я обнаружил явное преимущество в использовании звездообразного соединения, когда это возможно, и хотел бы перестроить все так, чтобы он был максимально похож на звездную схему, насколько это целесообразно для нашего бизнеса. Скорость в этом DW жизненно важна, и ряд тестов уже подтвердил подход звездной схемы ко мне.
Наша таблица "person" является ключевой - она содержит более 4 миллионов записей и будет наиболее часто используемым источником в запросах. Ее можно увидеть в центре звезды с несколькими измерениями (например, с возрастом). , пол, принадлежность, местоположение и т. д.). Это очень длинная таблица, особенно когда я присоединяю ее к адресу и контактной информации.
Однако это больше похоже на таблицу измерений, когда мы начинаем смотреть на историю. Например, есть две разные таблицы истории, у которых есть личный ключ, указывающий на личную таблицу. У одной записи более 20 миллионов, а у другой почти 50 миллионов, и она растет ежедневно.
Является ли эта таблица таблицей фактов или таблицей измерений? Можно ли работать как оба? Если так, это будет большой проблемой производительности? Распространено ли запрашивать больше из измерения, чем факт? Что произойдет, если РАЗНАЯ таблица фактов, использующая таблицу person в качестве измерения, на самом деле составляет всего 60 000 записей (намного меньше).
Я думаю, что моя проблема в том, что наши данные и их использование не соответствуют широко используемым примерам звездных схем.
РАЗЪЯСНЕНИЕ: Ниже были добавлены некоторые хорошие мысли, но, возможно, я упустил слишком много, чтобы действительно хорошо объяснить. Вот еще немного информации:
Мы обрабатываем базу данных избирателей. У нас нет никаких мер, кроме подсчета избирателей по различным группам: подсчет избирателей по партиям, по возрасту, по месту нахождения; подсчет избирателей по типам и выборам, по статусу и выборам голосования и т. д. У нас есть журнал «истории голосования», а также журнал аудита активности (смена адреса, партии и т. д.). У нас есть информация о том, какие избиратели являются избирательными работниками, и вся эта связанная информация. Я полагаю, что доберусь до периферийных вещей позже.
На данный момент я сосредотачиваюсь на двух основных «бизнес-процессах»: регистрация избирателей (то есть избиратель) и явка избирателей. Во первых, избиратель это факт. Во втором случае избиратель - это измерение, наряду с партией, выборами и типом голосования. (и в случае, если кто-то обеспокоен - нет, мы не знаем, КАК люди голосуют. Просто, что они делают. LOL)
Надеюсь, это немного прояснит ситуацию.