mysql和hive中的資料型別存在差異,在mysql整合資料到hive中這樣的場景下,我們希望在hive中的資料是貼源的,所以在hive中希望建立和mysql結構一致的表。
mysql資料型別
hive資料型別
整型bigint
bigint
整型int
bigint
整型smallint
bigint
整型tinyint
bigint
浮點型decimal
decimal
浮點型double
double
浮點型float
double
二進位制binary
binary
二進位制varbinary
binary
字元char
string
字元varchar
string
字元mediumtext
string
字元text
string
時間datetime
string
時間time
string
時間timestamp
string
時間date
date
json
json
map
用公司的大資料平台(datax)導數,已經開發上線乙個多月的一批報表,突然有同事說有個報表資料不准。出在時間欄位上。
分析:1、先看了原資料mysql欄位型別為datetime,目標欄位為timestamp型別;
2、經發現所有時間的差距都是8小時,懷疑是因為時區轉換的原因;
3、對比其他表,看看是大範圍現象還是特殊情況,發現其他的同樣情況欄位的一樣沒有問題,也有改變為string欄位型別的也沒有問題;
經過對比:發現datax(sqoop也類似)在轉換mysql datatime欄位型別為hive的timestamp時會出現問題:預設先轉為零食去對應時間戳,再轉換為北京市區時間,就會使時間多8小時。
解決辦法有兩個:
1、轉換為string型別;
2、繼續用timestamp型別,但是需要行儲存(即text儲存)。
遇見時間型別轉換問題時要小心,保守最好是string,簡單的比較大小不會影響後續計算。
mysql和hive中的資料型別存在差異,在mysql整合資料到hive中這樣的場景下,我們希望在hive中的資料是貼源的,所以在hive中希望建立和mysql結構一致的表。
mysql資料型別
hive資料型別
整型bigint
bigint
整型int
bigint
整型smallint
bigint
整型tinyint
bigint
浮點型decimal
decimal
浮點型double
double
浮點型float
double
二進位制binary
binary
二進位制varbinary
binary
字元char
string
字元varchar
string
字元mediumtext
string
字元text
string
時間datetime
string
時間time
string
時間timestamp
string
時間date
date
json
json
map
用公司的大資料平台(datax)導數,已經開發上線乙個多月的一批報表,突然有同事說有個報表資料不准。出在時間欄位上。
分析:1、先看了原資料mysql欄位型別為datetime,目標欄位為timestamp型別;
2、經發現所有時間的差距都是8小時,懷疑是因為時區轉換的原因;
3、對比其他表,看看是大範圍現象還是特殊情況,發現其他的同樣情況欄位的一樣沒有問題,也有改變為string欄位型別的也沒有問題;
經過對比:發現datax(sqoop也類似)在轉換mysql datatime欄位型別為hive的timestamp時會出現問題:預設先轉為零食去對應時間戳,再轉換為北京市區時間,就會使時間多8小時。
解決辦法有兩個:
1、轉換為string型別;
2、繼續用timestamp型別,但是需要行儲存(即text儲存)。
遇見時間型別轉換問題時要小心,保守最好是string,簡單的比較大小不會影響後續計算。
hadoop資料遷入到hive
由於很多資料在hadoop平台,當從hadoop平台的資料遷移到hive目錄下時,由於hive預設的分隔符是 為了平滑遷移,需要在建立 時指定資料的分割符號,語法如下 create table test uid string,name string row format delimited fiel...
hive匯入資料到hbase
hive有一張表user tag detail,表中資料約1.3億,需要將改表資料匯入到hbase 嘗試了兩種方式 建立關聯表 create table hbase user tag detail id string,name string 插入資料 insert overwrite table h...
SparkSql實現Mysql到hive的資料流動
今天去面試了一波,因為排程系統採用了sparksql實現資料從mysql到hive,在這一點上面試官很明顯很不滿我對於spark的理解,19年的第乙個面試就這麼掛了。有問題不怕,怕的是知道了問題還得過且過。現在就來梳理下我的專案是怎麼使用spark導數的 第一步 把mysql中的表放入記憶體 pro...