azure-data-factory - Azure 数据工厂 - 使用动态时间戳查询 Cosmos DB
问题描述
我想在 Cosmos DB 中创建和维护集合的快照。
定期,我只想从 Cosmos 中检索增量(新的或修改的文档)并将它们写入快照,快照将存储在 Azure 数据资源管理器集群中。
我希望使用文档的 _ts 成员来获取增量。换句话说,我将只获取 _ts 在某个范围内的记录。
范围将是时间窗口的范围,我在数据工厂中使用翻转窗口触发器获得。
问题是,如果我打印在查询中创建的动态时间戳,并将它们硬编码到查询中,它就可以工作。但是如果我让查询生成它们,我不会得到任何结果。
例如:
我正在使用这些值来模拟触发器的窗口范围。
我使用这个查询在 unix 时间创建时间戳。
我看到创建的时间戳是正确的。
如果我使用那些硬编码的时间戳运行我的查询,我会得到结果
但是,如果我使用刚刚创建这些时间戳的代码运行查询,我不会从查询中得到任何结果
这是创建时间戳的代码:
select
DateTimeToTimestamp('@{formatDateTime('2020-05-20T12:00:00.0000000Z','yyyy-MM
ddTHH:mm:ss.fffffffZ')}')/1000,
DateTimeToTimestamp('@{formatDateTime('2020-08-20T12:00:00.0000000Z','yyyy-MM
ddTHH:mm:ss.fffffffZ')}')/1000
有没有人知道可能是什么问题?
任何其他方式来实现这一点也是受欢迎的。
谢谢
编辑:我设法通过采用另一个更简单的选项来解决这个问题:
where TimestampToDateTime(c._ts*1000)> "@{formatDateTime(pipeline().parameters.windowStart,'yyyy-MM-ddTHH:mm:ss.fffffffZ')}"
解决方案
我们很高兴您解决了这个问题:
您设法通过采用另一个更简单的选项来解决此问题:
where TimestampToDateTime(c._ts*1000)> "@{formatDateTime(pipeline().parameters.windowStart,'yyyy-MM-ddTHH:mm:ss.fffffffZ')}"
c.ts
我认为第一个选项中的错误主要是由和之间的不同数据类型引起的DateTimeToTimestamp('@{formatDateTime('2020-05-20T12:00:00.0000000Z','yyyy-MM ddTHH:mm:ss.fffffffZ')}')/1000
。
推荐阅读
- java - 尝试检索 JSON 文件时,getResourceAsStream 使用 android 返回 null
- r - 读取位于R中同一目录中的多个csv文件
- java - JSONArray 中的 JSONArray 与 Java 中的向量
- mysql - COALESCE 没有按预期工作(mysql)
- javascript - 仅在用户在 React.js 中提供输入后才解决承诺
- sql - Sql 从同一个选择和表中获取不同的 AVG
- machine-learning - 价值迭代不收敛 - 马尔可夫决策过程
- java - I want to find the last occurrence of a value in an array and also return "-1" if no such number is found
- javascript - jQuery table rows won't render in within table element
- django - How to post data with HttpResponseRedirect in Django?