从 cosmos db 中查询特定时间范围的数据,并通过 azure data factory 存储到 sql 数据库中

Query a specific time range data from cosmos db and store it in sql database via azure data factory

我正在使用 Azure Data Factory V2 并希望将作为文档存储的 json 数据从 Azure cosmos db 复制到 azure sql table,使用 SQL查询。

情况: 我只想从 Cosmos db 查询最后一小时 json 个文件并将其存储在 sql table 中。 为此,我在我的数据工厂中创建了一个新触发器,它每 1 小时重复一次 sql 查询。

问题: 起初我写了一个查询,从 cosmos db 中读取所有数据并且它工作正常,但我只想查询在过去一小时内存储在 cosmos db 中的数据。

我需要什么? 在 Sql 中,如何编写查询以获取 cosmos 数据库中最近一小时内存储的新文件?

您可以在您的 cosmos 数据库集合中定义一个 udf。

function getLastHourTime(){
    var date = new Date();
    var a = date.setHours(-1);
    return a;
}

将您的 sql 修改为:

SELECT * FROM c where c.time >= udf.getLastHourTime()

注意:udf.getLastHourTime() returns Unix time stamp 需要匹配格式

希望对您有所帮助。