供做文体累计
從mysql 到hive:
jdbc會(huì)把tinyint 認(rèn)為是java.sql.Types.BIT,然后sqoop就會(huì)轉(zhuǎn)為Boolean了
pingan:tinyint通過sqoop到hive變成string類型的時(shí)候,會(huì)隱式轉(zhuǎn)換 變成布爾類型
需要加強(qiáng)轉(zhuǎn),cast(is_official as char(3))
wangzhan:
在連接上加上一句話tinyInt1isBit=false
jdbc:mysql://localhost/test?tinyInt1isBit=false
示例:
sudo -u hive sqoop import-all-tables --connect "jdbc:mysql://10.19.196.129:3312/yjp_productsku_1?tinyInt1isBit=false" --username root --password xyzxyz--hive-import --hive-overwrite --hive-database yjp_productsku_1 --m 1 --null-string '\\N' --null-non-string '\\N' --hive-drop-import-delims
hive中 join連接不能用大于小于號(hào),盤古hive版本較高,所以可以用,跑任務(wù)的時(shí)候不能用
hive中trunc函數(shù)不能用季函數(shù): trunc(shijian,‘q’),需要利用shell 給參數(shù)
盤古hive版本較高,所以可以用,跑任務(wù)的時(shí)候不能用
4、前端測(cè)的不是數(shù)據(jù),是數(shù)據(jù)格式,
只用把數(shù)據(jù)發(fā)他們就好
,數(shù)據(jù)對(duì)不對(duì)根本不重要,只要符合他們使用的格式就行。
5、造數(shù):造數(shù)不好,本身的數(shù)不測(cè)造的全是符合他們場(chǎng)景的數(shù)據(jù),
出問題全是推給造數(shù)的問題,
尤其是排行榜數(shù)據(jù),造一條,關(guān)聯(lián)部分的其他所有數(shù)據(jù)排行都受影響,出問題都說是造數(shù)的問題。
可以反問,前端測(cè)試為什么連數(shù)據(jù)都不會(huì)造,自己要什么場(chǎng)景的數(shù)據(jù)肯定是自己造
造數(shù)和腳本邏輯沒有關(guān)系!
6、有些指標(biāo)是可以對(duì)不上的。或者極個(gè)別有那種捷報(bào)和我們機(jī)構(gòu)不一致的
其實(shí)數(shù)據(jù)是可以比原子少,只要能找到理由就行
話術(shù):老師請(qǐng)問是哪張報(bào)表,我們目前在切換底層的數(shù)據(jù)源,有的報(bào)表還沒切換,可能回合我們的新指標(biāo)有些小誤差
老師好應(yīng)該以我們的新指標(biāo)數(shù)據(jù)為準(zhǔn),xxx報(bào)表稍后會(huì)切換數(shù)據(jù)源,確保我們的新指標(biāo)數(shù)據(jù)保持一致
sbustr 截取長(zhǎng)度比 實(shí)際長(zhǎng)度小會(huì)數(shù)據(jù)越界。
解決辦法,例:
case when length(idno)<4 then idnoelse concat(rpad(substr(indo,1,4)--截取身份證前4位,abs(length(idno)-4)--身份證位數(shù)減4 的絕對(duì)值,'*') --向右邊填充 身份證位數(shù)減4位的 *號(hào)數(shù)量, substr(indo,length(idno)-3,4)) --截取身份證從倒數(shù)第三?第四位開始往后 4個(gè)數(shù)字end --拼接 身份證前4位 身份證位數(shù)減4位的“*”號(hào)數(shù)量 和身份證后4個(gè)數(shù)字 ------------------------------- case when length(phoneno)<3 then phoneno else concat(rpad(substr(phoneno,1,3)--截取前3位,length(phoneno)-2,'*')--向右邊填充 :位數(shù)減2位的 *號(hào)數(shù)量 , substr(phoneno, -2)) --截取倒數(shù)兩位數(shù)?第2位開始往后 所有數(shù)字end --拼接 前3位 位數(shù)減2位的“*”號(hào)數(shù)量 和后2個(gè)數(shù)字case when length(idno)<4 then idno
else concat(rpad(substr(indo,1,4)--截取身份證前4位
,abs(length(idno)-4)--身份證位數(shù)減4 的絕對(duì)值
,'*') --向右邊填充 身份證位數(shù)減4位的 *號(hào)數(shù)量
, substr(indo,length(idno)-3,4)) --截取身份證從倒數(shù)第三?第四位開始往后 4個(gè)數(shù)字
end
--拼接 身份證前4位 身份證位數(shù)減4位的“*”號(hào)數(shù)量 和身份證后4個(gè)數(shù)字
case when length(phoneno)<3 then phoneno
else concat(rpad(substr(phoneno,1,3)--截取前3位
,length(phoneno)-2,'*')--向右邊填充 :位數(shù)減2位的 *號(hào)數(shù)量
, substr(phoneno, -2)) --截取倒數(shù)兩位數(shù)?第2位開始往后 所有數(shù)字
end
--拼接 前3位 位數(shù)減2位的“*”號(hào)數(shù)量 和后2個(gè)數(shù)字
5、MySql varchar類型,插入的數(shù)據(jù)超過設(shè)置的長(zhǎng)度時(shí),超出的部分將會(huì)被截取。
總結(jié)
- 上一篇: linux 文件修复工具,技术|在 Li
- 下一篇: 关于模拟CMOS集成电路第二章MOS器件