我正在设计一个数据仓库,我需要一个可以生成日期维度的工具。我正在使用MySQL 5.x。
由于
答案 0 :(得分:2)
您没有指定您是使用第三方ETL应用程序还是自己动手。
如果您使用的是第三方应用程序,很可能会有一个小部件或功能可用于帮助生成日期维度。例如,使用Pentaho数据集成工具包,请参阅O'Reilly数据库博客中的这篇优秀文章:http://www.oreillynet.com/databases/blog/2007/09/kettle_tip_using_java_locales.html
如果你自己动手,那么在两个给定日期之间生成每个日期是一个非常简单的练习。存储过程将更具性能,但使用您正在实现ETL的语言编写函数将更易于维护。 @hafichuk发布的有用链接是如何在存储过程中进行生成的很好示例。由于您正在设计模式,因此您必须编写自己的过程,该过程符合您对日期维度的定义,或者至少修改这些过程。
最后,请确保为您自己选择的解决方案提供灵活性 - 即使每个生成实例构建的“世界”只生成一个日期,但在生成相同日期维度时会有很多其他时间代码将需要使用。 (测试运行,演示/暂存部署,集成测试套件......)因此,它需要足够快和/或足够灵活,以便它不是瓶颈。使用ETL语言生成日期维度,并在每个集成测试开始时针对整个适用日期范围生成日期维度将变得陈旧,快速。
答案 1 :(得分:1)
您一定要在Azure数据市场上查看此free date dimension feed。
这是一个日期表提要,旨在导入Excel PowerPivot模型,但也可以轻松地用于其他目的地(例如像MySQL表)。
该表包含特别适用于时间商业智能应用程序的列,并包含通用英语语言列,有助于创建基本的,通用日期维度。
它还包含其他几种语言(包括美国,希伯来语,丹麦语,德语和保加利亚语,以及其他语言正在上路)。