我正在设计一个数据仓库,我需要一个可以生成日期维度的工具。我正在使用 MySQL 5.x。
谢谢
最佳答案
您没有指定您是使用第三方 ETL 应用程序还是使用自己的应用程序。
如果您使用的是第三方应用程序,很可能会有一个小部件或功能可用于帮助生成您的日期维度。例如,使用 Pentaho 数据集成工具包,请参阅 O'Reilly 数据库博客中的这篇优秀文章:http://www.oreillynet.com/databases/blog/2007/09/kettle_tip_using_java_locales.html
如果您自己滚动,生成两个给定日期之间的每个日期是一个非常简单的练习。存储过程的性能会更高,但是用实现 ETL 所用的语言编写函数将更易于维护。 @hafichuk 发布的有用链接是如何在存储过程中进行生成的很好示例。由于您正在设计架构,因此您必须编写自己的过程以符合您对日期维度的定义,或者至少修改这些过程。
最后,请确保您选择的解决方案具有灵 active - 即使“世界”的每个生产实例构建只会生成一次日期,但在同一日期维度生成时还会有很多其他时间需要使用代码。 (测试运行、演示/暂存部署、在集成测试套件中……)因此,它需要足够快和/或足够灵活,这样才不会成为瓶颈。用 ETL 语言生成日期维度并在每个适用日期范围的集成测试开始时这样做会很快变旧。
关于mysql - MySQL 的日期维度生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8358536/