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