繁体   English   中英

使用Cosmos作为源获取Azure Data Factory中时间戳的最新值

[英]Get Last value of timestamp in Azure Data Factory with Cosmos as source

我的管道有2个活动用于该测试。 查找活动和存储过程,它们仅获取查找的输出,然后将其用作执行的参数。

我想在正在编写的查询中获得_ts字段(Comos DB Unix时间戳)的最大值。

在此处输入图片说明

这是我对源的查询:

select max(c._ts) AS UnixTimestamp  from c 
where udf.convertTime(c._ts) >= '@{formatDateTime(addhours(pipeline().TriggerTime, -1), 'yyyy-MM-ddTHH:mm:ssZ' )}' 
AND udf.convertTime(c._ts) < '@{formatDateTime(pipeline().TriggerTime, 'yyyy-MM-ddTHH:mm:ssZ' )}'

当我调试时,这是翻译后的输入:

{
    "source": {
        "type": "DocumentDbCollectionSource",
        "query": "select max(c._ts) AS UnixTimestamp  from c \nwhere udf.convertTime(c._ts) >= '2018-11-06T18:19:56Z' \nAND udf.convertTime(c._ts) < '2018-11-06T19:19:56Z'",
        "nestingSeparator": "."
    },
    "dataset": {
        "referenceName": "SourceComosDB",
        "type": "DatasetReference",
        "parameters": {}
    },
    "firstRowOnly": false
}

查找活动的输出结果为:

{
    "count": 18,
    "value": [
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {},
        {}
    ],
    "effectiveIntegrationRuntime": "DefaultIntegrationRuntime (East US 2)"
}

因此不会执行该存储的过程。

如何获取查询中_ts的最大值?

我测试了您的代码,但未重现您的问题。

我的示例代码:

在此处输入图片说明

SQL查询活动输出:

在此处输入图片说明

SQL查询活动输出:

在此处输入图片说明

一件事,如果您使用MAX查询,它不能输出18值,应该只是一个值。

另一件事,您应该在cosmos db查询编辑器中执行SQK,以查看是否有任何结果与过滤器匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM