当前位置: 首页 > 知识库问答 >
问题:

使用Azure数据工厂复制活动更新Cosmos项目TTL

阎雪峰
2023-03-14

我需要将REST API中的数据上传到Cosmos DB,并维护特定时间间隔的项目级别TTL。

我使用ADF复制活动复制数据,但对于TTL,在源端使用了额外的自定义列,硬编码值为30。

注意到时间间隔(秒)更新为字符串而不是整数。因此失败,并出现以下错误。

详细信息 故障发生在“下沉”方面。错误代码=用户错误文档DB写错误,'类型=微软.数据传输.常见.共享.混合交付异常,消息=文档导入失败,由于违反某些 Cosmos DB 约束的无效文档:1) 文档大小不应超过 2MB;2) 文档的“id”属性必须为字符串(如果有),并且不得包含以下字符:“/”、“”、“?”、“#”;3) 文档的'ttl'属性不得为非数字类型(如果有),来源=微软。”

自定义列到cosmos DB之间的ttl映射

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

有什么建议吗?

共有1个答案

范玄裳
2023-03-14

是的,这就是复制活动中附加列的问题。即使您将其设置为int,它也会在源代码处更改为string。

可能的解决方法是在Azure函数中创建一个Cosmos DB触发器,并在其中添加“TTL”。

 类似资料:
  • 我是新的Azure数据工厂v2 我有一个文件夹,里面有两个文件。csv和F2。在blob存储中存储csv。 我创建了一个复制数据管道活动,用3个参数将数据从文件加载到azure DWH中的一个表中,并将其递归复制为false。 参数1:容器 参数2:目录 参数3:F1.csv 将上述参数用于复制数据活动时成功执行。 但数据是从两个文件加载的,只有一个文件作为活动的参数提供

  • 我在中有显示类别列表的片段,我想在用户单击类别项目时添加一个选项,应该开始一个新活动()其中包含一个显示文章列表的片段。 问题是,当我使用打开活动的方法Intent时,我会出现多个错误。 这是我的MainActivity2: 这是我把我的重定向: 这是我的日志:

  • 我目前正在使用Azure Cosmos DB,我正在尝试使用SQL查询更新容器中存在的所有项的属性,但我得到了一个错误,该错误显示“语法错误,不正确的语法靠近‘更新’”。有人能帮我吗?我想知道我是做错了还是Azure Cosmos SQL不支持“更新”功能。我使用的SQL查询是: 提前感谢!!!

  • 我不是MS专家--最近跳上了蔚蓝列车,如果我得到了一些错误的信息,我会提前道歉。 基本上需要在Azure的架构中使用Azure数据工厂(作为ETL/ELT工具)和Azure SQL数据库(作为存储)来输入BI输出功率BI。我的情况是这样的; 我有内部数据源,如Oracle DB、Oracle Cloud SSAS、MS SQL server DB 我希望有一个用于报告目的的MS云基础设施解决方案。

  • 我们有一个将文件复制到Azure文件服务器的外部源。文件大小约为10GB。我想在Azure文件服务器上使用Azure Data Factory完成文件复制后,立即将此文件复制到Azure Blob存储。供应商无法将此文件复制到Blob容器。有人能帮我配置什么类型的触发器吗。我可以手动复制,但我正在寻找是否可以实现自动化。我甚至不能安排这个活动,因为来自外部源的文件副本是随机的。 谢谢

  • 问题内容: 我已配置logstash.conf以动态插入数据库的数据,但问题是: 当我更改表的一行时,该行不会在索引中更新,因为我仅在sql_last_value之后插入新值,尽管我是关于触发器的,但我不确定该怎么做。 问题答案: 如果用于选择行,则不能这样做。您有2种选择, 每次都选择所有行,然后使用query将它们发送到ES ,根据您的情况,我认为这不是一个好选择。 创建一个新列,其中包含记录