Запуск конвейера фабрики данных Azure на основе параметров - PullRequest
0 голосов
/ 07 сентября 2018

Я использую ADF для копирования данных из Cosmos DB в Azure Data Lake. Я запланировал его запускать каждые 24 часа. Поскольку ADF будет копировать все данные из источника в приемник, я использую параметры windowStart и windowEnd для фильтрации данных. Фильтрация выполняется по метке времени, которая находится внутри БД Cosmos Document.

Чтобы запустить конвейер, мне нужно вручную указать время windowStart и windowEnd UTC, что невозможно. Есть ли способ автоматизировать это? То, что я хочу, это установить время 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 день на запланированное время?

1 Ответ

0 голосов
/ 08 сентября 2018

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

"name": "trigger1",
"properties": {
    "runtimeState": "Stopped",
    "pipelines": [
        {
            "pipelineReference": {
                "referenceName": "CopyPipeline_9ca",
                "type": "PipelineReference"
            },
            "parameters": {
                "windowStart": "@adddays(trigger().scheduledTime, -1)",
                "windowEnd": "@trigger().scheduledTime"
            }
        }
    ],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...