本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。
15 个评论
没有太明白你的意思?
1. Surrogate Key 用自增长 IDENTITY(1,1) 就可以了,不会出现重复 KEY。事实表关联的是 Surrogate Key,每次往事实表插入的时候一定是最新的维度。
2. Sample 里面 Surrogate Key + Business Key + Validate From - Validate To (或者 IsCurrent ) 就已经可以帮助事实表插入的时候确定是哪一个最新维度了。
所以没有太明白你具体要表达的意思?
1. Surrogate Key 用自增长 IDENTITY(1,1) 就可以了,不会出现重复 KEY。事实表关联的是 Surrogate Key,每次往事实表插入的时候一定是最新的维度。
2. Sample 里面 Surrogate Key + Business Key + Validate From - Validate To (或者 IsCurrent ) 就已经可以帮助事实表插入的时候确定是哪一个最新维度了。
所以没有太明白你具体要表达的意思?
此外,还有一种思路,前几天Vinceng曾经提过的,就是没有Validate To,当时我也得觉这种办法不好,因为访问时不方便。不过看到有人用infobright这种东西以后,忽然也理解了,有的数据库不让Update,或者Update很慢,又或者ETL rollback的时候不方便,而查询性能还算优越,这种情况不加Validate To也是可以理解的选择。
除此三种属性变化外,还有新增属性列的情况。
同时可以再写一个对维表数据初始化方案的文章 :)
同时可以再写一个对维表数据初始化方案的文章 :)
VALIDATE TO NULL 和 9999-12-31 都可以,两种方式我都用过,有的时候不怕偷懒的话除了 VALIDATION_TO 和 VALIDATEION_FROM 之外会把 IS_CURRENT 加上去,更方便于 WHERE 条件过滤,个人习惯。
请问这个数据在SSAS里怎么用,能共享个案例吗?
事实表的外键关联到维度表主键,历史的事实也是关联到历史的维度,在 SSAS 里面正常使用就行了,需要过滤当前就用 MDX Filter 过滤 IsCurrent = 1 的就可以了。
请问如何防止多重导入。比如第一次导入数据成功了。第二次误操作,再次启动了ETL.那么为了不让第二次相同数据导入,是否做全字段check。
有大概以下几种方式:
1. 日志记录,比如在今天凌晨执行成功之后,会在日志表中记录今天 ETL 包的执行状态,如果执行成功,则下一次执行的时候直接跳过数据加载部分,即不再之星。如果执行失败,可能有部分数据已经进入,则需要在数据加载的时候要么全部更新,要么删除再重新加载,这个是要根据具体的架构设计来决定的。
2. 不考虑日志情况,重新执行的时候要么全部更新,要么删除部分再重新加载,这个也是需要根据具体的设计来考虑的。
1. 日志记录,比如在今天凌晨执行成功之后,会在日志表中记录今天 ETL 包的执行状态,如果执行成功,则下一次执行的时候直接跳过数据加载部分,即不再之星。如果执行失败,可能有部分数据已经进入,则需要在数据加载的时候要么全部更新,要么删除再重新加载,这个是要根据具体的架构设计来决定的。
2. 不考虑日志情况,重新执行的时候要么全部更新,要么删除部分再重新加载,这个也是需要根据具体的设计来考虑的。
请教个问题,在给维度表添加代理键的时候用自增长列,如果我处理维度表数据是每次先清空再重新加载,源数据记录有变化的话,这个代理键会不会变的?