1

我正在设计一个数据仓库,我需要一个可以生成日期维度的工具。我正在使用MySQL 5.x.MySQL的日期维度生成器

谢谢

+1

这是你要找的吗? http://www.dwhworld.com/2010/08/date-dimension-sql-scripts-mysql/ – hafichuk

+0

或者也许这个存储过程? http://www.amadeus-software.com/html/articles/date_dimension.html – hafichuk

回答

2

您没有指定是使用第三方ETL应用程序还是使用自己的。

如果您使用的是第三方应用程序,很可能会有一个窗口小部件或功能可用于帮助生成日期维度。例如,使用Pentaho数据集成工具包,请参阅O'Reilly数据库博客中的这篇优秀文章:http://www.oreillynet.com/databases/blog/2007/09/kettle_tip_using_java_locales.html

如果您正在自行设计,那么在两个给定日期之间生成每个日期都是非常简单的练习。存储过程将更具性能,但使用您正在实现ETL的语言编写函数将更易于维护。 @hafichuk发布的有用链接是如何在存储过程中进行生成的很好例子。由于您正在设计模式,因此您必须编写符合日期维度定义的自己的过程,或者至少修改这些过程。

最后,确保为您提供选择的解决方案的灵活性 - 即使每个生产实例构建的“世界”只生成一次日期,但在相同日期维度中还会有很多其他时间代码将需要使用。 (测试运行,演示/分段部署,集成测试套件......)因此,它需要足够快和/或足够灵活,以便它不是瓶颈。使用ETL语言生成日期维度,并在整个适用日期范围的每个集成测试开始时这样做会变得老旧,快速。

+0

我还想提一提,你会想要注意常见的日期/时间边缘情况,如周编号(年份何时翻转)和时区(如果您的企业时间是太平洋地区,则从上午6点开始的utc链接到utc或上一日期的日期)。前者与生成维度直接相关 - 通常你会有一个“星期编号”字段 - 而后者更多的是在转换期间处理日期维度。 – checkorbored

1

您绝对应该在Azure数据市场上查看此free date dimension feed

这是一个日期表饲料设计用于导入到Excel PowerPivot模型,但也可以很容易地用于其他目的地(例如像MySQL表)。

该表包含特别适用于时间商业智能应用程序的列,并包含帮助创建基本的通用日期维度的通用英语语言列。

它还包含其他几种语言(包括美国,希伯来语,丹麦语,德语和保加利亚语以及其他语言)。