資料流更新失敗問題排查
問題簡介
在資料工廠的使用過程中,會存在資料流更新失敗的情況。
以下是導致資料更新失敗的幾種情況:
- 存在笛卡爾積
- 輸出資料量超出限制
- 橫向連接配置不正確
出現更新失敗時可以查看更新日誌排查問題,具體原因及解決方案參見下文詳解👇
笛卡爾積結果資料量過大
問題說明
當執行日誌中出現如下圖所示的資料更新失敗的報錯時,表示存在笛卡爾積且經過笛卡爾積輸出的資料條數大於十萬條:
問題原因
當資料流節點爲橫向連接時,可能會出現笛卡爾積。
1. 如何判斷出現笛卡爾積?
判斷是否出現笛卡爾積的公式爲:
經橫向連接計算后的資料總量 >(n+m)*2
n:表 A 的資料量
m:表 B 的資料量
在資料預覽時,如果出現笛卡爾積,系統也會給出提示:
2. 笛卡爾積範例
以下爲兩個表資料經過橫向連接後的計算結果(3 種連接方式均可導致更新失敗):
橫向連接后的縂資料量=5*5+4*4=41
(m+n)*2=(9+9)*2=36
41>36
由於圖中橫向連接後的資料總量大於(表A+表B)的資料總和的兩倍,所以計算結果將出現笛卡爾積。因計算的結果資料不超過十萬條,所以觸發笛卡爾積也不會更新失敗。
如果實際業務中,同時滿足笛卡爾積且輸出的資料超過十萬條,將觸發資料流更新失敗。
注:不論是左連接、右連接、內連接還是全連接,只要計算出來的結果符合笛卡爾積且輸出資料大於十萬條,均會導致資料流更新失敗。若資料結果少於十萬條,則正常更新。
解決方案
當結果出現笛卡爾積且輸出資料量大於十萬條時,需要調整資料工廠配置或者修改原始資料(刪除或新增資料,使得上述限制不成立即可)。
如上述範例中的笛卡爾積,我們可以透過修改橫向連接的配置解決。
將產品對應的「規格」也設爲連接欄位,這樣就可以將產品規格對應的數量和價格連爲一張表了,而且也不會觸發笛卡爾積限制。
輸出資料量超出100萬條
問題說明
當執行日誌中出現如下圖所示的報錯時,表示輸出資料量超出限制導致資料更新失敗。
問題原因
透過資料工廠計算的資料最終輸出結果上限爲100萬條,若超過限制則資料流將更新失敗。
解決方案
當輸出資料量超出限制時可以:
- 減少輸入源表單個數或刪除輸入源表單部分資料來減少輸入總資料量;
- 調整資料流配置減少輸出資料量大小。
輸出資料量大於輸入的兩倍
問題說明
當執行日誌中出現如下圖所示的報錯時,表示輸出資料量超出限制導致資料更新失敗。
問題原因
如下圖,便會導致輸出資料總量爲輸入資料總量的三倍,因此會觸發輸出資料量的限制,而導致資料流更新失敗。
解決方案
當輸出資料量超出限制時可以:
- 增加輸入源表單個數(增加輸入節點)以增加輸入總資料量;
- 調整資料流配置減少輸出資料量大小。
橫向連接配置不正確
問題說明
當執行日誌中出現如下圖所示的報錯時,表示橫向連接配置不正確。
問題原因
當資料源的表單欄位刪除後,若橫向連接配置了該欄位作爲連接欄位,資料流將會更新失敗。
解決方案
點擊更新失敗的資料流,重新配置橫向連接節點。