Share via


데이터 소비자 문제

이 항목에서는 데이터 소비자 문제 해결을 위한 정보를 제공합니다.

SQL Server Integration Services

Enterprise Single Sign-On

SQL Server Integration Services에서 Enterprise Single Sign-On을 사용하는 경우 사용자 이름과 암호로 자리 표시자 값 “MS$SAME”을 입력해야 할 수 있습니다. 데이터 연결을 사용하여 SSIS와 함께 사용할 수 있게 하도록 ESSO를 구성할 수 있습니다.

  1. 연결 대화 상자에서 보안 방법으로 Single sign-on을 클릭합니다.

  2. 드롭다운 목록 상자에서 관련 응용 프로그램을 선택합니다.

  3. 모두 대화 상자에서 암호를 클릭하고 값 편집을 클릭합니다. 속성 값 편집 대화 상자에서 속성 값으로 MS$SAME을 입력한 다음 확인을 클릭합니다.

  4. 모두 대화 상자에서 사용자 ID를 클릭한 다음 값 편집을 클릭합니다. 속성 값 편집 대화 상자에서 속성 값으로 MS$SAME을 입력한 다음 확인을 클릭합니다.

  5. 연결 대화 상자에서 테스트를 클릭합니다. Microsoft 데이터 연결 대화 상자에서 결과를 확인할 수 있습니다.

  6. 확인을 클릭하여 구성 정보를 저장합니다.

데이터 형식 매핑

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 구조 형식으로 지정할 수 있습니다.

  1. 수정할 데이터 형식 매핑을 식별합니다. 모든 단계에 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

  2. 데이터 형식 매핑을 삭제합니다.

    exec sp_dropdatatypemapping 189

  3. 데이터 형식 매핑을 추가합니다.

    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
    
  4. 쿼리를 다시 실행하여 새로운 데이터 형식 매핑을 확인합니다.

    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

  5. 다시 구성할 복제 구독 아티클을 식별합니다. Transact-SQL USE 문을 사용하여 마스터 데이터베이스에서 복제할 원본 데이터베이스로 전환합니다.

    USE [테스트]

    select name, status from sysarticles
    
  6. 결과가 수정할 아티클의 이름을 표시해야 합니다. 이 예에서 다음 표는 이름이 DB2TS01인 결과를 보여 줍니다.

    이름

    상태

    DB2TS01

    25

    상태 값이 1 또는 9이면 아티클이 문자열 리터럴 형식으로 구성됩니다.

    상태 값이 17 또는 25이면 아티클이 매개 변수가 있는 형식으로 구성됩니다.

  7. 매개 변수가 있는 명령에 대해 복제 구독 아티클을 구성합니다.

    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 문의 개체에 대해 올바르게 이름을 지정합니다.