【问题标题】:Date Dimension Generator for MySQLMySQL 的日期维度生成器
【发布时间】:2011-12-02 15:23:01
【问题描述】:

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

谢谢

【问题讨论】:

标签: mysql database datetime data-warehouse dimensional-modeling


【解决方案1】:

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

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

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

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

【讨论】:

  • 我还想提一下,您需要注意常见的日期/时间边缘情况,例如周编号(年份何时翻转)和时区(如果您的公司时间是太平洋时间)从早上 6 点 UTC 链接到它在 UTC 中的日期,或上一个日期)。前者与生成维度直接相关——通常你会有一个“周数”字段——而后者更多的是关于在转换过程中使用日期维度。
【解决方案2】:

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

这是一个日期表提要,专为导入 Excel PowerPivot 模型而设计,但也可以轻松用于其他目标(例如 MySQL 表)。

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

它还包含其他几种语言(包括美国、希伯来语、丹麦语、德语和保加利亚语,其他语言正在开发中)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2018-03-28
    • 2019-11-17
    • 2020-06-08
    • 2021-10-28
    • 1970-01-01
    相关资源
    最近更新 更多