Запуск конвейера фабрики данных Azure на основе параметров

Я использую 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 день запланированному времени?

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
2 242
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы используете триггер расписания, передавайте в конвейер следующие значения. Используйте функцию добавочные дни в запланированное время. Вы можете использовать пользовательский интерфейс ADF, чтобы помочь вам отредактировать / создать триггер.

"name": "trigger1",
"properties": {
    "runtimeState": "Stopped",
    "pipelines": [
        {
            "pipelineReference": {
                "referenceName": "CopyPipeline_9ca",
                "type": "PipelineReference"
            },
            "parameters": {
                "windowStart": "@adddays(trigger().scheduledTime, -1)",
                "windowEnd": "@trigger().scheduledTime"
            }
        }
    ],

Спасибо. Мне удалось реализовать его, изменив исходный запрос следующим образом: 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?

MAK 10.09.2018 15:54

pipeline (). TriggerTime - системная переменная. Если все работает хорошо, вам не нужно добавлять свои собственные параметры, как в моем ответе.

Fang Liu 11.09.2018 04:47

@MAK: Примечание: на самом деле вам не нужно запускать его через функцию formatDateTime, поскольку addhours имеет поставщик формата, например: «DateToProcess»: «@adddays (trigger () .duledTime, -5, 'yyyy-MM-dd') ",

Rodney 02.05.2019 05:47

Другие вопросы по теме