2010-03-30 4 views
0

ssis pacakge dataflows를 사용하여 데이터베이스 테이블에 작성해야하는 콘텐츠가 xml 파일에 있습니다.SSIS (SQL Server 통합 서비스) xml 데이터 흐름

xml 소스 및 oledb 대상을 사용 중입니다.

내 이슈는 이제 여러 개의 출력을 생성합니다. (event, produt, offer, form) 그러나 하나의 데이터 행에 모두 쓸 필요가 있습니다 (2 개의 제품이 이벤트에 있다면 하나 이상) 데이터베이스에.

그러나이 다중 출력을 사용하고 이벤트에 대해 단일 행을 만드는 방법을 모르겠습니다.

나는이 주제에 관한 수많은 기사를 읽었지만 결정을 내릴 수 없었다.이 일을 올바르게 수행하는 방법은 무엇인가.

1) xml 소스? (내가 이것을 어떻게 사용하면 여러 출력을 병합합니까?)

2) 또는 xml 객체를 사용하여 DB에 읽고 쓰는 스크립트 작업.

또는 다른 새로운 기능이 있습니까?

몇 가지 해결책을 제공해주십시오. 긴급합니다.

XML 샘플 파일

<root> <event id="1000"><sponsor id="126" type="1">ABc.</sponsor><start_date>2009-06-07</start_date> <Some_date>2010-04-30</some_date><valid_region id="8">region</valid_region> <limit>test</limit> <contact_info>1 contact</contact_info> <offer id="10"> <offer_text>offertest</offer_text> <product id="11"><name>product1</name> </product><product id="12"><name>product1</name> </product></offer><form id="34"> <form_size>187</claim_form_size> </form></event</root> 

감사

SNA

+0

대상 테이블은 어떻게 생겼습니까? – grapefruitmoon

답변

0

완전히 다른 접근 방식은 XML 데이터 형식 열에서 테이블로 XML 문자열을 작성하는 것입니다. 그런 다음 xml_preparedocument 및 OPENXML을 사용하여 데이터베이스의 XML을 쿼리 할 수 ​​있습니다. 이 파일을 정기적으로 사용하여 XML 파일을 다운로드하고 현재보고 싶은 노드 만 추출합니다. 따라서 지금 당장 노드를 만들지 않고도 필요할 때 더 많은 노드를 추출 할 수 있습니다. 또한 ETL을 쉽게 분할하여 적절한 대상과 다른 대상을로드 할 수 있습니다. 예를 들어 XML의 일부가 기본적으로 헤더이고 XML의 나머지 부분이 기본적으로 세부 트랜잭션 인 경우 한 테이블에 헤더를 추출하고 다른 테이블에 세부 정보를 추출하는 저장 프로 시저를 작성할 수 있습니다. 이 작업을 수행하는 방법에 대한 자세한 내용을 알고 싶으면 샘플 코드를 제공 할 수 있습니다.

관련 문제