配合同步接口(write)使用。
数据预同步、历史数据同步、增量天级数据同步都是以天为单位导入数据,导入完成后必须调用done接口(done接口传输的数据日期与write接口上传数据的日期保持一致写入传输完成标识),服务端接收到该标识才会开启数据入库+归档。
done(self, date_list: Optional[list], topic: str, *opts: Option) -> DoneResponse
参数 | 类型 | 说明 |
---|---|---|
date_list | list[datetime] | 该字段表示此次调用done方法需要同步的日期列表,即允许一次同步多天 |
topic | str | 同步完成的场景,和数据上传场景保持一致 |
opts | Option[] | 请求中可选参数,具体使用方式见用例示范 |
使用自定义的DoneResponse类作为响应类型,具体参数如下表所示。在获取到DoneResponse类型的返回值后可调用它的status属性判断此次数据上传是否成功。
参数 | 类型 | 说明 | 获取方法 |
---|---|---|---|
code | int | 状态码 | response.status.code |
message | String | 请求结果信息 | response.status.message |
import uuid from datetime import datetime from byteair import ClientBuilder, Client from byteair.protocol.volcengine_byteair_pb2 import * from core import Region, Option, NetException, BizException, metrics # 示例省略client初始化过程 def done(): date_list = [datetime(year=2022, month=1, day=1)] # topic为枚举值,请参考API文档 topic = "item" opts = ( # 预同步("pre_sync"),历史数据同步("history_sync"),增量天级同步("incremental_sync_daily") Option.with_stage("pre_sync"), Option.with_timeout(timedelta(milliseconds=1000)), Option.with_request_id(str(uuid.uuid1())), ) try: done_response = client.done(date_list, topic, *opts) except BizException as e: print("[done] occur err, msg: %s" % e) return if not done_response.status.success: print("[done] failure") return print("[done] success") return