使用 Informatica 做 ETL 的時(shí)候拄轻,可能會遇到這兩種隱性的數(shù)據(jù)錯(cuò)誤(之所以說隱性桨啃,因?yàn)?monitor 日志沒有說明具體什么錯(cuò)誤街望,需要根據(jù)經(jīng)驗(yàn)判斷):
- 數(shù)據(jù)值的實(shí)際長度超出數(shù)據(jù)庫表或者 mapping 組件中設(shè)定的長度
- 數(shù)據(jù)值的類型與數(shù)據(jù)庫表或者 mapping 組件中設(shè)定的數(shù)據(jù)類型不同
數(shù)據(jù)超出設(shè)定長度范圍
在第一種情況中飞蚓,workflow 會自動跳過超出長度的數(shù)據(jù)繼續(xù)運(yùn)行缩擂,并且最終 workflow 狀態(tài)為 succeeded鼠冕。比如有 20 條字符串?dāng)?shù)據(jù),設(shè)定長度為 5胯盯,那么如果其中一條數(shù)據(jù)為“Hello World”懈费,長度超過 5,最終抽取的數(shù)據(jù)條數(shù)為 19博脑,這條超出長度的數(shù)據(jù)就會被 reject憎乙。這種情況大部分時(shí)候可以通過 monitor 進(jìn)行監(jiān)控,如下圖叉趣,前面例子中應(yīng)該顯示的 applied rows 應(yīng)該為 19泞边,rejected rows 為 1:
數(shù)據(jù)類型與所設(shè)定不同
至于第二種情況,workflow 最終的狀態(tài)是 failed疗杉,但 monitor 日志會顯示如下:
也就是說阵谚,突然報(bào)錯(cuò)蚕礼,也沒有很詳細(xì)的錯(cuò)誤提示。更神奇的是梢什,前面居然運(yùn)行成功那么多數(shù)據(jù)了奠蹬。
遇到上面這種情況時(shí),就可以考慮數(shù)據(jù)類型的錯(cuò)誤了嗡午。
Informatica 遇到數(shù)據(jù)類型不一致時(shí)囤躁,會自動停止工作流并且報(bào)錯(cuò)。比如說有 20 條數(shù)據(jù)荔睹,設(shè)定目標(biāo)表的數(shù)據(jù)類型為 int 型狸演,在源表中前面 15 條都是 int 型數(shù)據(jù),但是第 16 條數(shù)據(jù)為 99.9僻他,不是 int 型宵距,那么最終會成功運(yùn)行 15 條數(shù)據(jù)然后報(bào)錯(cuò)。monitor 目標(biāo)表運(yùn)行狀態(tài)中 applied rows 為 15中姜,rejected rows 為 0消玄。