我正在建立一个维度数据仓库,并学习如何从我的仓库中的源系统中为各种业务流程建模。
我目前正在将数据仓库中源系统中的“出价”(工作出价)建模为事实表,其中包含以下信息:
问题在于出价(或我尝试建模的大多数其他过程)可能会经历各种状态,并且在源系统中的任何给定时刻都会更新其信息。根据Ralph
Kimball的说法,只有在事实表被视为“累积快照”的情况下,才应更新事实表,而且我敢肯定,以下定义将并非所有这些过程都被视为“累积快照”。
根据Kimball组的建议,应如何在数据仓库中对这些类型的过程进行建模?此外,哪种类型的事实表适用于出价(考虑到我上面概述的事实)?
来自http://www.kimballgroup.com/2008/11/fact-
tables/的
证书
交易量对应于在单个瞬间进行的测量。杂货店的哔哔声是一笔交易。测得的事实仅对那个瞬间和那个事件有效。下一次测量事件可能会在毫秒后或下个月发生,甚至永远不会发生。因此,事务粒度事实表稀疏或密集。我们不能保证所有可能的外键都会被表示。交易粒度事实表可能非常庞大,最大的事实表包含数十亿条记录。
定期快照粒度对应于预定义的时间跨度,通常是财务报告期。图1说明了每月帐户定期快照。测得的事实总结了在该时间段内或该时间段结束时的活动。定期快照粒度可以强有力地保证所有报告实体(例如图1中的银行帐户)将出现在每个快照中,即使没有活动也是如此。定期快照是可以预见的,并且应用程序可以依赖始终存在的密钥组合。定期快照事实表也可能很大。一家拥有2000万个帐户且具有10年历史的银行,在月度帐户定期快照中将有24亿条记录!
累积快照事实表对应于具有明确定义的开始和结束的可预测过程。订单处理,索赔处理,服务电话解决和大学录取是典型的候选人。例如,用于订单处理的累积快照的粒度通常是订单上的行项目。请注意,在图1中,有多个日期代表订单经历的标准情况。随着过程从头到尾逐步进行,将重新访问和覆盖累积的快照记录。由于这种覆盖策略,累积快照事实表通常比其他两种类型小得多。
就像其中提到的一条评论一样,“更改数据捕获”是一个相当通用的术语,表示“我如何处理随着时间的推移对数据实体所做的更改”,并且整本书都在上面(以及大量的文章和文章)。
不管似乎有明确的黑白或总是这样做的陈述,此答案的真实答案通常是“取决于”-在您的情况下,取决于您需要的谷物您的特定事实表。
如果你的数据在不可预知的方式改变或很多时候,它 可 成为具有挑战性实施的Kimball的版本 积累的快照
(图片多少个“里程碑”日期栏等,你可能最终需要)。
因此,如果您愿意,可以决定将事实表设为 事务性事实表, 而不是快照,事实键应为(出价键,时间戳),然后在 应用程序
层(无论是视图,mview,实际的应用程序或其他应用程序),您可以确保给定的查询仅获取每个Bid的最新 版本 (请注意,这可以视为一种虚拟的
累积快照 )。如果您发现不需要以前的版本(每个出价的 历史记录 ),则可以使用一个例程来修剪它们(例如,将它们删除或移动到其他位置)。
或者,您只能在事实(Bid)处于最终状态时才添加事实(Bid),但是在新的(可更新的)出价一段时间内未将其添加到事实表中的情况下,您可能会遇到很大的滞后。
无论哪种方式,都有几种可靠的可靠技术可以解决此问题-您只需要清楚地确定业务需求并进行相应的设计即可。
祝你好运!
您好,我有两个表,其中表1是针对产品的,表2是我想使用this SQL更新的类别,但不断出现语法错误 1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,在第4行的“WHERE EXISTS(SELECTproduct.local_delivery,product.none”附近使用正确的语法
我在excel电子表格中有一个drools决策表,其中有两条规则。(此示例已大大简化,我正在使用的示例有更多规则。) 我的目标是让规则自上而下地触发,随后的规则可能取决于早期规则对事实/对象所做的更改。 这个问题有解决办法吗?任何帮助都将不胜感激,谢谢!
本文向大家介绍在SAP系统中更新新列的默认值,包括了在SAP系统中更新新列的默认值的使用技巧和注意事项,需要的朋友参考一下 将默认值更新为一列不是一个好习惯,因为它将在系统中直接不可见,也不会被CTS选中。同样,在SAP / ABAP环境中,没有选择向表列添加默认值的选项。如果选择使新列具有NON-NULL值,则必须手动更新默认值,并且将花费大量时间来修改表。最好的方法是根据列的类型将默认值选择为
系统更新 可使用以下任何方法更新PSP™主机的系统软件。 [透过因特网更新] 使用透过因特网下载之更新数据执行更新的方法。 使用此方法执行更新时,需先与网络联机。有关与网络联机的详情,请参阅(设定) > (网络设定) > [Infrastructure模式]。 [透过储存媒体更新] 使用保存至储存媒体(如主机内存、UMD™、Memory Stick™或其他媒体)之更新数据执行更新的方法。 重要
通过路由器连接到网络,只要设置 /etc/rc.conf 文件中的 eth0 字段为 dhcp 或者 固定IP。如果通过 ADSL(PPPoE) 拨号上网,则要执行pppoe-setup 脚本,设置 ADSL 连接,然后通过以下命令连接/断开网络: /etc/rc.d/adsl start /etc/rc.d/adsl stop 更新 Archlinux 系统 (需要 root 权限,如果是普
我有一个表,它有一个主键,这个主键是用table Generator生成的: @tablegenerator(name=“resourceidgenerator”,table=“sequence”,pkColumnName=“name”,pkColumnValue=“resource_type_id”,valueColumnName=“nextid”,allocationSize=1),它工作得很