2017-01-04 1 views
0

SSIS를 사용하여 대리 키 (sg)가있는 데이터웨어 하우스에 대한 스타 스키마를 만듭니다.SSIS 대리 키 증분

내 처리는 다음과 같이 진행됩니다

  1. 찾기 최대 SG (사용 SQL) 데이터 흐름에서

  2. :> 소스 - 데이터 최대 SG에 +1을 추가 # 스크립트 C -> 쓰기 목적지까지.

이제 고정 된 크기로 문제없이 작동합니다. 추가 된 모든 행은 순차적으로 sg를 얻습니다.

나는 느린 변경 차원을 사용하고 역사적으로 다음 내가 할 행 업데이트 할 때 : 지금

sg_key | name | city | current_row 
1  | a | X | true 
2  | b | Y | true 
3  | c | Z | false 
4  | d | H | true 
7  | c | T | true 

을 내가 틀렸다면, 정정 해줘하지만 난 항상 SSIS는 한 번에 하나 개의 행을 추진하고있다 생각 모든 흐름 작업을 통해,하지만 처음에는 모든 행에 대해 모든 sg_keys를 생성 한 다음 흐름을 통해 업데이트 된 행을 보냅니다.

SSISworks의 잘못된 방식을 이해하고 있습니까? 어떻게 해결할 수 있습니까?

건배, 마크.

+0

는 [SCD (https://msdn.microsoft.com/en-us/library/ms141715.aspx)에 통과 한 후 키를 생성하고 있기 때문에,이 가장 가능성 C# 로직의 결과. 이 코드는 행이 새로운 것이 아니더라도 각 행에 대해 고유 한 키를 생성합니까? Manage SKeys는 정말 고통 스러울 수 있습니다. 나는 @ArnaudGastelblum에서 조언을 두 번째 것이다. [SQL Server가이 문제를 처리하도록] (https://msdn.microsoft.com/en-us/library/ms186775.aspx). –

+0

코드는 모든 행에 대해 새 sg를 생성합니다. 그러나 변경되지 않은 행이 대상 테이블에 다시 저장되지 않으므로 최대 sg 키는 업데이트 된 행이 올 때까지 동일하게 유지됩니다. – Mark2Bra

+0

코드를 보여줄 수 있습니까? 귀하의 파이프 라인이 기본 패턴을 따르고 있다고 가정합니다 : 데이터 흐름 태스크 (소스 >> 스크립트 태스크 >> 대상). 그게 맞습니까? –

답변

3

SQL Server를 대상으로 사용하는 경우 왜 IDENTITY 열을 사용하지 않았습니까? 새 행을 삽입 할 때

https://msdn.microsoft.com/en-us/library/ms186775.aspx

(대신 C#을 스크립트의) 정체성은 자동으로 열을 증가합니다. 이 열을 업데이트하지 않으면 값이 변경되지 않습니다.

아너

관련 문제