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...