#database #data-warehouse #fact #fact-table
#База данных #хранилище данных #факт #таблица фактов
Вопрос:
Я работаю над созданием новой таблицы фактов периодического снимка. Я изучаю претензии по медицинскому страхованию и сумму денег, которую люди должны страховой компании, и сумму, которую они уже заплатили. Данные в таблице будут выглядеть следующим образом.
CLAIM_ID TIME_KEY AMOUNT_OWED PAID
123 31.1.2000 1000 0
123 28.2.2000 900 100
123 31.3.2000 800 200
123 30.4.2000 0 1000
123 31.5.2000 0 1000
123 30.6.2000 0 1000
123 31.7.2000 0 1000
123 31.8.2000 0 1000
...
Как вы можете видеть, после 30.4.2000 нет смысла вставлять новые данные для claim_id 123, поскольку они больше не меняются (существует разумная степень уверенности, что этого не произойдет). Является ли хорошей идеей прекратить вставлять данные для этого утверждения или я должен делать это до конца времени :)?
В основном меня беспокоит соблюдение лучших практик при разработке таблиц хранилища данных.
Спасибо за любой ответ!
Ответ №1:
всего несколько мыслей…
- Если у вас не может быть нескольких платежей в день по иску (и, возможно, других транзакций, например, процентов, которые увеличивают сумму задолженности), то то, что вы показали, на самом деле не является моментальным фактом, это транзакционный факт. Обычный приведенный пример — это банковский счет, на котором у вас есть несколько операций ввода / вывода в день, а затем моментальный снимок позиции на конец дня (или на конец месяца). Очевидно, я не знаю вашей бизнес-модели, но кажется маловероятным, что по одной претензии будет совершаться несколько транзакций в день
- Если с момента создания последней записи факта в утверждение не было внесено никаких изменений, то, по-видимому, нет смысла создавать новую запись факта
Комментарии:
1. Я понимаю вашу точку зрения — я забыл сказать, что использую формат дд.мм.гггг :). Таким образом, это фактически ежемесячные снимки. Я отредактировал свой пост, чтобы он был более понятным
2. Хорошо, это имеет больше смысла. Я предполагаю, что amt, выплаченный в апреле, должен составлять 800, а не 1000? Ваши данные также выглядят неверно в последующие месяцы, поскольку они не платят 1000 долларов каждый месяц. Если причитающаяся сумма и выплаченная сумма равны нулю за определенный месяц, то я не вижу смысла создавать ежемесячную запись моментального снимка для этого требования
Ответ №2:
Обычно вы выбираете периодический снимок, если у вас есть
а) большое количество транзакций и
б) вам нужен эффективный доступ к данным в определенный момент времени (в вашем случае в конце месяца)
Если у вас, скажем, 50 транзакций с претензиями в месяц, и заявка активна в среднем один год, вы получите прибыль от этого дизайна, даже если вы будете удерживать неактивные заявки в течение 50 лет (чего вы, вероятно, не будете делать;)
Ваши сомнения предполагают, что у вас не так много транзакций за один жизненный цикл заявки. В этом случае вам следует рассмотреть таблицу фактов, хранящую каждую транзакцию.
У вас не будет никаких накладных расходов на неактивные утверждения, но для получения информации о моментальном снимке в определенное время вам придется прочитать всю таблицу целиком.
Напротив, периодический снимок обычно разбивается на разделы во время моментального снимка, поэтому доступ очень важен. не получайте бесплатный обед с экономией места и эффективным доступом.