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,无法提交点位