반응형

Default Value 지정된 테이블에 Attunity Provider 데이터 입력할 경우

Microsoft Premier Field Engineer

한대성

 

Attunity Provider SQL Server 2008 Enterprise Edition 사용할 경우에 무료로 제공되는 3rd party Provider이다. 기존의 OLE DB 또는 .NET 대상에 비해 Bulk Insert 처리를 있다는 장점이 있다. 실제 고객 사례에서 기존의 OLE DB 대상을 사용했을 때에 비해 Attunity Provider 사용했을 때가 수십 빠른 속도를 보인 적도 있다. (OLE DB 대상 – 22 소요, Attunity 대상 – 27 소요)

하지만, Oracle 대상 테이블에 Default 열이 지정되어 있는 경우에는 고려해야 사항이 있다.

 

 

테스트 환경

다음과 같이 Oracle Default Value 지정된 테이블을 준비한다.

 

BIDS에서 데이터 흐름 작업을 추가한 , 다음과 같이 간단한 예제 데이터 원본을 생성한다.




 

TEST 1 – Oracle Attunity 대상을 사용하고 Fast Load 옵션을 사용한 경우




 

실행 결과


è 
Default 값이 설정된 Not Null 열에 데이터를 입력하려고 경우, 아래와 같은 에러가 발생함

[Oracle 대상 [91]] Error: 로드 또는 종료 단계에서 빠른 로드 오류가 발생했습니다. Class:       Logical

Status:    0              Code:     0

Note:     

At:           ORAOPRdrpthEngine.c:1128

Text:       Conversion error on column '"DEFAULTCOL"'.              ORA-01400: NULL (DEFAULTCOL) 안에 삽입할 없습니다

 

 

TEST 2 – Oracle Attunity 대상을 사용하고 Fast Load 옵션을 사용하지 않는 경우




è 
동일한 에러 발생 – Attunity Provider 사용하는 경우, Fast Load 사용 여부와 상관없이 Not Null 열에 대한 검사 작업을 먼저 수행하기 때문에 이와 같은 에러가 발생함

 

 

TEST 3 – OraOledb.Oracle 이용한 OLE DB 대상을 사용한 경우


è 
정상 처리됨. Attunity Provider와는 달리, 단위 처리 방식으로 수행됨



 

 

해결 방법

1.       파생열 변환을 이용한 Default 추가

- 방법의 경우, Default Column 대해 열을 지정해줘야 하는 단점은 있지만 Attunity Provider 이용한 Bulk Insert 작업을 수행할 있다는 장점이 있다.

a.        파생열 변환(Derived Column) 추가한 , 데이터 원본과 연결한다.

b.       파생열 변환 속성을 다음, 아래와 같이 Default 입력할 값을 설정한다. , 데이터 타입을 맞추는 것이 필요하다. (Type Casts 문을 이용)


c.        다음과 같이, Default Column 대해서도 매핑을 설정한다.

 



 

 

2.       임시 테이블 사용

-          MSSQL에서 Oracle 임시 테이블에 Bulk Insert 처리한 , Oracle DB 내에서 테이블로 이관하는 방식. 임시 테이블 공간을 차지하지만, 처리 성능이 좋은 방법이다.

a.        Oracle Default Value 지정되지 않은 임시 테이블을 생성

b.       MSSQL에서 Attunity Provider 이용해서 Bulk Insert 처리

c.        SSIS에서 SQL 실행 작업을 이용해서 Oracle 임시 테이블에서 테이블로 Insert하는 SQL 쿼리를 실행

 

3.       Attunity Provider 대신 OLE DB Provider(MSDAORA or OraOLEDB) 사용해서 처리

-          추가적인 테이블 생성이나 변경 없이 기존 테이블을 그대로 사용할 있다는 장점은 있지만, 데이터 양이 많을 경우 처리 속도가 늦을 있다.

 

권장 방식은 1 또는 2번임

--
반응형

+ Recent posts