返回快讯列表
开发者动态

SageMaker Feature Store 补上批量写入,一次请求最多 25 条记录

AWS 于 8 月 28 日为 SageMaker Feature Store 新增 BatchWriteRecord 与 ListRecords 两个 API,单次请求最多写 25 条记录,官方称高吞吐场景的调用量最多能压到二十五分之一。

AWS 在 8 月 28 日给 SageMaker Feature Store 加了两个 API。原先每条记录、每个 feature group 都要单独调一次 PutRecord,高吞吐场景很快就撞到调用量上限。

BatchWriteRecord 单次请求最多带 25 条记录,可以横跨多个 feature group,25 这个上限算的是整个请求的总条数。语义是部分成功,每条记录各自判定,一条失败不会拖垮整个请求,也不会回滚已经写进去的部分。失败的落在 Errors 里,带错误码和原始条目,压根没被处理的落在 UnprocessedEntries 里,两个列表都没出现的就是写成功了。EventTime 的条件写入行为和 PutRecord 一致,旧记录覆盖不了新记录。TTL 的优先级是记录级、请求级、feature group 级依次向下,TargetStores 可以逐条选在线、离线或者两个都写。

ListRecords 负责分页列出 feature group 里的记录标识符,只返回标识符不返回特征值,软删除、过期和内部系统键都被过滤掉。MaxResults 默认 10,最大 100,NextToken 是加密的不透明字符串,原样传回即可,作用域限定在单个 feature group 和单个账号。顺序没有保证,并发写入时可能出现重复或缺口。这一条对 In-Memory 档位尤其要紧,那一档没有默认的离线存储,标识符丢了记录就找不回来。

文章举的例子是一条跨 5 个 feature group、每秒 1 万条记录的欺诈检测管线,按旧方式每秒要发 5 万次调用。用之前需要最新的 Boto3 或者 SageMaker Python SDK v3.8.0 以上,IAM 上要同时具备 BatchWriteRecord、PutRecord 和 ListRecords 三个动作的权限。

更多快讯