Azure cosmosdb 请帮助解决将TTL插入Comsos DB的问题

Azure cosmosdb 请帮助解决将TTL插入Comsos DB的问题,azure-cosmosdb,azure-data-factory,parquet,azure-data-lake-gen2,azure-data-factory-pipeline,Azure Cosmosdb,Azure Data Factory,Parquet,Azure Data Lake Gen2,Azure Data Factory Pipeline,我对azure data factory将TTL插入cosmos db有点纠结: 要求: 来源:ADLS Gen2拼花文件(不是csv,必须是拼花) 目标:COMSMOS DB 需要将paquet文件中的所有记录添加到Comsmos DB中,并使用额外的名称-值对,如:“ttl”:7776000 业务部门希望cosmos db中的每一项记录持续90天,容器级别上的TTL设置持续2年,但是,对于ADLS拼花地板的记录,必须仅在项目级别上设置90天 这里有一些限制: 无法使用数据流,因为它不支持自托

我对azure data factory将TTL插入cosmos db有点纠结:

要求: 来源:ADLS Gen2拼花文件(不是csv,必须是拼花) 目标:COMSMOS DB 需要将paquet文件中的所有记录添加到Comsmos DB中,并使用额外的名称-值对,如:“ttl”:7776000 业务部门希望cosmos db中的每一项记录持续90天,容器级别上的TTL设置持续2年,但是,对于ADLS拼花地板的记录,必须仅在项目级别上设置90天

这里有一些限制:

  • 无法使用数据流,因为它不支持自托管集成运行时,并且使用Azure IR的安全性未经我的公司批准
  • 不能引入其他组件,如Synapse或SQL Server作为临时服务器
  • 无法使用数据块笔记本
  • ttl列不在拼花文件中,必须在复制活动期间添加该列
  • 因此,我尝试使用 这是我的设置: 我在管道中添加了一个参数,它被设置为int数据类型。 在源中添加其他列: 映射如下所示:

    因此ADF将通过错误:“文档的“ttl”属性不能是非数字类型(如果有),Source=Microsoft.DataTransfer.DocumentDbManagement”

    我尝试了各种方法将ttl转换为整数数据类型,但都没有成功。 我感觉Azure将所有“附加列”的数据类型更改为字符串,即使您将其设置为int


    请尽可能帮助我将TTL作为int插入cosmos DB,非常感谢

    是,即使将其设置为int,附加列的类型也将在源位置更改为String


    作为替代方案,您可以在Azure函数中创建Cosmos DB触发器,并在其中添加“TTL”。

    谢谢Steve。如果假设是正确的,则不确定为什么micrsoft将所有附加列更改为字符串。也不确定任何时间线数据流是否可以用于自托管IR。