Datawarehouse:多值缓慢变化的维度

时间:2018-02-18 15:40:10

标签: data-warehouse scd

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

  1. 从农民手中购买咖啡并在国际上销售 市场和
  2. 向这些农民提供小额贷款 提高产量。
  3. 我的计划是在其操作系统/ dbs之上创建一个数据仓库。

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

    对于信贷业务,我设想一个单一的事实表,其中包括贷款金额,与农民,贷款人员等的维度。但在进入有关贷款的事实表之前,我目前正致力于创建农民维度。

    我有一个很好的小农夫维度,有一些钥匙,地理位置,性别,教育等等。

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

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

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

    因此,我想将农民维度与“生产维度”联系起来。该生产维度将是(1)时变和(2)多值。我计划根据类型2实现的时间差异(valid_from,valid_to和current_valid列)。

    由于我对整个数据仓库领域都很陌生,所以我一直在阅读很多关于常用技巧和原理的内容,主要来自Kimball的优秀(!)书籍。但是,我没有遇到任何描述这种维度维度连接的内容。

    我的问题是:

    1. 这是常见的,被认为是一种好方法吗?
    2. 我在哪里可以找到有关此事的最佳做法的一些信息
    3. 编辑:我正在考虑的第二种可能性是创建某种无事实的事实表来处理“客户互动”(例如,收集农民此类信息的贷款申请流程)。然后,该事实表对农民具有FK,对生产维度具有FK,对时间维度表具有FK。因为它没有与之相关的事实,所以这只会形成某种1:n链接表。与前一种方法的唯一区别在于,时间维度现在位于单独的表中,而不是在我看来包含在生产表中。

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

0 个答案:

没有答案