2017-10-10 1 views
1

동일한 SSIS 패키지를 여러 번 실행하면 문제가 발생합니다. 각 하위 집합의 데이터를 처리하는 병렬 실행을 허용하려고합니다.SSIS의 상태/실행 ID

지금까지 상태 변수를 사용하려고 생각했지만 저장 위치를 ​​모른다.

하나의 옵션은 연결을 열린 상태로 유지하고 임시 테이블을 사용하여 작업 부하를 조정하는 것입니다. 그러나 유인물은 많은 편집 문제를 일으키며 유지 보수 할 수 없습니다.

패키지 또는 실행 범위의 현재 실행 ID를 식별하는 다른 방법이 있습니까? SSIS에서 지금까지 각 상태를 분할/분리하는 데 사용할 수있는 상태 (메모리에 있거나 다른 위치에 저장되어 있음)가 없습니다.

+0

어렵게 할 수 있습니다. workflowid 패키지 변수를 만든 다음 ssis-package에있는 각기 다른 흐름에 대해 선행 제약 조건을 설정하여 각 컨테이너에서 하나의 workflowid 만 사용하는지 확인하십시오. 그런 다음 서로 다른 작업 흐름을 통해 호출 할 수 있습니다. 서로 다른 작업 흐름이 서로 다른 방향으로 진행됩니다. – plaidDK

+0

아마도 이것이 XY 문제 일 수 있습니다. 여러 동시 실행 문제가있는 이유는 확실하지 않습니다. 어쩌면 실제 문제를 해결할 수있는 완전히 다른 방법이있을 수 있습니다. –

+0

@TabAlleman 동시에 병렬 실행을 허용하고 동시에 잠금을 줄이고 싶습니다. 즉, 패키지를 빠르게, 자주, 독립적으로 만들고 싶습니다. 어떻게해서든지 사형 집행을 파기 할 수 있다면 최적의 해결책이 될 것입니다. 물론 plaidDK가 제시하는 변수를 사용하여 여러 개의 패키지와 복사본을 가질 수 있지만 유지 관리 할 수는 없습니다. – Candide

답변

1

위의 내 의견에 기반하여 이것을 시도 할 수 있습니다. 나는 그것이 당신의 찾고있는 것이 무엇인지는 모르지만 어쩌면 그것은 당신에게 더 많은 힌트를 줄 수 있습니다.

나는 workflowid 1로 예제를 호출하려고합니다. 이것은 SQL 작업 에이전트 단계에서 변경할 수 있고 각 단계에서 매개 변수를 변경할 수 있으므로 fx에서 workflowid 1 및 workflowid 4를 실행하는 2 단계를 추가 할 수 있습니다. 그런 다음 제약 조건이 성공한 시퀀스 컨테이너 만 실행합니다. Create Package Parameter

만들기 패키지가 SQL 작업이 WorkflowID 받기 Create Package with local variable

편집 흐름

변수 패키지를 만들기 Setup SQL Task to get workflowID 변수 패키지에 Parametermapping 추가

setup Parameter Mapping

그것은 단지 하나 개의 ID가 공지 사항을 통해 전달할 수 있도록 Setup Resultset

당신의 선행 제약 조건을 확인 WorkflowIDrun라는 지역 변수에 결과 집합을 가져 오기 : 당신은 parentworkflowid 년대를 추가 할 수 있습니다 당신이 할 수 있도록 같은 논리의 일부가 필요한 경우 시퀀스 컨테이너 내부의 다양한 흐름을 제공합니다. Edit your precedence constraints

최종 결과 패키지는 Package run with workflowid 1

대리인의 새로운 SQL 작업을 생성 workflowid 1 실행될 때. 필요한 단계 추가 Notice; 나는 workflowid 1, 2 자르기위한 두 단계를 작성하고

SQL Job setup

가 그때 내 단계를 편집하고 올바른 값으로 변수를 수정 삭제합니다. 워크 플로 ID는 자르기의 경우 1, 삭제할 경우에는 워크 플로 ID 2가됩니다. 사용자의 필요에 따라 다른 작업을 수행 할 수도 있습니다. Step setup with correct workflowID

+0

이 사이트의 이미지 부분은 atm이라고 생각합니다. 링크 만 작성하고 액세스 할 수 없습니다. – plaidDK

+0

우리는 연결 문자열을 대체하기 위해 프로젝트 매개 변수를 사용하고 있지만이 매개 변수를 실행 ID로 사용하는 흥미로운 방법입니다. 내 경우에는 워크 플로가 동일하므로 매번 다른 컨텍스트에서 실행해야합니다. 따라서 병렬 처리 수준은 구성된 SQL 작업 수에 기반합니다. 감사! – Candide