데이터 소비자 문제
이 항목에서는 데이터 소비자 문제 해결을 위한 정보를 제공합니다.
SQL Server Integration Services
Enterprise Single Sign-On
SQL Server Integration Services에서 Enterprise Single Sign-On을 사용하는 경우 사용자 이름과 암호로 자리 표시자 값 “MS$SAME”을 입력해야 할 수 있습니다. 데이터 연결을 사용하여 SSIS와 함께 사용할 수 있게 하도록 ESSO를 구성할 수 있습니다.
연결 대화 상자에서 보안 방법으로 Single sign-on을 클릭합니다.
드롭다운 목록 상자에서 관련 응용 프로그램을 선택합니다.
모두 대화 상자에서 암호를 클릭하고 값 편집을 클릭합니다. 속성 값 편집 대화 상자에서 속성 값으로 MS$SAME을 입력한 다음 확인을 클릭합니다.
모두 대화 상자에서 사용자 ID를 클릭한 다음 값 편집을 클릭합니다. 속성 값 편집 대화 상자에서 속성 값으로 MS$SAME을 입력한 다음 확인을 클릭합니다.
연결 대화 상자에서 테스트를 클릭합니다. Microsoft 데이터 연결 대화 상자에서 결과를 확인할 수 있습니다.
확인을 클릭하여 구성 정보를 저장합니다.
데이터 형식 매핑
Microsoft SQL Server Management Studio 또는 Business Intelligence Design Studio에서 SQL Server Integration Services 가져오기 및 내보내기 마법사를 사용할 때 XML 매핑 파일을 편집하여 기본 데이터 변환을 사용자 지정할 수 있습니다. 가져오기 및 내보내기 마법사 XML 매핑 파일은 다음 폴더에 있습니다.
C:\Program Files\Microsoft SQL Server\100\DTS\MappingFiles
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\MappingFiles
i5/OS용 IBM DB2 문자와 10진수 데이터 형식을 SQL Server 데이터 형식에 제대로 매핑하려면 DB2 데이터 형식의 긴 형식 동의어를 포함하도록 데이터 매핑 파일을 확장해야 합니다. 예를 들어, DB2 INTEGER 원본과 SQL Server 사이에 다음 데이터 형식 매핑을 추가합니다. 이 매핑은 SQLOLEDB, SQLNCL, SQLNCLI10 및 System.Data.SqlClient.SqlConnection과 호환됩니다. 이 매핑은 짧은 형식의 SourceDataType 값 INT를 긴 형식의 INTEGER로 바꿉니다.
DB2 INT의 다음 매핑은 z/OS용 DB2 V9 원본과 호환됩니다.
<!-- INT -->
<dtm:DataTypeMapping>
<dtm:SourceDataType>
<dtm:DataTypeName>INT</dtm:DataTypeName>
</dtm:SourceDataType>
<dtm:DestinationDataType>
<dtm:SimpleType>
<dtm:DataTypeName>INT</dtm:DataTypeName>
</dtm:SimpleType>
</dtm:DestinationDataType>
</dtm:DataTypeMapping>
DB2 INTEGER의 다음 데이터 형식 매핑은 i5/OS용 DB2 V6R1 원본과 호환됩니다.
<!-- INTEGER -->
<dtm:DataTypeMapping>
<dtm:SourceDataType>
<dtm:DataTypeName>INTEGER</dtm:DataTypeName>
</dtm:SourceDataType>
<dtm:DestinationDataType>
<dtm:SimpleType>
<dtm:DataTypeName>INT</dtm:DataTypeName>
</dtm:SimpleType>
</dtm:DestinationDataType>
</dtm:DataTypeMapping>
데이터 형식 매핑 파일
다음 표에서는 데이터 공급자를 사용할 때 편집할 수 있는 세 가지 매핑 파일에 대해 설명합니다.
DB2 데이터 형식 이름 |
DB2ToMSSql |
DB2ToMSSql10 |
DB2ToSSIS10 |
TIME |
DATETIME |
time |
DT_DBTIME |
TIMESTAMP |
datetime |
datetime2 |
DT_DBTIMESTAMP2 |
DATE |
DATETIME |
DATE |
DT_DBDATE |
CHAR |
CHAR |
CHAR |
DT_STR |
CHAR() FOR BIT DATA |
BINARY |
BINARY |
DT_BYTES |
CHAR () FOR MIXED DATA |
NCHAR |
NCHAR |
DT_WSTR |
CHAR () FOR SBCS DATA |
CHAR |
CHAR |
DT_STR |
CHARACTER |
CHAR |
CHAR |
DT_STR |
CHARACTER () FOR BIT DATA |
BINARY |
BINARY |
DT_BYTES |
CHARACTER () FOR MIXED DATA |
NCHAR |
NCHAR |
DT_WSTR |
CHARACTER () FOR SBCS DATA |
CHAR |
CHAR |
DT_STR |
NATIONAL CHARACTER |
NCHAR |
NCHAR |
DT_WSTR |
VARCHAR |
VARCHAR |
VARCHAR |
DT_STR |
VARCHAR() FOR BIT DATA |
VARBINARY |
VARBINARY |
DT_BYTES |
VARCHAR () FOR MIXED DATA |
NVARCHAR |
NVARCHAR |
DT_WSTR |
VARCHAR () FOR SBCS DATA |
VARCHAR |
VARCHAR |
DT_STR |
CHARACTER VARYING |
VARCHAR |
VARCHAR |
DT_STR |
CHARACTER VARYING () FOR BIT DATA |
VARBINARY |
VARBINARY |
DT_BYTES |
CHARACTER VARYING () FOR MIXED DATA |
NVARCHAR |
NVARCHAR |
DT_WSTR |
CHARACTER VARYING () FOR SBCS DATA |
VARCHAR |
VARCHAR |
DT_STR |
NATIONAL CHARACTER VARYING |
NVARCHAR |
NVARCHAR |
DT_WSTR |
LONG VARCHAR FOR BIT DATA |
image |
image |
DT_IMAGE |
LONG VARCHAR |
text |
text |
DT_TEXT |
GRAPHIC |
NCHAR |
NCHAR |
DT_WSTR |
VARGRAPHIC |
NVARCHAR |
NVARCHAR |
DT_WSTR |
GRAPHIC VARYING |
NVARCHAR |
NVARCHAR |
DT_WSTR |
SMALLINT |
SMALLINT |
SMALLINT |
DT_I2 |
INT |
INT |
INT |
DT_14 |
INTEGER |
INT |
INT |
DT_14 |
BIGINT |
BIGINT |
BIGINT |
DT_18 |
DECIMAL |
NUMERIC |
NUMERIC |
DT_NUMERIC |
NUMERIC |
NUMERIC |
NUMERIC |
DT_NUMERIC |
REAL |
REAL |
REAL |
DT_R4 |
FLOAT |
FLOAT |
FLOAT |
DT_R8 |
DOUBLE |
FLOAT |
FLOAT |
DT_R8 |
DOUBLE PRECISION |
FLOAT |
FLOAT |
DT_R8 |
BLOB |
image |
image |
DT_BYTES |
BINARY LARGE OBJECT |
image |
image |
DT_BYTES |
CLOB |
text |
text |
DT_TEXT |
CLOB () FOR MIXED DATA |
ntext |
ntext |
DT_NTEXT |
CLOB () FOR SBCS DATA |
text |
text |
DT_TEXT |
CHAR LARGE OBJECT |
text |
text |
DT_TEXT |
CHAR LARGE OBJECT () FOR MIXED DATA |
ntext |
ntext |
DT_NTEXT |
CHAR LARGE OBJECT () FOR SBCS DATA |
text |
text |
DT_TEXT |
CHARACTER LARGE OBJECT |
text |
text |
DT_TEXT |
CHARACTER LARGE OBJECT () FOR MIXED DATA |
ntext |
ntext |
DT_NTEXT |
CHARACTER LARGE OBJECT () FOR SBCS DATA |
text |
text |
DT_TEXT |
130 |
ntext |
ntext |
DT_NTEXT |
매핑 파일을 편집한 후에는 작업 환경에 따라 SQL Server 가져오기 및 내보내기 마법사 또는 Business Intelligence Development Studio를 닫았다가 다시 열어야 합니다.
SQL Server 2008 Integration Services 구성에 대한 자세한 내용은 SQL Server 온라인 설명서에서 SQL Server 가져오기 및 내보내기 마법사를 사용하여 데이터 가져오기 및 내보내기(https://go.microsoft.com/fwlink/?LinkId=193204) 항목을 참조하십시오.
데이터 흐름 구성 요소 사용자 지정
SQL Server Integration Services 데이터 흐름 구성 요소를 사용하여 기본 및 사용자 지정 변환을 수행할 수 있습니다. 사용자 지정 변환은 개발자 제공 사용자 지정 코드를 기준으로 합니다.
XML 형식의 SQL Server Integration Services 매핑 파일은 가져오기 및 내보내기 마법사와 함께 사용됩니다. 이러한 파일은 데이터 흐름과 함께 사용할 수 없습니다. SQL Server Integration Services는 파이프라인 버퍼 클래스를 제공하여 엔터프라이즈 개발자가 데이터 흐름 내에서 데이터 매핑을 사용자 지정할 수 있습니다. SQL Server 2008 Integration Services를 사용하는 데이터 흐름 구성 요소 사용자 지정에 대한 자세한 내용은 SQL Server 온라인 설명서에서 데이터 흐름의 데이터 형식 작업 항목(https://go.microsoft.com/fwlink/?LinkId=241523)을 참조하십시오.
SQL Server 복제
매개 변수 파생
SQL Server 복제에서는 매개 변수 파생이 FALSE로 설정되어야 합니다.
데이터 형식 매핑
SQL Server에서 DB2 데이터 형식으로의 기본 매핑에 따라 SQL Server 복제가 데이터를 잘못 변환할 수 있습니다. 다음과 같은 SQL Server 시스템 저장 프로시저를 사용하여 복제 데이터 형식 매핑을 검토하고 수정하는 것이 좋습니다.
-
sp_helpdatatypemap
-
sp_getdefaultdatatypemapping
-
sp_setdefaultdatatypemapping
자세한 내용은 SQL Server 온라인 설명서에서 시스템 저장 프로시저(Transact-SQL) 항목(https://go.microsoft.com/fwlink/?LinkID=241524)을 참조하십시오.
SQL Server DATETIME2 - DBTYPE_TIMESTAMP 매핑 문제
z/OS용 DB2로의 SQL Server 2008 복제가 실패하여 SQLCODE -188(datetime 값의 문자열 표현이 유효한 datetime 값이 아닙니다.)이 표시될 수 있습니다. 이 오류는 복제가 DATETIME2를 DB2 VARCHAR(27)로 매핑하도록 구성되어 있고 구독 아티클 명령을 문자열 리터럴 데이터 값과 함께 사용하는 경우에 발생합니다.
단계별 지침이 포함된 문제 해결 방법
SQL Server 2008 복제가 DATETIME2를 DB2 TIMESTAMP로 매핑하도록 다시 구성하고 매개 변수를 사용하여 구독 아티클 명령을 다시 구성합니다. 이렇게 하면 데이터 공급자가 DATETIME2를 IBM DB2 데이터베이스 서버가 지원하는 DB2 TIMESTAMP 구조 형식으로 지정할 수 있습니다.
수정할 데이터 형식 매핑을 식별합니다. 모든 단계에 MASTER를 사용합니다.
select * from
sys.fn_helpdatatypemap( 'MSSQLSERVER', '%', '%', '%', '%', '%', 0)
여기서 destination_dbms는 'DB2'이고 source_type은 'datetime2'입니다. 결과에 수정할 mapping_id가 표시되어야 합니다. 다음 표는 mapping_id가 189인 이 예의 결과 창을 보여 줍니다.
mapping_id
source_dbms
source_type
destination_dbms
destination_type
destination_length
189
MSSQLSERVER
datetime2
DB2
VARCHAR
27
데이터 형식 매핑을 삭제합니다.
exec sp_dropdatatypemapping 189
데이터 형식 매핑을 추가합니다.
exec sp_adddatatypemapping @source_dbms = 'MSSQLSERVER', @source_type = 'datetime2', @destination_dbms = 'DB2', @destination_type = 'TIMESTAMP', @destination_nullable = 1, @destination_createparams = 0, @dataloss = 0, @is_default = 1
쿼리를 다시 실행하여 새로운 데이터 형식 매핑을 확인합니다.
select * from
select * from sys.fn_helpdatatypemap ( 'MSSQLSERVER', '%', '%', '%', '%', '%', 0)
여기서 destination_dbms = 'DB2'이고 source_type = 'datetime2'입니다.
결과가 수정할 mapping_id를 나타내야 합니다. 다음 표는 mapping_id가 189인 이 예의 결과 창을 보여 줍니다.
mapping_id
source_dbms
source_type
destination_dbms
destination_type
destination_length
494
MSSQLSERVER
datetime2
DB2
TIMESTAMP
NULL
다시 구성할 복제 구독 아티클을 식별합니다. Transact-SQL USE 문을 사용하여 마스터 데이터베이스에서 복제할 원본 데이터베이스로 전환합니다.
USE [테스트]
select name, status from sysarticles
결과가 수정할 아티클의 이름을 표시해야 합니다. 이 예에서 다음 표는 이름이 DB2TS01인 결과를 보여 줍니다.
이름
상태
DB2TS01
25
상태 값이 1 또는 9이면 아티클이 문자열 리터럴 형식으로 구성됩니다.
상태 값이 17 또는 25이면 아티클이 매개 변수가 있는 형식으로 구성됩니다.
매개 변수가 있는 명령에 대해 복제 구독 아티클을 구성합니다.
USE [테스트]
DECLARE @publication AS sysname; DECLARE @article AS sysname; SET @publication = N'DB2TS_PUB01'; SET @article = N'DB2TS01'; EXEC sp_changearticle @publication, @article, 'status', 'parameters', 0, 0;
자세한 내용은 SQL Server 온라인 설명서에서 복제 시스템 저장 프로시저 개념(https://go.microsoft.com/fwlink/?LinkID=241525)을 참조하십시오.
SQL Server Analysis Services
SQL Server Analysis Services에서 사용할 큐브를 디자인할 때 이 도구에서는 DB2 서버가 지원하는 최대 길이를 초과하는 긴 별칭 이름이 포함된 SQL 명령을 생성합니다. 사용하는 DB2 플랫폼 및 버전에 따라 18자를 넘는 별칭 이름이 있는 쿼리는 사용하지 못할 수 있습니다. 예를 들어 z/OS용 DB2에 배포된 많은 개체는 18자로 된 이름을 사용합니다. DB2 SQL Reference에서 해당 DB2 플랫폼 및 버전을 참조하고 DB2 데이터베이스 관리자에게 확인하십시오. 관리자 또는 개발자는 식별자 길이(limit-table-identifier-length)를 29에서 18로 변경하여 DB2를 위한 데이터 형식 매핑 지원이 포함된 두 개의 SQL Server Analysis Service 구성 카트리지 파일을 업데이트하는 것이 좋습니다. 업데이트해야 하는 두 카트리지 파일의 이름과 위치는 다음과 같습니다.
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\DataWarehouseDesigner\UIRdmsCartridge\db2v0801.xs
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\DataWarehouseDesigner\UIRdmsCartridge\db2v0801.xs
SQL Server Analysis Services는 업데이트된 구성 파일을 사용하여 SQL 문의 개체에 대해 올바르게 이름을 지정합니다.