一、概述
之前檔案中 https://blog.csdn.net/qq_35995514/article/details/106856885 講了 一個 Kettle 同步的程式 ,程式設計好了目前拉倒線上測驗不行了,程式跑到文本檔案輸入卡住了,

二、kettle步驟通信
kettle調優中有個重要的引數:記錄集合里面的記錄數,

該數量是指組件與組件之間通信的【快取佇列】的size大小,Kettle內部用List實作該快取佇列,每一條陳述句都會被封裝成一個 RowSet物件,每個組件之間都會有個List<RowSet>佇列,源step每次會往該佇列寫一條資料,目標step每次會從佇列讀取一條資料,
kettle里面轉換是并行的,資料是一條一條流經每個組件,佇列大小采用默認的10000條即可,
但是當使用到【阻塞資料直至步驟完成】、【阻塞資料】相關組件時,則需要根據業務資料量擴大該size的大小,
否則,資料會一直在某兩個組件之間的快取佇列中存放,當數量達到一定大小時,就會卡主不動,
快取佇列的大小對作業沒有影響,查看原始碼發現,快取佇列由inputRowSet 和 outputRowset組成,底部實作是ArrayList,初始化創建的時候,默認容量為10,并不會直接創建設定長度的 陣列,并且使用ArrayList的特性:當要添加的資料量超過陣列的容量時候,ArrayList會動態擴容,size擴大1.5倍
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/238045.html
標籤:其他
上一篇:什么是模塊化?模塊化有哪些優缺點
下一篇:微服務架構誕生的今世前生大揭秘

