Datax從Hive中匯出資料寫入到MySQL

2021-10-05 21:49:34 字數 1905 閱讀 2043

hive1.2.x 版本支援的資料型別已經很豐富了,但是datax目前還支援不了這麼多的資料型別,如果不注意的話,將會丟擲很多奇怪的問題:比如 髒資料 的問題。

datax 內部型別

hive表 資料型別

long

tinyint,smallint,int,bigint

double

float,double

string

string,char,varchar,struct,map,array,union,binary

boolean

boolean

date

date,timestamp

這裡在官網中也有說明:傳送門

通常在數倉中,為保證計算資料的準確性,我們會設計一些精度較高的資料型別,比如timestamp。

但當我們借助datax-web來自動完成字段對映的時候,通常不會將timestamp修改為datax內容支援的date型別,這個時候需要手動修改json中對應的字段為date。

2020-05-08 18:18:10.284 [0-0-0-reader] error stdoutplugincollector - 髒資料: 

2020-05-08 18:18:10.285 [0-0-0-reader] error stdoutplugincollector - 髒資料:

2020-05-08 18:18:10.286 [0-0-0-reader] error stdoutplugincollector - 髒資料:

2020-05-08 18:18:10.286 [0-0-0-reader] error stdoutplugincollector - 髒資料:

2020-05-08 18:18:10.287 [0-0-0-reader] error stdoutplugincollector - 髒資料:

2020-05-08 18:18:10.287 [0-0-0-reader] error stdoutplugincollector - 髒資料:

2020-05-08 18:18:10.288 [0-0-0-reader] error stdoutplugincollector - 髒資料:

2020-05-08 18:18:10.289 [0-0-0-reader] error stdoutplugincollector - 髒資料:

2020-05-08 18:18:10.289 [0-0-0-reader] error stdoutplugincollector - 髒資料:

2020-05-08 18:18:10.293 [0-0-0-reader] info reader$task - end read source files...

這裡就需要將json中的timestamp型別修改為date型別處理,如果精度很高的話,可以將型別修改為string。

如果還有其他髒資料型別的錯誤,可以參考上面提到的datax內部支援的資料型別,將字段調整為支援的資料型別即可解決髒資料型別錯誤。

附上脫敏後的json檔案:

,"errorlimit":}

,"content":[

,"defaultfs"

:"hdfs://nameservice1"

,"filetype"

:"orc"

,"path"

:"/data1/user/hive/warehouse/result_temp"

,"writemode":,

"fielddelimiter"

:","

,"column":[

,,,,

,,,,

,,,,

]}},

"writer":]

}}}]

}}

hive 從Excel中匯入資料

拿到excel表後將資料保留,其他的亂七八糟都刪掉,然後另存為txt格式的文字,用nodepad 將文字轉換為utf 8編碼,此處命名為cityprovince.txt 將cityprovince.txt傳入操作的linux環境中 hive建表,注意字段型別要相同 drop table tmp.ci...

從資料庫中匯出資料

首先開啟xp cmdshell許可權 exec sp configure show advanced options 1 reconfigure exec sp configure xp cmdshell 1 reconfigure 1,匯出資料到txt exec master.xp cmdshel...

從radgird中匯出資料到excle

前台設 autogeneratecolumns false 後台private void configurereport string strexporttype 有這兩句才可以把全部資料匯出來,而其他的不匯出來 radgrid2.exportsettings.exportonlydata true...