我们正在为一家银行开发一个数据仓库,并且几乎遵循标准的 Kimball 临时表模型、星型模式和 ETL 来通过流程提取数据。
Kimball 谈到了使用暂存区进行导入、清理、处理和一切操作,直到您准备好将数据放入星型模式。在实践中,这通常意味着将数据从源上传到一组表中,几乎没有修改,然后选择性地通过中间表获取数据,直到它准备好进入星型模式。这对单个实体来说是很多工作,这里没有单一的责任。
我以前工作过的系统对不同的表集进行了区分,达到了以下程度:
- 上传表:原始源系统数据,未修改
- 暂存表:中间处理、类型化和清理
- 仓库表
您可以将它们粘贴在单独的模式中,然后为存档/备份/安全等应用不同的策略。其他人之一曾在一个仓库工作,那里有一个StagingInput和一个StagingOutput,类似的故事。整个团队在数据仓库和其他方面都有很多经验。
然而,尽管如此,纵观 Kimball 和网络,似乎完全没有关于为暂存数据库提供任何类型的结构的书面文件。如果相信 Kimball 先生会让我们所有人都将分期工作作为这个庞大的深黑色非结构化数据池,那将是可以原谅的。
当然,如果我们想为暂存区添加更多结构,如何去做是很明显的,但似乎没有任何关于它的文章似乎很奇怪。
那么,外面的其他人都在做什么呢?只是上演这么大的非结构化混乱还是人们有一些有趣的设计?