0

我目前正在为拉丁美洲的(咖啡)聚合器创建一个数据仓库。他们有两个主要业务:

  1. 从农民那里购买咖啡并在国际市场上销售
  2. 向这些农民提供小额信贷以增加他们的产量。

我的计划是在他们的操作系统/数据库之上创建一个数据仓库。

我将整合的第一个业务流程是信用操作,然后我将添加个体农民的咖啡购买。

对于信贷操作,我设想一个单一的事实表,其中包含贷款金额、农民、贷款官员等维度。但在进入有关贷款的事实表之前,我目前正在创建农民维度。

我有一个不错的小农民维度,有一些钥匙、地理位置、性别、教育等

我还想包括农民的“经济生产”。这是在贷款申请过程中捕获的信息,基本上说明了他们生产什么样的咖啡以及他们生产咖啡的土地面积。因此,农民与经济生产之间的关系为 1:n

此外,这种情况每年都在变化,显然只有完成贷款申请的农民才知道。

此信息的目标是能够(甚至在创建信用事实表之前)创建一些关于农民、他们的空间分布和他们的经济活动/产出的基本数据/见解。

因此,我正在考虑将农民维度与“生产维度”相关联。该生产维度将是 (1) 时变的和 (2) 多值的。我计划根据类型 2(valid_from、valid_to 和 current_valid 列)实现的时间差异。

由于我对整个数据仓库场景相当陌生,因此我一直在阅读很多关于常用技术和原则的内容,主要来自 Kimball 的优秀(!)书。但是,我还没有遇到任何描述这种维度 - 维度连接的东西。

因此,我的问题是:

  1. 这是常见的并被认为是一种好方法吗?
  2. 我在哪里可以找到有关此问题的最佳实践的一些信息

编辑:我正在考虑的第二种可能性是创建某种处理“客户交互”的无事实事实表(例如,收集来自农民的此类信息的贷款申请流程)。然后,该事实表将具有对农民的 FK、对生产维度的 FK 以及对时间维度表的 FK。由于它没有与之相关的事实,这只会形成某种 1:n 链接表。与前一种方法的唯一区别是时间维度现在在一个单独的表中,而不是在我看来包含在生产表中。

EDIT2:或者我应该创建一个生产事实表,尽管它与聚合器的业务流程不一致。在那种情况下,生产某种作物的表面积可能会成为衡量标准,并且作物类型/品种等可能会进入一个单独的维度。

4

0 回答 0