2017-04-17 107 views
1

如果我運行Kafka Connect Sink,我指定一個.properties輸入文件,它指定partitioner.class(如FieldPartitioner),它可以根據partition.field.name中指定的記錄字段進行分區。Kafka Connect接收器分區:子分區?

那麼,如果我想要兩個級別的分區呢?例如,我想在頂層的日期時間進行分區,然後通過記錄字段進行子分區?或者簡單地分成兩個字段?在Spark中,這實際上很常見。

基於屬性配置文件格式的結構,我認爲這是不允許的。這種推定是否正確?

回答

1

聽起來像你將不得不編寫自己的分區類,實現Partitioner接口。它可以選擇使用兩種類型的分區中的一種作爲基類(可能是TimeBasedPartitionerFieldPartitioner),無論哪一種最符合您的要求。

目前沒有辦法只通過配置來實現這種類型的分區。但它聽起來很有用。另外,我不確定您指的是哪種類型的接收器,但是如果它與存儲器相關,則可能需要使用kafka-connect-storage-common回購中包含的分區器相關代碼