2017-03-28 2 views
1

데이터 팩토리의 예정된 파이프 라인 실행 순서에 문제가 있습니다. 다음과 같이파이프 라인의 데이터 공장 실행 주문

내 파이프 라인은 다음과 같습니다 작업 1작업이 마지막으로 작업 3 :

{ 
    "name": "Copy_Stage_Upsert", 
    "properties": { 
     "description": "", 
     "activities": [ 
      { 
       "type": "Copy", 
       "typeProperties": { 
        "source": { 
         "type": "BlobSource" 
        }, 
        "sink": { 
         "type": "SqlDWSink", 
         "writeBatchSize": 10000, 
         "writeBatchTimeout": "00:10:00" 
        } 
       }, 
       "inputs": [ 
        { 
         "name": "csv_extracted_file" 
        } 
       ], 
       "outputs": [ 
        { 
         "name": "stage_table" 
        } 
       ], 
       "policy": { 
        "timeout": "01:00:00", 
        "retry": 2 
       }, 
       "scheduler": { 
        "frequency": "Hour", 
        "interval": 1 
       }, 
       "name": "Copy to stage table" 
      }, 
      { 
       "type": "Copy", 
       "typeProperties": { 
        "source": { 
         "type": "SqlDWSource", 
         "sqlReaderQuery": "SELECT * from table WHERE id NOT IN (SELECT id from stage_table) UNION ALL SELECT * from stage_table" 
        }, 
        "sink": { 
         "type": "SqlDWSink", 
         "writeBatchSize": 10000, 
         "writeBatchTimeout": "00:10:00" 
        } 
       }, 
       "inputs": [ 
        { 
         "name": "stage_table" 
        } 
       ], 
       "outputs": [ 
        { 
         "name": "upsert_table" 
        } 
       ], 
       "policy": { 
        "timeout": "01:00:00", 
        "retry": 2 
       }, 
       "scheduler": { 
        "frequency": "Hour", 
        "interval": 1 
       }, 
       "name": "Copy" 
      }, 
      { 
       "type": "SqlServerStoredProcedure", 
       "typeProperties": { 
        "storedProcedureName": "sp_rename_tables" 
       }, 
       "inputs": [ 
        { 
         "name": "upsert_table" 
        } 
       ], 
       "outputs": [ 
        { 
         "name": "table" 
        } 
       ], 
       "scheduler": { 
        "frequency": "Hour", 
        "interval": 1 
       }, 
       "name": "Rename tables" 
      } 
     ], 
     "start": "2017-02-09T18:00:00Z", 
     "end": "9999-02-06T15:00:00Z", 
     "isPaused": false, 
     "hubName": "", 
     "pipelineMode": "Scheduled" 
    } 
} 

단순화하기 위해 내가 하나 개의 파이프 라인이 세 가지 간단한 작업과 함께라고 한 것을 상상한다.

시나리오 파이프 (A)의

한 실행 예정.

그것은 실행 :

작업 1 - 파이프 라인 (A)의

두 개 이상의 실행이 실행 될 예정> 작업 3

시나리오 B -> 작업 2.

그것은 실행 등 :

먼저 예약 된 파이프 라인 작업 1 -> 두 번째 예약 된 파이프 라인 작업 1 -> 우선 예약 파이프 라인 작업 2 -> 두 번째 예약 된 파이프 라인 작업 2 -> 우선 예약 파이프 라인 작업 2 -> 우선 예약 파이프 라인 작업 3 -> 두 번째 예약 된 파이프 라인 작업 3.

가능 실행과 두 번째 시나리오 :

먼저 예약 된 파이프 라인 작업 1 -> 우선 예약 파이프 라인 작업 2 -> 우선 예약 파이프 라인 작업 3, 두 번째 예약 된 파이프 라인을 작업 1 -> 두 번째 예정된 파이프 라인 작업 2 -> 두 번째 예정된 파이프 라인 작업 3

즉, 두 번째 파이프 라인이 시작되기 전에 첫 번째 예정된 파이프 라인을 완료해야합니다..

미리 감사드립니다.

답변

0

가능합니다. 그러나 종속성 동작을 적용하고 설명하는대로 체인을 만드는 데는 가짜 입력 및 출력 데이터 집합이 필요합니다. 그래서 가능하지만, 더러운 해킹!

이것은 훌륭한 솔루션은 아니며 두 번째 파이프 라인의 출력/다운 스트림 데이터 세트가 첫 번째 파이프 라인과 다른 시간 간격을 갖는다면 복잡해집니다. 이것을 테스트하고 이해하는 것이 좋습니다.

정말 ADF는 사용자가 원하는대로 작동하도록 설계되지 않았습니다. 아니요 SQL 에이전트 작업의 단계와 같은 작업을 처리하는 도구입니다. ADF는 스케일 및 병렬 작업 스트림 용입니다.

Microsoft 사람들이 속삭이는 소리에서 알 수 있듯이 곧 ADF에서 더 많은 이벤트 기반 스케줄링이 제공 될 것입니다. 그러나 나는 확실히 모른다.

희망이 도움이됩니다.

+0

해킹이라고 생각하지만 예제를 게시 할 수 있습니까?나는 그것이 어떻게 생겼는지 짐작하고있다. 그러나 정보통의 의견을 듣는 것이 좋을 것이다. 지금까지 시도한 모든 것은 실패했습니다. – SteveWilkinson

관련 문제