我需要插入从REST到Cosmos DB的数据,并在特定的时间间隔内维护项目级别的TTL。
我使用ADF复制活动复制数据,但是对于TTL,在源端使用了附加的自定义列,其硬编码值为30。

注意到时间间隔(秒)更新为字符串而不是整数。因此,下面的错误失败了。
细节方面的失败发生在“沉船”方面。由于违反某些Cosmos DB约束的无效文档,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Documents无法导入: 1)文档大小不应超过2MB;2)文档的“id”属性必须是字符串(如果有的话),并且不能包含以下字符:“/”、“”、“?”、“#”;3)文档的“ttl”属性不能是非数字类型(如果有的话),Source=Microsoft.DataTransfer.DocumentDbManagement,‘。
自定义列到cosmos DB之间的映射

当我使用ttl1而不是ttl时,它将获得成功并将值存储为字符串。

有什么建议吗?
发布于 2022-04-20 16:15:04
是的,这就是复制活动中附加列的问题。即使您将其设置为int,它也将更改为源处的字符串。
可能的解决办法是在Azure函数中创建一个Cosmos DB触发器,并在其中添加'TTL‘。
https://stackoverflow.com/questions/71928553
复制相似问题