我们正在通过使用来自不同来源的文件Feed来构建数据仓库。 文件提要都是非规范化/展平的(在交易(事实)文件中,帐户属性在所有记录中不断重复)。
此外,帐户信息经常更改(Feed会提供原始版本的数据)。
在这种情况下,最佳做法是什么?数据仓库是否应具有星型模式模型(将帐户信息作为缓慢变化的维度和事务事实)。重新规范化会使ETL过程变得复杂吗?
答案 0 :(得分:1)
在我的公司中,每当某些输入被非规范化时,我们将其标准化,然后从那里开始加载我们的模式(无论你的模式是什么)。
原因是,在进行去标准化后,这些输入很难检查是否存在不一致性(数据质量)。除此之外,将所有输入符合某些标准可以使代码更易于维护。
在我们的案例中,遵循Kimball的做法取得了巨大的成功,事实表,缓慢变化的维度和所有爵士乐。
答案 1 :(得分:0)
如果没有日常数量,延迟阈值,资源可用性,报告要求,平台和工具限制等详细信息,很难回答。传统的ODS,您可以在创建数据集市之前导入并存储规范化结构,是伟大但不适合大数据或实时分析。在Hadoop或虚拟化层中使用数据湖的更现代的方法可能对您的组织不可行。
一般意见:
1)从复杂性和性能角度来看,重新规范化似乎没有必要,除非您对规范化数据存储有持续的使用。
2)您是否构建传统的星型模式或图形或其他应由报告要求和工具控制的,而不是源数据格式。那些消息来源会改变,顺便说一句。
3)“交易”对我来说听起来不是事实。购买交易,例如,可以提供销售事实,销售周期的累积快照,漏斗转换事实等。
4)我不确定“账户”是客户,还是信用卡,在线支付服务,银行账户等余额账户。它们意味着不同的SCD类型。无论如何,Google将足以获得有关构建这些维度的大量信息。