回答
您沒有指定是使用第三方ETL應用程序還是使用自己的。
如果您使用的是第三方應用程序,很可能會有一個窗口小部件或功能可用於幫助生成日期維度。例如,使用Pentaho數據集成工具包,請參閱O'Reilly數據庫博客中的這篇優秀文章:http://www.oreillynet.com/databases/blog/2007/09/kettle_tip_using_java_locales.html
如果您正在自行設計,那麼在兩個給定日期之間生成每個日期都是非常簡單的練習。存儲過程將更具性能,但使用您正在實現ETL的語言編寫函數將更易於維護。 @hafichuk發佈的有用鏈接是如何在存儲過程中進行生成的很好例子。由於您正在設計模式,因此您必須編寫符合日期維度定義的自己的過程,或者至少修改這些過程。
最後,確保爲您提供選擇的解決方案的靈活性 - 即使每個生產實例構建的「世界」只生成一次日期,但在相同日期維度中還會有很多其他時間代碼將需要使用。 (測試運行,演示/分段部署,集成測試套件......)因此,它需要足夠快和/或足夠靈活,以便它不是瓶頸。使用ETL語言生成日期維度,並在整個適用日期範圍的每個集成測試開始時這樣做會變得老舊,快速。
我還想提一提,你會想要注意常見的日期/時間邊緣情況,如周編號(年份何時翻轉)和時區(如果您的企業時間是太平洋地區,則從上午6點開始的utc鏈接到utc或上一日期的日期)。前者與生成維度直接相關 - 通常你會有一個「星期編號」字段 - 而後者更多的是在轉換期間處理日期維度。 – checkorbored
您絕對應該在Azure數據市場上查看此free date dimension feed。
這是一個日期表飼料設計用於導入到Excel PowerPivot模型,但也可以很容易地用於其他目的地(例如像MySQL表)。
該表包含特別適用於時間商業智能應用程序的列,幷包含幫助創建基本的通用日期維度的通用英語語言列。
它還包含其他幾種語言(包括美國,希伯來語,丹麥語,德語和保加利亞語以及其他語言)。
- 1. 優化mysql日期生成器?
- 2. Snowflaking日期維度
- 3. 使用生成的日期列表比較列日期列 - MYSQL
- 4. 日期/時間維度
- 5. MySQL月度日期
- 6. 日期範圍的F#生成器?
- 7. 使用java生成JasperReports生成mysql日期時間格式
- 8. F#生成日期
- 9. Asp.net日曆 - 生成日期
- 10. MDX - 從另一個日期維度計算一個日期維度
- 11. 在mysql中使用存儲過程插入日期維度日期時出錯
- 12. symfony2表單生成器日期類型
- 13. 日期自然語言生成器(Java)
- 14. 報表生成器3日期格式
- 15. 將日期維度的成員與常量進行比較
- 16. 如何生成日期付款日期
- 17. 加入到尚未指定日期的日期維度
- 18. 生成開始日期和結束日期之間的日期
- 19. 如何隨機生成特定的日期之間的日期在MySQL
- 20. MySQL月度報告日期
- 21. 生成二維數組的梯度圖
- 22. 計算成員在兩個日期維度
- 23. 加載數據到維度日期表
- 24. 日期表/維度查詢和索引
- 25. 日期維度和累計月
- 26. MDX使用多個日期維度
- 27. 生成兩個日期
- 28. 生成一系列日期
- 29. 生成隨機日期
- 30. 生成每週日期
這是你要找的嗎? http://www.dwhworld.com/2010/08/date-dimension-sql-scripts-mysql/ – hafichuk
或者也許這個存儲過程? http://www.amadeus-software.com/html/articles/date_dimension.html – hafichuk