【发布时间】:2015-05-19 22:20:31
【问题描述】:
我正在使用 RDBMS 并编写与 ETL 程序等效的程序,但没有使用 Informatica 等工具。
源数据来自三个不同的表,每个表都有不同的数据存储级别,所有数据都按帐户进行,但 SCD-type-2 行为使行数可变。此外,其中一个来源具有“每天”的数据,即每天一行。
需要将这些数据(最后是5个属性)合并到一个表中,以方便查询帐号和日期。有效地为给定帐户提供“今天该属性的值是多少”的查找服务。
挑战主要在于平衡记录的“颗粒”。有几个蛮力的想法。一种是分解可变颗粒行,并生成额外的行以与最低的颗粒属性保持一致。每个属性每天有效地有一行。这对我来说看起来并不干净,并且也会消耗更多的存储空间。这是一个例子 -
来源 -
table 1 (Customer Details)
Address - dt1 - dt2 - val1
Address - dt2+1 - dt3 - val2
Address - dt3+1 - infinity - val3
table 2 (Loan Details)
Maturity Date - dt4 - dt5 - val8
Maturity Date - dt5+1 - dt6 - val-x
Maturity Date - dt6+1 - dt7 - val-xx
Maturity Date - dt7+1 - infinity - val-y
table 3 (Account Balance) (one record per day)
Daily Interest Accrued - dt1 - val1
Daily Interest Accrued - dt2 - val2
Daily Interest Accrued - dt3 - val3
目标
dt1 - Address-val - Maturity Date-val - Daily Interest Accrued-val
dt2 - Address-val - Maturity Date-val - Daily Interest Accrued-val
dt3 - Address-val - Maturity Date-val - Daily Interest Accrued-val
这三个属性需要存储在一个表中...请想法..
【问题讨论】:
-
告诉我们这些表是什么,例如 ACCOUNT 和 ACCOUNT-BALANCE,而不是编造名称。它将帮助我们更好地理解问题,并且您会得到更好的答案。
-
@RonDunn - 添加了真实的表名/引用。希望它能让事情变得更清楚......谢谢你的建议。
标签: data-warehouse dimensions dimensional-modeling