kettle MongoDB Output 配置說明


基本配置

Configure Connection Tab

 
數據庫連接
  • Connection timeout:嘗試連接數據庫所等待的最大時間(毫秒),空為無限,建議5000
  • Socket timeout:sql在執行成功之前等待讀寫操作的時間(毫秒),空為無限,建議5000

Output Options Tab

 
輸入表與相關設置
  • Truncate option:在數據傳輸前清空表
  • Update 與 Upsert:
Update Upsert 是否更新 是否插入
未選 未選 不更新 只插入
選中 未選 只更新 不插入
選中 選中 更新 插入
  • Multi-update:更新所有匹配的文檔,默認是只更新符合查詢條件的第一個
  • Modifier update:允許修飾符運算符用於修改匹配文檔中的各個字段($運算符),此類更新速度快,涉及的網絡流量最小。只有當這個選項選中時,Mongo Document Fields Tab 的 Modifier operation 和 Modifier policy 才會生效

Mongo Document Fields Tab

 
輸入字段與查詢條件
  • Name:字段名
  • Mongo document path:字段路徑,可以為 Name 設置新字段名
 
示例
  • Use field name:為 N 時字段會使用 Mongo document path 為新字段名
  • JSON:以 json 格式存儲數據
  • Match field for upsert column:為 Y 的字段將作為查詢條件
  • Modifier operation:當 Output Options Tab 的 Modifier update 選中時,此設置生效,其中,N/A 為不更新,$set 為覆蓋更新 $inc 為數字的加法更新,$push 為數組的追加更新
  • Modifier policy:當 Output Options Tab 的 Modifier update 選中時,此設置生效,其中,Insert 為插入,Update 為更新,可為不同字段設置不同的更新方法

示例

需求1,更新標志位

讀取數據后將字段hours更改,之后需要將改動更新到原數據,但是數據的唯一標識就是hours,所以在hours更改之前復制給old_hours,在最后根據old_hours把新hours更新。

 
配置1
  • 只勾選 Update 確保作業只更新不插入
  • 勾選 Modifier update 從而只更新特定的字段,否則會更新所有字段,沒有值的為 null
 
配置2
  • 字段 old_hours 必須指定 Mongo document path 為 hours,同時將 Use field name 設為 N,否則 kettle 找不到此字段
  • 字段 old_hours 的 Match field for upsert column 設為 Y,以字段作為更新的查詢條件
  • 將 old_hours 的 Modifier operation 設為 N/A,hours 的 Modifier operation 設為 $set,即可達到以 old_hours 查詢然后更新為 hours 的效果
  • old_hours 的 Modifier operation 設為 N/A 之后,Modifier policy 怎么設置都無所謂,沒有效果



轉載來源:https://www.jianshu.com/p/bd6183a02109


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM