본문 바로가기

ETL Tools/Oracle Data Integrator

XML 데이터 서버 생성하기

 

XML 데이터 서버 로컬 네트워크를 통해 액세스할 있는 XML 파일에 대응합니다.

XML 파일은 Sunopsis XML Driver (JDBC Edition) 통해 액세스됩니다. JDBC 드라이버는 JDBC 통해 SQL 쿼리를 가능하게 하는 메모리에 저장된 Schema에서 관계형 구조로 XML 파일 계층 구조를 로드합니다. 또한 이것은 XML 파일에서 관계형 구조를 다시 언로드할 있습니다.

선결조건

JDBC 구성

XML 파일은 Sunopsis XML Driver (JDBC Edition) 통해 액세스됩니다.

XML Sunopsis JDBC 드라이버

XML Sunopsis JDBC 드라이버는 Sunopsis 함께 설치되며, 실행하기 위한 라이센스가 필요합니다. 라이센스 파일 (jdbcxkey.xml) Sunopsis 설치 폴더의 /drivers 하위 디렉토리로 복사되어야 합니다. 파일을 설치한 , 라이센스 파일이 고려되도록 Sunopsis 재 시작해야 합니다.

연결 정보

시스템 Administrator에게 다음 정보를 요청해야 합니다.

·         XML 파일과 관련된 DTD 파일 위치

·         XML 파일 위치

·         XML 파일의 루트 요소의 이름

데이터 서버 생성하기

XML 데이터 서버를 생성하려면,

1.       Topology Manager 연결하십시오.

2.       트리에서 Topology > Physical Architecture > Technologies > XML 선택하십시오.

3.       오른쪽 마우스 버튼을 클릭하고, 데이터 서버 삽입 선택하십시오.

4.       정의 탭에서 다음 필드를 작성하십시오.

  • 이름: Sunopsis에서 나타나는 것과 같은 데이터 서버의 이름.
  • 사용자/비밀번호: 여기에서는 사용 안됨.

5.       JDBC 탭에서 다음 필드를 입력하십시오.

  • JDBC Driver: com.sunopsis.jdbc.driver.xml.SnpsXmlDriver
  • JDBC URL: jdbc:snps:xml?[property=value&property=value...]

JDBC 드라이버 속성

매개변수

비고

f

<XML File location>

UNC 서식의 XML 파일 위치 (상대적 또는 절대적). 경로 이름에는 슬래시 "/" 사용해야지, 파일 경로에 백슬래시 "\" 사용하지 마십시오.

d

<DTD File location>

 

UNC 서식의 DTD 파일 위치 (상대적 또는 절대적). 경로 이름에는 슬래시 "/" 사용해야지, 파일 경로에 백슬래시 "\" 사용하지 마십시오. 매개변수가 누락된 경우, 드라이버는 (".xml" 확장자를 ".dtd" 교체함으로써) XML 파일로부터 DTD 파일의 이름을 생성할 것입니다.

rt

<Root Table>

XML 파일의 루트 요소. Schema 대소문자를 구분하는 경우, 테이블 이름에 대한 활자체를 유지하십시오. Schema 대소문자를 구분하지 않는 경우, 테이블 이름에 대문자를 사용하십시오.

ro

true | false

true 경우, XML 파일이 읽기 전용 모드로 열립니다.

s

<schema name>

XML 파일이 로드될 관계형 Schema 이름. 매개변수가 누락된 경우, Schema 이름이 자동적으로 파일 이름으로부터 생성됩니다.

cs

true | false

대소문자 구분 또는 비구분 모드에서 XML 파일을 로드하십시오. 대소문자 비구분 모드에서, DTD 파일에서의 모든 요소 이름은 명확해야 합니다 (: 동일 파일에서 Abc abc 금지됩니다). 대소문자 구분 매개변수는 Schema 대한 영구 매개변수입니다. 이것은 Schema 생성 후에 변경될 없습니다. 대소문자 비구분 모드에서 XML 파일이 열릴 , 활자체는 XML 파일에 대해 유지된다는 것을 주의하십시오.

:

jdbc:snps:xml?f=../demo/xml/GEO_DIM.xml&rt=GEOGRAPHY_DIM&ro=false&case_sens=true&s=GEO

경고 ! XML 파일에 액세스하려면, 우선 파일이 잠기지 않았는지 확인하십시오. 파일이 잠겼는지 확인하려면, XML 파일의 디렉토리에서 .lck 파일을 찾으십시오.

6.       시험 클릭하십시오.

7.       연결 시험 창에서 시험 클릭하십시오.

8.       연결 성공 나타내는 창이 나타나야 합니다. 확인 클릭하십시오. 연결이 성공적이지 않은 경우, XML 이용하는 경우의 공통 오류 참조하십시오.

9.       데이터 서버의 생성을 확인하기 위해 확인 클릭하십시오.

데이터 서버의 첫번째 Physical Schema 대한 생성 창이 나타납니다.
XML Physical Schema
생성하기 참조하십시오.

XML 대한 Physical Schema 생성하기

Physical Schema XML 파일과 관련된 테이블에 대한 저장 위치입니다. Sunopsis XML 데이터 서버에 대해 하나의 Physical Schema 필요합니다.

XML 대한 Physical Schema 생성하려면,

: 데이터 서버를 방금 생성한 경우, 단계 1 무시하십시오. Physical Schema 창이 이미 열려있어야 합니다.

1.       해당 XML 데이터 서버 선택하고, 오른쪽 마우스 버튼을 클릭하고, Physical Schema 삽입 선택하십시오. Physical Schema 창이 나타날 것입니다.

2.       Schema Work Schema 명명하십시오. XML 데이터 서버 JDBC URL s=<schema name> 속성을 갖는 Schema 명명하는 경우, 여기에서는 동일 Schema 이름을 사용해야 한다는 것을 주의하십시오.

3.       Schema 데이터 서버에 대한 기본 Schema 하고자 하는 경우, 디폴트 박스를 체크하십시오  (첫번째 Physical Schema 항상 기본 Physical Schema입니다). 추가 정보가 필요한 경우, Physical Schema 참조하십시오. XML 파일의 경우, 다른 Physical Schema 필요하지 않음을 주의하십시오.

4.       Context 탭으로 가십시오.

5.       새로운 Physical Schema 대해 Context 기존의 Logical Schema 선택한 , 단계 8 가십시오.
XML Logical Schema
아직 존재하지 않는 경우, 단계 6으로 가십시오.

6.        버튼을 클릭하십시오.

7.       왼쪽 열에서 기존의 Context 선택하고, 오른쪽 열에 Logical Schema] 이름을 입력하십시오. XML Logical Schema 자동적으로 생성되고, Context 있는 Physical Schema 연결됩니다.

경고 ! Logical Schema 주어진 Context에서 하나의 Physical Schema와만 연결될 있습니다.

8.       확인 클릭하십시오.

XML 파일에 대한 모델 생성 리버스 엔지니어링

XML 파일에 대한 모델 생성하기

XML 파일 모델 Datastore XML 파일에서 엔트리 레벨을 나타내는 일련의 Datastore로서 보여집니다. 모델은 항상 Logical Schema 기반을 둡니다. 주어진 Context에서, Logical Schema Physical Schema 대응합니다. Data Schema 대응하는 Physical Schema XML 모델에 대한 테이블을 포함합니다.

XML 파일에 대한 모델을 생성하려면,

1.       Designer 연결하십시오.

2.       트리에서 모델 선택하십시오.

3.       오른쪽 마우스 버튼을 클릭하고, 메뉴에서 모델 삽입 선택하십시오.

4.       정의 탭에서, 이름 필드를 입력하십시오.

5.       기술 필드에서, XML 선택하십시오.

6.       Logical Schema 필드에서, 모델이 기반을 Logical Schema 선택하십시오.

7.       리버스 탭으로 가서, 모델을 리버스 엔지니어링할 사용될 Context 선택하십시오. 적용 클릭하십시오.

모델이 생성되지만, 아직 Datastore 포함하지 않습니다.

XML 모델 리버스 엔지니어링

모델이 Datastore 없이 생성됩니다. 리버스 엔지니어링 작업은 해당 Datastore 정의를 생성하기 위해 모델의 테이블 구조를 모읍니다. 리버스 엔지니어링에는 드라이버의 기능만을 사용하는 표준 리버스 엔지니어링 객체 구조를 얻기 위해 Reverse Knowledge Module (RKM) 사용하는 사용자 지정 리버스 엔지니어링이라는 가지 유형이 있습니다.

: XML 파일에 대한 특별 RKM 없습니다. XML 대해서는 표준 리버스 엔지니어링을 사용할 것을 권장합니다.

표준 리버스 엔지니어링

XML 파일에서 표준 리버스 엔지니어링을 수행하려면,

1.       XML 모델 리버스 탭으로 가십시오.

2.       다음 필드를 작성하십시오.

  • 표준
  • Context: 리버스 엔지니어링을 위해 사용된 Context
  • 객체 유형: 리버스 엔지니어링을 하기 위한 객체 유형 (테이블)

3.       선택적 리버스 탭으로 가십시오.

  • 선택적 리버스, Datastore 리버스 객체 박스를 체크하십시오.

4.       리버스 엔지니어링을 해야 Datastore 목록이 나타납니다. 리버스 엔지니어링을 원하지 않는 Datastore 체크 해제하십시오.

5.       리버스 버튼을 클릭한 , 변경을 확인하기 위해 클릭하십시오.

6.       Sunopsis 선택된 Datastore 리버스 엔지니어링을 실행할 프로그레스 바가 나타납니다.

리버스 엔지니어링된 Datastore 모델 아래에 나타납니다.

리버스 선택적 리버스 탭의 옵션을 이용해서 리버스 엔지니어링을 개선할 있습니다. 이에 관한 추가 정보가 필요한 경우, 모델 참조하십시오.

리버스 엔지니어링의 결과

Sunopsis XML 파일로부터 생성된 테이블로 다음 열을 자동적으로 추가합니다.

·         상하위 관계에 대한 Primary keys (PK columns)

·         상하위 관계에 대한 Foreign keys (FK columns)

·         데이터가 XML 파일에서 나타나는 순서의 검색을 가능하게 하는 Order identifier (ORDER columns)

이들 별도 열은 Schema 저장된 관계형 구조로 계층적 XML 구조의 매핑을 가능하게 합니다.

XML 파일을 이용하는 경우의 KM 선택

인터페이스에서 KM 선택은 인터페이스의 기능 성능을 결정합니다. 아래 권장사항은 특정 상황에 따라 XML 파일에 대해 올바른 KM 선택하는 것을 돕습니다.

KM 관한 일반적인 정보가 필요한 경우, Knowledge Module 참조하십시오.

: 프로젝트로 가져온 Knowledge Module 프로젝트의 인터페이스에서의 이용에 대해 사용할 있습니다. KM 가져오려면, KM 가져오기 참조하십시오.

파일 메모리 동기화

XML 파일에서의 데이터 메모리에서의 데이터를 완전히 동기시키기 위해, 특정 명령이 실행되어야 합니다.

·         데이터를 읽거나 업데이트하기 위해 XML 모델의 테이블을 사용하기 전에, XML Logical Schema에서 SYNCHRONIZE FROM FILE 명령을 사용할 것을 권장합니다. 작업은 관계형 메모리 Schema에서 XML 계층 데이터를 다시 로드합니다. Schema 처음 액세스될 메모리에 로드되면, 메모리에 있는 데이터는 XML 파일의 콘텐츠에 의해 동기되지 않을 것입니다.

·         관계형 메모리 Schema에서 변경을 수행한 , XML Logical Schema에서 SYNCHRONIZE ALL 또는 SYNCHRONIZE FROM DATABASE 명령을 실행함으로써 Schema XML 계층 데이터로 언로드해야 합니다.

이들 명령은 인터페이스 프로시져가 XML Schema 조정하기 () 패키지에 있는 특정 프로시져에서 실행되어야 합니다.

이들 명령에 관한 추가 정보가 필요한 경우, Sunopsis XML 드라이버 문서를 참조하십시오.

경고 ! XML 파일에 대한 Schema JDBC URL에서 설정되지 않은 경우, SET SCHEMA 명령은 어떤 데이터도 처리하기 전에 실행되어야 합니다.

XML 대한 인터페이스

인터페이스의 대상으로서 XML 모델의 테이블을 사용할 , 관계형 구조에서 XML 계층 구조를 매핑하는 별도의 열에 데이터를 삽입해야 합니다. 예를 들면, 다음과 같이 XML 구조에 Region 기록을 입력하는 경우,

<country COUNTRY_ID="6" COUNTRY_NAME="Autralia">

<region REGION_ID="72" REGION_NAME="Queensland">

</country>

Region 테이블의 REGION_ID REGION_NAME 열을 입력해야 하지만, 다음 열도 입력해야 합니다.

·         REGIONPK: 열은 <region> 태그의 식별을 가능하게 합니다.

·         REGIONORDER: 열은 XML 파일에서 <region> 태그의 정렬을 가능하게 합니다 (기록은 관계형 Schema에서는 정렬이 되지 않지만, XML 태그는 정렬이 됩니다).

·         COUNTRYFK: 열은 <country> 상위 요소와 비교하여 <region> 요소를 배치하는 것을 가능하게 합니다. 값은 country 테이블에서 "Autralia" 기록에 대한 COUNTRYPK 값과 동일합니다.

데이터 완전성을 보장하기 위해, Sunopsis XML 모델에 특정 참조 기본 제약 조건을 삽입합니다.

XML 파일에서 XML 파일로 데이터 로드하기

XML 파일은 인터페이스의 원본 또는 대상으로 사용될 있습니다. XML 파일 다른 유형의 데이터 서버 간에 데이터를 로드하기 위해 사용된 (인터페이스 흐름 탭에서) LKM 선택은 인터페이스의 실행에 필수적입니다.

XML Schema에서 LKM 선택

다음 경우에 있어서의 LKM 권장사항

·         스테이징 영역에 대한 XML 원본

개의 솔루션이 가능한 경우, 이들은 선호도 성능 순으로 표시됩니다. 일반 KM 굵게 표현됩니다.

스테이징 영역

권장 KM

비고

Microsoft SQL Server

LKM ISO SQL to MSSQL (bulk)

SQL 서버의 Bulk Loader 사용.

Oracle

LKM ISO SQL to Oracle

일반 LKM 보다 빠름 (통계 사용)

Sybase

LKM ISO SQL to Sybase (bcp)

Sybase Bulk Loader 사용.

All

LKM ISO SQL to SQL

일반 KM

XML Schema 대한 LKM 선택

XML 인터페이스의 대상이고 대상을 스테이징 영역으로 사용하고자 하는 경우를 제외하고, XML Schema 스테이징 영역으로서 사용하지 것을 권장합니다. 경우에, XML Schema 데이터를 로드해야 수도 있습니다.

다음 경우에 있어서의 LKM 권장사항

·         XML 스테이징 영역에 대한 원본

개의 솔루션이 가능한 경우, 이들은 선호도 성능 순으로 표시됩니다. 일반 KM 굵게 표현됩니다.

원본

권장 KM

비고

JMS

LKM JMS to SQL

 

File

LKM ISO File to SQL

 

All

LKM ISO SQL to SQL

일반 KM

XML 파일로 데이터 통합하기

XML 파일에서의 데이터 통합 전략은 많이 있으며, 개의 모드를 포함합니다. 인터페이스 흐름 탭에서 IKM 선택은 통합에 대한 성능 가능성을 결정합니다.

XML 파일에 대한 IKM 선택

다음 경우에 있어서의 LKM 권장사항

·         XML 대상에 대한 스테이징 영역

·         XML 대상에 대한 XML 스테이징 영역 경우, 스테이징 영역이 XML 대상에 있습니다.

개의 솔루션이 가능한 경우, 이들은 선호도 성능 순으로 표시됩니다. 일반 KM 굵게 표현됩니다.

모드

스테이징 영역

권장 KM

비고

Update

XML

IKM ISO SQL Incremental Update

일반 KM

Append

XML

IKM ISO SQL Control Append

일반 KM

Append

All RDBMS

IKM ISO SQL to SQL Append

일반 KM

XML 이용하는 경우의 공통 오류

XML에서 발생한 오류 감지

Sunopsis에서의 오류는 다음과 같은 방식으로 종종 나타납니다.

java.sql.SQLException: No suitable driver
at ...
at ...
...

java.sql.SQLException 코드는 단지 쿼리가 오류를 반환한 JDBC 드라이버를 통해 만들어진 것을 나타냅니다. 오류는 종종 데이터베이스 또는 드라이버 오류이며, 다음과 같은 방향으로 해석되어야 합니다.

굵게 표시된 텍스트 부분만 우선 고려되어야 합니다. 이것은 XML 드라이버 문서에서 검색되어야 합니다. 이것이 여기에서와 같이 특정 오류 코드를 포함하는 경우, 오류는 즉시 확인될 있습니다.

이러한 오류가 실행 로그에서 확인된 경우, 오류의 출처를 찾기 위해 데이터베이스로 보내진 SQL 코드를 분석해야 합니다. 코드는 오류가 있는 작업 설명 탭에 표시됩니다.

XML 이용하는 경우에 가장 공통적인 오류를 주요 원인과 함께 아래에 열거하였습니다.

공통 오류

연결 오류

No suitable driver

XML 드라이버가 올바르게 설치되지 않았거나, 드라이버 라이센스 파일이 /drivers 디렉토리에 없습니다.

The license key ExpiryDate is violated.
The license key Version is violated.

평가판 라이센스가 만료되었거나, 드라이버 버젼에 유효하지 않은 라이센스를 사용하려고 시도하고 있습니다. 유효한 라이센스 키에 대해 Sunopsis 연락하십시오.

인터페이스에서의 오류

File <XML file> is already locked by another instance of the XML driver.

XML 파일이 다른 사용자/애플리케이션에 의해 잠겼습니다. XML 파일을 사용할 모를 모든 애플리케이션을 닫으십시오. 그러한 애플리케이션이 오류가 발생한 경우, XML 파일의 디렉토리에 남아있는 .lck 파일을 제거하십시오.

The DTD file "xxxxxxx.dtd" doesn't exist

이러한 예외적인 경우는 LOAD FILE 명령을 이용하여 XML 파일을 로드하려 발생할 있습니다. 오류 메시지는 다음과 같은 가지 원인을 갖습니다.

·         DTD 파일의 경로가 틀립니다.

·         대응하는 XML 파일이 (예를 들면, 연결 동안에) 이미 다른 Schema 의해 열려 있습니다.

Table not found: S0002 Table not found: <table name> in statement [<SQL statement>]

액세스하려고 하는 테이블이 Schema 존재하지 않습니다.

Column not found: S0022 Column not found: <column name> in statement [<SQL statement>]

액세스하려고 하는 열이 명령문에서 지정된 테이블에 존재하지 않습니다.