配合同步接口(write)使用。
数据预同步、历史数据同步、增量天级数据同步都是以天为单位导入数据,导入完成后必须调用done接口(done接口传输的数据日期与write接口上传数据的日期保持一致写入传输完成标识),服务端接收到该标识才会开启数据入库+归档。
DoneResponse done(List dateList, String topic, Option... opts)
参数 | 类型 | 说明 |
---|---|---|
dateList | List | 该字段表示此次调用done方法需要同步的日期列表,即允许一次同步多天 |
topic | String | 同步完成的场景,和数据上传场景保持一致 |
opts | Option[] | 请求中可选参数,具体使用方式见用例示范 |
使用自定义的DoneResponse类作为响应类型,具体参数如下表所示。在获取到DoneResponse类型的返回值后可调用它的getStatus()方法判断此次数据上传是否成功。
参数 | 类型 | 说明 | 获取方法 |
---|---|---|---|
code | int | 状态码 | getCode |
message | String | 请求结果信息 | getMessage |
示例
import volcengine.byteair.ByteairClient; import volcengine.byteair.ByteairClientBuilder; import volcengine.common.protocol.VolcengineCommon; import volcengine.core.BizException; import volcengine.core.NetException; import volcengine.core.Option; import volcengine.core.Region; import volcengine.core.metrics.MetricsCollector; import java.time.LocalDate; import java.util.*; public class Example { public static ByteairClient byteairClient; // 示例省略public static void init() // 某些语法可能在低版本JDK报错,请根据需求替换成等价语法. public static void done() { LocalDate date = LocalDate.of(2022, 1, 1); // 已经上传完成的数据日期,可在一次请求中传多个 List<LocalDate> partitionDateList = Collections.singletonList(date); // 与离线天级数据传输的topic保持一致 String topic = "item"; Option[] opts = new Option[]{ // 预同步("pre_sync"),历史数据同步("history_sync"),增量天级同步("incremental_sync_daily"),增量实时同步("incremental_sync_streaming") Option.withStage("pre_sync"), Option.withRequestId(UUID.randomUUID().toString()), }; VolcengineCommon.DoneResponse doneResponse; try { doneResponse = byteairClient.done(partitionDateList, topic, opts); } catch (BizException | NetException e) { System.out.printf("[done] occur error, msg:%s \n", e.getMessage()); return; } if (!doneResponse.getStatus().getSuccess()) { System.out.println("[done] failure"); return; } System.out.printf("[done] success"); } }