官方只提供了取模分割槽器,如果有其他分割槽需求,可通過自定義分割槽外掛程式擴充套件。
自定義分割槽器外掛程式需要實現以下兩個介面:
partitioner:基類basepartitioner
說明:維護配置、訪問對話方塊、執行時分配資料到分割槽
stepdialoginte***ce:基類basestepdialog
說明:配置分割槽器的對話方塊
實現partitioner介面
partitioner是分割槽器外掛程式的主實現介面(org.pentaho.di.trans.partitioner)
自定義實現類需繼承basepartitioner 實現partitioner 介面
以下方法用來追蹤分割槽器配置,每個分割槽器用私有屬性來儲存配置,並提供相應的getter setter
以下方法跟自定義轉換步驟類似,用於配置的序列化
在執行時,以下方法用於分布行流到不同分割槽去,總分區數由繼承的nrpartitions屬性獲得,返回乙個分割槽號(0 <= 分割槽號 < nrpartitions)
每乙個patitioner自定義實現類必須使用partitionerplugin註解裝飾,其屬性如下:
實現stepdialoginte***ce介面
stepdialoginte***ce是分割槽器外掛程式對話方塊的主實現介面(org.pentaho.di.trans.step.stepdialoginte***ce)
自定義實現類需繼承basestepdialog 實現stepdialoginte***ce介面
當你在spoon上開啟分割槽器配置,系統隨即例項化dialog類並傳入steppartitioningmeta 物件。通過呼叫 getpartitioner() 返回partitioner物件,然後呼叫dialog的 open()彈出對話方塊。其規則與轉換步驟類似。
部署與轉換步驟相同
Kafka自定義分割槽器
kafka通過生產者kafkaproducer的send 方法將訊息傳送到broker中,但在傳送過程中需要經過 interceptor 序列化器 serializer 和分割槽器 partitioner 的一系列作用之後才能被真正地發往broker。訊息在經過序列化後需要確定它發往的分割槽,如果訊...
Spark自定義分割槽器
package actions import org.apache.spark.object sam class mypartitioner num int extends partitioner 還有一種分割槽器就是rangepartitioner 範圍分割槽器 思想是用水塘抽樣演算法,保證每條資...
自定義外掛程式
自定義外掛程式 建立自定義外掛程式1.建立工程 qt4 designer plugin 後續配置都使用預設值,這裡我們建立乙個 qhist 外掛程式。2.新建後,直接編譯,會產生如下錯誤 1 link fatal error lnk1181 cannot open input file qtdesi...