Фабрика данных 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.