mysql到hive數據類型轉換


1.類型映射關系

mysql和hive中的數據類型存在差異,在mysql集成數據到hive中這樣的場景下,我們希望在hive中的數據是貼源的,所以在hive中希望創建和mysql結構一致的表。

mysql到hive數據類型映射參考如下:

2.問題注意

1.問題:

用公司的大數據平台(DataX)導數,已經開發上線一個多月的一批報表,突然有同事說有個報表數據不准。出在時間字段上。
分析:
1、先看了原數據MySQL字段類型為datetime,目標字段為timestamp類型;
2、經發現所有時間的差距都是8小時,懷疑是因為時區轉換的原因;
3、對比其他表,看看是大范圍現象還是特殊情況,發現其他的同樣情況字段的一樣沒有問題,也有改變為string字段類型的也沒有問題;

2.解決辦法

經過對比:發現DATAX(sqoop也類似)在轉換MySQL datatime字段類型為hive的timestamp時會出現問題:默認先轉為零食去對應時間戳,再轉換為北京市區時間,就會使時間多8小時。
解決辦法有兩個:
1、轉換為string類型;
2、繼續用timestamp類型,但是需要行存儲(即text存儲)。

遇見時間類型轉換問題時要小心,保守最好是string,簡單的比較大小不會影響后續計算。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM