Data使用指南
參數設置
shard數量設置
Shard表示對一個Topic進行數據傳輸的併發通道,每個Shard啟用以後會佔用一定的服務端資源,建議按需申請Shard數量
shard數量評估指標
- QPS:單shard寫入QPS 限制為2000次/s
- Throughput:單shard每秒吞吐量最大為 5M/S
Topic生命週期設置
生命週期代表數據有效期,DataHub Topic數據超過有效期則失效,無法消費
有效期單位為天,範圍為1-7天,可通過管控臺頁面修改數據有效期
SDK規範
主要說明DataHub 讀寫代碼編寫規範
寫入數據
接口選擇
針對服務端版本>=2.12的,推薦使用putRecordsByShard接口寫入數據,putRecordsByShard接口寫入失敗會直接拋出異常來告知用戶
針對服務端版本<2.12的,只能使用putRecords接口,用戶需要判斷PutRecordsResult結果來確認數據是否寫入成功
寫入方式
-
協同消費寫入數據(建議使用)
- 協同消費主要解決的是shard分配問題,使用協同消費能夠自動分配shard,協同消費文檔:https://help.aliyun.com/document_detail/158834.html?spm=a2c4g.11186623.6.588.5eb6217dBdqKVg
-
使用SDK自定義寫入
- 適用情況:需要將數據寫入指定shard,請使用putRecordsByShard接口
其他
-
batch寫入,減少資源請求消耗
- DataHub單shard寫入QPS 限制為2000次/s,每次batch請求量為4M,請根據數據大小選擇合適的批量寫入條數,提高寫入效率
-
重試機制
- 為了增強程序健壯性,有必要對寫入數據增加重試機制,避免由於網絡、升級等其他原因造成的短暫不可用
- 部分可重試錯誤:例如server busy,server unavailable等,因此建議遇到DatahubClientException和LimitExceededException時,可以在代碼邏輯中添加重試邏輯,但應嚴格限制重試次數。
讀取數據
消費方式
-
協同消費(推薦)
- 協同消費同樣支持自動分配shard消費數據
-
使用SDK關聯訂閱消費DataHub數據
- 適用情況:需要消費指定shard數據
注意事項
- 一個shard只能被一個線程消費
- 一個訂閱創建後只需要初始化一次offset,多次初始化會生成新的session,無法提交點位