2015-09-22 4 views
3

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

А вот мой источник стола

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

ответ

1

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

1

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

4

Я столкнулся с этим, пытаясь создать трубопровод для запуска ежедневно, и думал, что я мог бы использовать «anchorDateTime» свойство доступности, и я был в состоянии сделать это, но вы должны установить "frequency" свойства раздела "availability" в набор данных до самого низкого уровня детализации, который вы хотите указать. То есть, если вы хотите что-то запустить в 6: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 = 10/20/2014 6 утра означает, что планирование будет происходить каждый день в 6 часов утра.

Это на самом деле не так, и две строки позже он говорит:

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

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

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

+0

Это хорошо для временных интервалов, длина Безразлично» t, но не может быть жизнеспособным для чего-то вроде «Месяца», так как вам нужно указать количество дней в качестве интервала. –

+0

Вместо того, чтобы работать с якорем, вы также можете работать со свойством offset для доступности. Я считаю, что принятие ответа TheSchmoe и добавление смещения обеспечит решение. См. Также: [Свойства доступности набора данных] (https://azure.microsoft.com/en-us/documentation/articles/data-factory-create-datasets/#Availabilit) –

1

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

установка AzureDataFactoryPipelineActivePeriod -DataFactoryName $ DataFactoryName -PipelineName $ PipelineName -StartDateTime $ DateInPast -EndDateTime $ DateOneDayLessInPast -ResourceGroupName $ ResourceGroupName -Force

+0

Да, это был мой случай. Просто для информации нет необходимости менять дату через powershell, можно просто отредактировать конвейер JSON на портале. – psfinaki

Смежные вопросы