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表)。

該表包含特別適用於時間商業智能應用程序的列,幷包含幫助創建基本的通用日期維度的通用英語語言列。

它還包含其他幾種語言(包括美國,希伯來語,丹麥語,德語和保加利亞語以及其他語言)。