Фабрика данных Azure "Ожидает проверки"

Я создал несколько конвейеров в своей службе фабрики данных Azure для перемещения данных из таблиц SQL в таблицы Azure. Но они никогда не бегут. Вместо этого исходные наборы данных остаются pending validation даже после того, как я нажму run кнопка на портале Azure. Я уже проверил external свойства, которые все установлены как true, Интересно, есть ли другие возможные причины?

И вот мой источник таблицы

{
    "name": "TableSrc",
    "properties": {
        "published": false,
        "type": "AzureSqlTable",
        "linkedServiceName": "LinkedService-AzureSql",
        "typeProperties": {
            "tableName": "myTable"
        },
        "availability": {
            "frequency": "Month",
            "interval": 1
        },
        "external": true,
        "policy": {}
    }
}

4 ответа

Я столкнулся с этим, пытаясь настроить конвейер для ежедневной работы, и подумал, что могу использовать свойство доступности "anchorDateTime", и я смог сделать это, но вы должны установить "frequency" собственность "availability" раздел в наборе данных с самым низким уровнем детализации, который вы хотите указать. То есть, если вы хотите, чтобы что-то выполнялось в 18:30 по Гринвичу каждый день, ваш набор данных должен выглядеть следующим образом (потому что вы указываете время на уровне минут):

"availability": {
    "frequency": "Minute",
    "interval": 1440,
    "anchorDateTime": "2016-01-27T18:30:00Z"
}

и "scheduler" Часть конвейера должна быть примерно такой:

"scheduler": {
    "frequency": "Minute",
    "interval": 1440,
    "anchorDateTime": "2016-01-27T18:30:00Z"
}

Это будет выполняться каждые 1440 минут (т.е. каждые 24 часа). Я надеюсь, что это поможет кому-то еще, поскольку документация Microsoft противоречит самой себе (или, по крайней мере, вводит в заблуждение):

Для ежедневного расписания, если вы установите anchorDateTime = 20.10.2014, 6:00 означает, что планирование будет происходить каждый день в 6:00.

На самом деле это не так, и через две строки написано:

Если в AnchorDateTime есть детали даты, которые более гранулированы, чем интервал, то более гранулированные части будут игнорироваться. Например, если интервал является часовым (частота: час и интервал: 1) и AnchorDateTime содержит минуты и секунды, то части AnchorDateTime в минутах и ​​секундах будут игнорироваться.

Эта вторая часть - то, с чем, я думаю, мы сталкиваемся, и почему я предложил стратегию выше.

ссылка: https://msdn.microsoft.com/en-us/library/azure/dn894092.aspx

У меня есть причина... Он будет ждать начала следующего округленного месяца. Это означает, что он начнется в первый день следующего месяца, и нет никакой возможности запустить его вручную.

Что ж, если вы хотите, чтобы ваш конвейер работал, обновите активные периоды до прошлых дат. Вы можете сделать это с помощью приведенной ниже команды powershell

set-AzureDataFactoryPipelineActivePeriod -DataFactoryName $DataFactoryName -PipelineName $PipelineName -StartDateTime $DateInPast -EndDateTime $DateOneDayLessInPast -ResourceGroupName $ResourceGroupName -Force

У меня была такая же проблема. Оказывается, я не указал время начала конвейера по UTC.

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