2008-10-08 5 views
1

나는 문제는 데이터 관리하는 부모/자식 관계가이고, 전체 데이터에로드 된 데이터 및 다양한 변형이 - 최저동일한 데이터 pipleline 내의 다른 행에서 값을 가져 오는 방법은 무엇입니까?

각 행 (열 이름으로 구성된다)을 갖 예에 의해 설명은

row_key parent_row_key row_name parent_row_name 

일부 행 row_key == parent_row_key (자신의 상위) 일부 행을 다른 행 관련 (25 행, 예를 들면 44 행하기 런트)를 갖는다.

이 경우 행 25는 44 행의 부모입니다. 행 44의 parent_row_name에 25 행의 행 이름을 넣어야합니다. 값의 파이프 라인에있는 데이터를 어떻게 쿼리합니까?

답변

3

멀티 캐스트를 사용하여 데이터를 분할 한 다음 자체적으로 병합 조인을 수행 할 수 있습니까?

+0

(당신이 적절한 가능한 인덱스가 특히) - 제품의 가장 어려운 부분은 문제를 해결하기 위해 그것을 사용하는 방법을 학습합니다. – WIDBA

+0

SSIS에 가져 오기 전에 쿼리를 수행하는 시스템을 얻는 것이 더 쉬울 것이라는 것은 말할 나위도 없을 것입니다. 그러나 귀하의 케이스에 적절한 것인지 묻지 않을 것이라고 생각합니다. – piers7

+0

올바른 - 데이터를 유지 한 다음 몇 가지 간단한 SQL 작업을 통해 분석을 수행해야합니다. - 적어도 제품을 더 많이 사용하기까지는. – WIDBA

0

데이터베이스의 임시 테이블, 원시 파일 대상 또는 레코드 세트 대상 (데이터 집합의 크기에 따라 다름)에 데이터를 쓸 수 있습니다. 그런 다음 데이터를 다시 실행하고 임시 데이터를 쿼리하여 올바른 부모를 찾을 수 있습니다.

0

Macola (Exact Software)가 거래를 처리하는 것처럼 들립니다. 해당 상황에서 거래가 표에 추가되며 행에 원래 거래에 대한 참조가 포함됩니다. 예를 들어 원래 거래가 1 월에 구매되었고 2 개월 내에 결제가 이루어진 경우 2 월 지급에는 부모를 지칭하는 열의 1 월 지급액의 거래 번호 외래 키 관계가 없으므로 각 초기 트랜잭션에는 시스템의 원장간에 이동할 수있는 GUID가 제공됩니다.

0

당신이 말하는 것처럼

나는 데이터가로드하고 완전한 데이터에 다양한 변환이

나는 당신이 이미 임시 또는 준비 테이블에서 사용할 수있는 모든 데이터를 가정 할 수있다? 그렇다면 단순히 필드의 업데이트를하면 내가 추측하는 속임수를 수행해야합니까? 스테이징 테이블에서 모든 정보를 사용할 수 없다고 가정하면 스테이징 테이블에서 값을 계단식으로 검색 한 다음 아무것도 발견되지 않으면 실제 테이블에서 계단식 검색을 수행 할 수 있습니다. 하나의 업데이트에서이 작업을 수행하면 행별로 쉽게 수행 할 수 있습니다. 확실히 시도 가치가 가로수

UPDATE staging_table 
    SET parent_row_name = COALESCE(new.row_name, old.row_name, '#N/A#') 
    FROM staging_table upd 
    LEFT OUTER JOIN staging_table new 
       ON new.row_key = upd.parent_row_key 
    LEFT OUTER JOIN destination_table old 
       ON old.row_key = upd.parent_row_key 
관련 문제