kettle從入門到精通 第五十三課 ETL之kettle MQTT/RabbitMQ consumer實戰

1、上一節課我們學習了MQTT producer 生產者步驟,MQTT consumer消費者步驟。該步驟可以從支持MRQTT協議的中間件獲取數據,該步驟和kafka consumer 一樣可以處理實時數據交互,如下圖所示:

 2、雙擊步驟打開MQTT consumer 配置窗口,如下圖所示:

Step name:自定義步驟名稱。

Transformation:設置子轉換,該子轉換的作用是從中間件讀取流數據,然後將字段返回給MQTT consumer步驟進行使用。

Connection:指定此步驟將連接的 MQTT 服務器的地址,如127.0.0.1:1883(注意這裏的端口是1883,不是5672

Client ID:指定 MQTT 客戶端的唯一 ID。MQTT 服務器使用此客戶端 ID 來識別每個不同的客戶端及其當前狀態。

Topics name:在主題名稱字段中,輸入您希望訂閱流數據(消息)的 MQTT 主題的名稱。其實這裏的topic是RabbitMQ中的routing key(另外這裏的routing key 一定不要綁定隊列,否則MQTT consumer步驟無法接收數據)。

Quality of Service:是消息傳遞的保證級別。選擇以下選項之一。
至多一次(0),這是默認值
至少一次(1)
恰好一次(2)

 3、安全驗證設置,如下圖所示:

 

Username:MQTT服務器的用戶名,如admin

Password:MQTT服務器的密碼。

Use secure protocol:選擇此選項以定義連接的 SSL 屬性,本次不做介紹。

 3、批次設置,使用此選項卡來指定在處理之前要拉取多少消息。您可以指定消息數量和/或特定的時間量。

Duration(ms):
請指定一個以毫秒爲單位的時間。此值表示在執行轉換之前該步驟將花費多少時間來收集記錄。
如果將此選項設置爲0,則根據參數Number of records記錄數觸發消費。要運行轉換,持續時間或記錄數選項都必須包含一個大於0的值。

Number of records
指定一個數字。在每收集到‘X’條記錄之後,指定的轉換將被執行,並且這些‘X’條記錄將被傳遞給轉換過程。
如果將此選項設置爲0,則將參數Duration按持續時間觸發消費。爲了運行轉換,持續時間或記錄數選項都必須包含一個大於0的值。

Maximum concurrent batches

指定用於同時收集記錄的最大批次數。默認值爲1,表示使用單個批次來收集記錄。僅當您的消費者步驟無法跟上數據流的速度時,才應使用此選項。
您的計算環境必須具備足夠的 CPU 和內存來進行此實現。如果您的環境無法處理指定的最大併發批次數,將會出現錯誤。


Message prefetch limit
請指定此步驟將排隊等待處理的傳入消息的限制,即從 kfakfa broker接收到的消息。
設置此值會強制kafka broker處理超過指定限制的消息的背壓。默認排隊消息的數量是100000條。

 4、字段設置,這裏採用默認值就行了,不用調整。

 

5、子轉換結果字段設置,選擇子轉換返回數據的步驟。 

 

 6、同上一節課,本次不再介紹。

 

 7、子轉換配置,將Get records from stream步驟拉到畫布,然後填寫Message、Topic兩個字段,類型都是設置爲String即可。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章