关于向数据仓库中导入数据的两个问题

shizi_mhy 2009-11-17 03:31:39

一,
维度表都有自己的内部ID做主键,
然后将其拉到事实表中做外键
(事实表中的主键是由多个维度表拉如的外键共同做联合主键)

例如要给数据仓库到底事实表导入100条记录,这个事实表有多个维度表,其中一个维度表是:D_国家
在ETL导入数据时,是否要先检测本次导入的100条记录中所有的国家名称在D_国家中找到对应的ID
如果没有,则,在D_国家中插入新的国家记录
然后再在F_XX表中导入要导入的100条记录

-----上面的说法对吗?-----

二,历史数据的更新

事实表中保存的是所有的合同明细数据,一个合同就是一条记录
通过不同的维度表,对合同的数据进行分析

上面这种对数据仓库的理解对不对,
如果对,则在如下情况发生时应该如何处理,
昨天从OLTP把数据导入到数据仓库中
今天将一个前天的合同数据进行了修改,那么这个被修改了的数据,应该如何更新到数据仓库中
要全部先删后插吗,如果不是,难道要OLTP系统记录每条记录最后被修改的时间吗?这个恐怕也不现实啊
还是要在事实表中记录OLTP系统中的主键,更新的时候做UPATE
???
...全文
214 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
warcraft110 2009-12-13
  • 打赏
  • 举报
回复
也是初学者, 上面说的对我挺有帮助的。
dpsong 2009-12-04
  • 打赏
  • 举报
回复
合同日期
出库日期
发票日期
...

只是这些日期,我觉得一个就够了。
shizi_mhy 2009-12-01
  • 打赏
  • 举报
回复
谢谢dpsong兄
:P
一个数据仓库中会有好多中日期的维度
合同日期
出库日期
发票日期等等
这些日期是应该建立一个日期维度表
还是应该分别建立多个不通的日期维度表??
(我指的数据库中的维度表
而不是说维度
维度当然是多个)
dpsong 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shizi_mhy 的回复:]
谢谢dpsong兄
:P

第二个问题
按我目前的理解
对历史数据的分析应该由时间的维度表来进行分析

按您提供的方法在事实表中是可以保留历史的
但是对历史数据的分析就变成基于事实表来进行分析了

能否举例更详细的说明一下吗
谢谢
:P
[/Quote]

做多维分析总是离不开事实表的。只是粒度不同而已。
粒度越小,数据越详细,当然性能会急剧降低。这与需求有关系了。
但是你想基于时间维度来做多维分析,在事实表中应该有与时间维度对应的KEY。

例如,
时间维度表(REF_DATE)定义如下,
(DATA_KEY(Primary key),FULL_DATE,YEAR,QUARTER,MONTH,WEEK, WEEK_IN_MONTH,WEEK_IN_YEAR,DAY ...)

在事实表中也应该存在DATA_KEY。
(上面提到的FROM_DATE,TO_DATE只是用来保存历史数据,这与多维分析是两码事)

--不知道对你是否有帮助。
shizi_mhy 2009-11-20
  • 打赏
  • 举报
回复
谢谢dpsong兄
:P

第二个问题
按我目前的理解
对历史数据的分析应该由时间的维度表来进行分析

按您提供的方法在事实表中是可以保留历史的
但是对历史数据的分析就变成基于事实表来进行分析了

能否举例更详细的说明一下吗
谢谢
:P
hhxn1977 2009-11-20
  • 打赏
  • 举报
回复
才来,看看
dpsong 2009-11-18
  • 打赏
  • 举报
回复
本人也是初学者,给出自己的观点。
一,
维度表应该在事实表更新前校验,确保事实表的所有外键ID都能在维度表里面找到。

二,
数据仓库的类型还是有多种的,得看你的是否对历史数据敏感。如果比较敏感的当然得用时间段来标识废弃历史数据(
例如:用FROM_DATE和TO_DATE两个字段来标识
原来数据:
ID CONTRACT_ID FROM_DATE TO_DATE
1 000001 Nov/11/09 Dec/31/9999

修改后
ID CONTRACT_ID FROM_DATE TO_DATE
1 000001 Nov/16/09 Nov/17/09
2 000001 Nov/16/09 Dec/31/9999

把TO_DATE=Dec/31/9999 作为检索条件,原来的那一条就过滤掉了。

7,388

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据仓库
社区管理员
  • 数据仓库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧