使用unix-timestamp从Data Factory过滤DocumentDb集合

时间:2017-04-30 07:49:05

标签: unix-timestamp azure-cosmosdb azure-data-factory

我正在尝试以增量方式从documentDB集合中选择一些文档,因此每个切片都将根据集合的“timeCreated”字段进行选择。 问题是这个字段(timeCreated)是自纪元(1970-01-01)以来的秒数,我找不到合适的格式here

作为项目的假设,我们正在使用Azure Portal并且没有任何编程接口,因此我能想到的唯一解决方案是在DocumentDB中创建UDF,将UD字段转换为dateTime字段,但任何方法都将只涉及documentDB sql要好得多。

这是documentDB中的日期数据:

i._key == @key

这是在管道中使用slice的startDate和endDate的方法(来自Azure文档):

"serverTimestamp": {
      "$date": 1446130451707
    },

除了UDF之外,还有另一种方法可以将WindowStart / WindowEnd格式化为秒吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

除了UDF之外,还有另一种方法可以将WindowStart / WindowEnd格式化为秒吗?

正如您所提到的,我们可以通过UDF功能轻松实现。然后我们可以在sql中使用该函数。因为DocumentDB现在支持字符串和数字的范围索引。在我的选项中,我们可以格式化我们想要过滤的字段而不是格式化WindowStart / WindowEnd到秒。以下是详细的测试步骤:

1.我们需要正确设置indexes才能正常工作。

enter image description here

2.使用Azure门户创建UDF

function epochToDate (ts) { 
   return new Date(ts*1000);
}

注意: ts vaule是秒,所以需要转换为毫秒

enter image description here

3.从Azure数据工厂copydata向导中验证它

enter image description here