2016-01-25 81 views
0

我正在使用BI工具Domo,它使用Amazon Red Shift。我有一個使用Zendesk數據每晚運行的數據集。如何在數字中找到空值?

我得到這個錯誤:

OnboardFlowExecution(2794) data flow execution id 
(724670342c4c48a9a61e7a617e6462c1) failed: 
java.lang.NumberFormatException: For input string: "null" 

我研究的錯誤,我在某個地方的數據集Number列有它不喜歡數據的印象,並肆虐與我的下游過程。

如何找到違規的列/行?

+0

的「emp_first_name」列的所有空值我沒有動手與Domo的經驗,所以藉此與一粒鹽...但是這似乎由於來自後端的數據輸入不正確,導致您的BI工具崩潰。 BI工具通常直接駐留在數據庫中,或使用由數據庫通過管理ETL過程提供的專有數據集(Universe,多維數據集等)。最好的辦法是確定任何可用的日誌文件,以更好地追蹤哪些表失敗,然後直接進入後端數據庫,以檢查您的流程假設與實際存在的數據。單調乏味,我知道,但那就是我要開始的地方。 – DanK

+0

我同意你的看法,那就是BI工具。但任何幫助我找出違規的專欄和領域將會有很長的路要走。謝謝 – donviti

+1

不幸的是,這裏沒有人能夠幫助你找到你正在尋找的細節,因爲他們需要完全訪問你的系統來識別問題。我可以從你的java.lang.NumberFormatException(https://docs.oracle.com/javase/7/docs/api/java/lang/NumberFormatException.html)告訴你,你似乎試圖將空值轉換爲一個號碼。如果我不得不猜測,可能是在ETL過程中爲最終用戶轉換數據,因此您應該聯繫您的DBA或創建Datamarts的BI管理員來搜索故障日誌。 – DanK

回答

1

Amazon RedShift預計列中會有一個字符串值,但會接收'null'值。因此,它拋出一個異常(一種錯誤)。

將變換添加到輸入數據集以處理空例外。我們以前使用RedShift中的NVL函數來用其他值替換空值。

E.g.您的變換可能是:

從員工中選擇employee_id,NVL(emp_first_name,'No Name');

的NVL函數將取代在「無名」

+0

您也可以使用內置的Domo ETL來刪除/替換其他零件。 – Abhi

相關問題