请帮助解决将 TTL 插入 Cosmos DB 的问题
please help the issue with inserting TTL to Comsos DB
我对 Azure 数据工厂将 TTL 插入 cosmos db 有点纠结:
要求:
来源:ADLS Gen2 镶木地板文件(不是 csv,必须是镶木地板)
目标:COMSMOS 数据库
需要将 paquet 文件中的所有记录添加到具有附加名称值对的 Comsmos DB 中,例如:“ttl”:7776000
业务需要 cosmos db 中的每条记录 90 天,容器级别的 TTL 设置为 2 年,但是,对于来自 ADLS parquet 的记录,它必须仅在项目级别设置 90 天。
这里有一些限制:
- 无法使用数据流,因为它不支持自托管集成运行时,并且使用 Azure IR 没有经过我公司的安全批准
- 无法引入其他组件,如 Synapse 或 SQL 服务器作为暂存服务器
- 无法使用数据块笔记本。
- ttl 列不在 parquet 文件中,必须在复制时添加 activity
所以,我正在尝试使用 https://docs.microsoft.com/en-us/azure/data-factory/copy-activity-overview#add-additional-columns-during-copy 建议的附加列
这是我的设置:
我在管道中添加了一个参数,它被设置为 int 数据类型。
enter image description here
在源中添加附加列:
enter image description here
像这样的映射:
enter image description here
所以 ADF 将通过错误:“文档的 'ttl' 属性 不能是非数字类型(如果有的话)。,Source=Microsoft.DataTransfer.DocumentDbManagement”
我尝试了所有方法将ttl 转换为整数数据类型,但没有用。
我感觉 Azure 将所有 'additional columns' 的数据类型更改为字符串,即使您将其设置为 int.
请尽可能帮助我将 TTL 作为 int 插入 cosmos DB,非常感谢!
是的,即使您将其设置为 int,附加列的类型也会在源中更改为 String。
作为替代方案,您可以在 Azure 函数中创建一个 Cosmos DB 触发器并在其中添加 'TTL'。
我对 Azure 数据工厂将 TTL 插入 cosmos db 有点纠结:
要求: 来源:ADLS Gen2 镶木地板文件(不是 csv,必须是镶木地板) 目标:COMSMOS 数据库 需要将 paquet 文件中的所有记录添加到具有附加名称值对的 Comsmos DB 中,例如:“ttl”:7776000 业务需要 cosmos db 中的每条记录 90 天,容器级别的 TTL 设置为 2 年,但是,对于来自 ADLS parquet 的记录,它必须仅在项目级别设置 90 天。
这里有一些限制:
- 无法使用数据流,因为它不支持自托管集成运行时,并且使用 Azure IR 没有经过我公司的安全批准
- 无法引入其他组件,如 Synapse 或 SQL 服务器作为暂存服务器
- 无法使用数据块笔记本。
- ttl 列不在 parquet 文件中,必须在复制时添加 activity
所以,我正在尝试使用 https://docs.microsoft.com/en-us/azure/data-factory/copy-activity-overview#add-additional-columns-during-copy 建议的附加列 这是我的设置: 我在管道中添加了一个参数,它被设置为 int 数据类型。 enter image description here 在源中添加附加列: enter image description here 像这样的映射: enter image description here
所以 ADF 将通过错误:“文档的 'ttl' 属性 不能是非数字类型(如果有的话)。,Source=Microsoft.DataTransfer.DocumentDbManagement”
我尝试了所有方法将ttl 转换为整数数据类型,但没有用。 我感觉 Azure 将所有 'additional columns' 的数据类型更改为字符串,即使您将其设置为 int.
请尽可能帮助我将 TTL 作为 int 插入 cosmos DB,非常感谢!
是的,即使您将其设置为 int,附加列的类型也会在源中更改为 String。
作为替代方案,您可以在 Azure 函数中创建一个 Cosmos DB 触发器并在其中添加 'TTL'。