Я использую ADF для копирования данных из Cosmos DB в Azure Data Lake. Я запланировал запускать его каждые 24 часа. Поскольку ADF копирует все данные из источника в приемник, я использую параметры windowStart и windowEnd для фильтрации данных. Фильтрация выполняется по метке времени, которая находится внутри Cosmos Document DB.
Чтобы запустить конвейер, я должен вручную указать время в формате UTC для windowStart и windowEnd, что невозможно. Есть ли способ это автоматизировать? Я хочу установить время windowStart на (запланированное время - 1 день) и windowEnd time как время расписания. Таким образом я могу получить все данные за предыдущий день.
Сгенерированный запрос:
select * from c
where c.data.timestamp >= '@{formatDateTime(pipeline().parameters.windowStart, 'yyyy-MM-ddTHH:mm:ssZ' )}'
AND c.data.timestamp < '@{formatDateTime(pipeline().parameters.windowEnd, 'yyyy-MM-ddTHH:mm:ssZ' )}'
Как я могу установить для параметров windowStart и windowEnd динамическое значение, равное -1 день запланированному времени?
Если вы используете триггер расписания, передавайте в конвейер следующие значения. Используйте функцию добавочные дни в запланированное время. Вы можете использовать пользовательский интерфейс ADF, чтобы помочь вам отредактировать / создать триггер.
"name": "trigger1",
"properties": {
"runtimeState": "Stopped",
"pipelines": [
{
"pipelineReference": {
"referenceName": "CopyPipeline_9ca",
"type": "PipelineReference"
},
"parameters": {
"windowStart": "@adddays(trigger().scheduledTime, -1)",
"windowEnd": "@trigger().scheduledTime"
}
}
],
pipeline (). TriggerTime - системная переменная. Если все работает хорошо, вам не нужно добавлять свои собственные параметры, как в моем ответе.
@MAK: Примечание: на самом деле вам не нужно запускать его через функцию formatDateTime, поскольку addhours имеет поставщик формата, например: «DateToProcess»: «@adddays (trigger () .duledTime, -5, 'yyyy-MM-dd') ",
Спасибо. Мне удалось реализовать его, изменив исходный запрос следующим образом: select * from c, где c.data.timestamp> = '@ {formatDateTime (addhours (pipeline (). TriggerTime, -24),' yyyy-MM-ddTHH: mm : ssZ ')}' И c.data.timestamp <'@ {formatDateTime (pipeline (). TriggerTime,' yyyy-MM-ddTHH: mm: ssZ ')}' Я еще довольно рано начал работать с ADF. Должен ли быть реализован документ JSON, образец которого вы дали, при использовании Powershell или .net?