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