使用PDI(Kettle)我通過使用CSV Input
和Table Output
步驟來填充我的數據庫的入門級。這很好,但是,我也想確保剛剛插入的數據滿足特定的標準,例如,字段不爲NULL等PDI:將SELECT語句的結果返回給數據流
通常這是數據庫約束的工作,但是,我們希望保留數據庫中的數據,即使其數據庫出錯(用於調試目的也是如此。 csv文件...)。因爲它只是一個臨時表,所以它不會造成任何問題,因爲它不會造成任何問題。
所以要做到這一點,我寫了一些SELECT Count(*) as test123 ...
聲明,可以即時顯示是否有錯誤,並且易於處理(如果test123的值爲0,那麼所有的都是好的,否則該作業需要中止)。
我在PDI轉換中使用Execute SQL Statements
步驟執行這些語句。我預計結果會自動傳遞給我的數據流,所以我還使用了Copy rows to result
步驟將它傳遞給正在執行的作業。
這是問題最可能出現的地方。 我認爲SELECT語句的結果不會自動傳遞給我的數據流,因爲當我在主作業中使用變量${test123}
(我認爲這將通過執行SELECT Count(*) as test123 ...
隱式創建)執行Simple evaluation
時,我從來沒有得到預期的結果。
我在PDI文檔中找不到任何此問題的線索,所以我希望這裏的某些人有一些PDI的經驗,並且可以提供幫助。如果有些東西還不清楚,只需提示一下,我會用更多信息編輯帖子。
問候
編輯: 這是我的主要工作的一個簡單的模型:
開始 - >加載數據(轉換) - >檢查數據(轉換) - >簡單的評價 - - > ...
因此,您在轉換中執行這些SQL語句,其中數據流來自作業或通過連接到數據庫來檢查它? – Seb 2014-08-27 11:12:35
「執行SQL語句」步驟連接到數據庫並執行語句。這是在一個單獨的轉換中完成的,該轉換由一個作業調用。 – daZza 2014-08-27 11:14:26
SQL是必須的嗎?怎麼樣在你的「檢查數據」 - 轉換JavaScript腳步? – Seb 2014-08-27 11:25:00