Azure Data Factory 또는 Synapse Analytics를 사용하여 DB2에서 데이터 복사

적용 대상: Azure Data Factory Azure Synapse Analytics

기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!

이 문서에서는 Azure Data Factory 및 Synapse Analytics 파이프라인에서 복사 작업을 사용하여 DB2 데이터베이스에서 데이터를 복사하는 방법을 간략하게 설명합니다. 이 문서는 복사 작업에 대한 일반적인 개요를 제공하는 복사 작업 개요 문서를 기반으로 합니다.

지원되는 기능

이 DB2 커넥터는 다음 기능에 대해 지원됩니다.

지원되는 기능 IR
복사 작업(원본/-) ① ②
조회 작업 ① ②

① Azure 통합 런타임 ② 자체 호스팅 통합 런타임

복사 작업의 원본 또는 싱크로 지원되는 데이터 저장소 목록은 지원되는 데이터 저장소 표를 참조하세요.

특히, 이 DB2 커넥터는 DRDA(분산 관계형 데이터베이스 아키텍처) SQLAM(SQL Access Manager) 버전 9, 10 및 11과 함께 다음 IBM DB2 플랫폼 버전을 지원합니다. DDM/DRDA 프로토콜을 활용합니다.

  • z/OS용 IBM DB2 12.1
  • z/OS용 IBM DB2 11.1
  • i용 IBM DB2 7.3
  • i용 IBM DB2 7.2
  • i용 IBM DB2 7.1
  • LUW용 IBM DB2 11
  • LUW용 IBM DB2 10.5
  • LUW용 IBM DB2 10.1

필수 조건

데이터 저장소가 온-프레미스 네트워크, Azure 가상 네트워크 또는 Amazon Virtual Private Cloud 내에 있는 경우 자체 호스팅된 통합 런타임을 구성하여 연결해야 합니다.

데이터 저장소가 관리형 클라우드 데이터 서비스인 경우 Azure Integration Runtime을 사용할 수 있습니다. 액세스가 방화벽 규칙에서 승인된 IP로 제한되는 경우 허용 목록에 Azure Integration Runtime IP를 추가할 수 있습니다.

또한 Azure Data Factory의 관리형 가상 네트워크 통합 런타임 기능을 사용하면 자체 호스팅 통합 런타임을 설치하고 구성하지 않고도 온-프레미스 네트워크에 액세스할 수 있습니다.

Data Factory에서 지원하는 네트워크 보안 메커니즘 및 옵션에 대한 자세한 내용은 데이터 액세스 전략을 참조하세요.

통합 런타임은 기본 제공 DB2 드라이버를 제공하므로 DB2에서 데이터를 복사할 때 수동으로 드라이버를 설치할 필요가 없습니다.

시작하기

파이프라인에 복사 작업을 수행하려면 다음 도구 또는 SDK 중 하나를 사용하면 됩니다.

UI를 사용하여 DB2에 연결된 서비스 만들기

다음의 단계를 사용하여 Azure Portal UI에서 DB2에 연결된 서비스를 만듭니다.

  1. Azure Data Factory 또는 Synapse 작업 영역에서 관리 탭으로 이동하여 연결된 서비스를 선택하고 새로 만들기를 클릭합니다.

  2. DB2를 검색하고 DB2 커넥터를 선택합니다.

    Screenshot of the DB2 connector.

  3. 서비스 세부 정보를 구성하고, 연결을 테스트하고, 새로운 연결된 서비스를 만듭니다.

    Screenshot of linked service configuration for DB2.

커넥터 구성 세부 정보

다음 섹션에서는 DB2 커넥터에 한정된 Data Factory 엔터티를 정의하는 데 사용되는 속성에 대해 자세히 설명합니다.

연결된 서비스 속성

DB2 연결된 서비스에 다음 속성이 지원됩니다.

속성 설명 필수
type 형식 속성은 Db2로 설정해야 합니다.
connectionString DB2 인스턴스에 연결하는 데 필요한 정보를 지정합니다.
Azure Key Vault에 암호를 넣고, 연결 문자열에서 password 구성을 끌어올 수도 있습니다. 자세한 내용은 다음 샘플 및 Azure Key Vault에 자격 증명 저장 문서를 참조하세요.
connectVia 데이터 저장소에 연결하는 데 사용할 Integration Runtime입니다. 필수 구성 요소 섹션에서 자세히 알아보세요. 지정하지 않으면 기본 Azure Integration Runtime을 사용합니다. 아니요

연결 문자열 내부의 일반적인 속성은 다음과 같습니다.

속성 설명 필수
server DB2 서버의 이름입니다. 콜론으로 구분된 서버 이름 뒤에 포트 번호를 지정할 수 있습니다(예: server:port).
DB2 커넥터는 DDM/DRDA 프로토콜을 사용하며, 포트를 지정하지 않으면 기본적으로 포트 50000을 사용합니다. 특정 DB2 데이터베이스에서 사용하는 포트는 버전 및 설정에 따라 다를 수 있습니다. 예를 들어, DB2 LUW의 경우 기본 포트는 50000이고, AS400의 경우 기본 포트는 446 또는 448(TLS를 사용하도록 설정한 경우)입니다. 포트가 일반적으로 구성되는 방식에 대해서는 다음 DB2 문서(DB2 z/OS, DB2 iSeriesDB2 LUW)를 참조하세요.
database DB2 데이터베이스의 이름입니다.
authenticationType DB2 데이터베이스에 연결하는 데 사용되는 인증 형식입니다.
허용되는 값은 Basic입니다.
사용자 이름 DB2 데이터베이스에 연결할 사용자 이름을 지정합니다.
password 사용자 이름에 지정한 사용자 계정의 암호를 지정합니다. 이 필드를 SecureString으로 표시하여 안전하게 저장하거나, Azure Key Vault에 저장된 비밀을 참조합니다.
packageCollection 데이터베이스를 쿼리할 때 서비스에서 필요한 패키지를 자동으로 생성하는 위치를 지정합니다. 이 값을 설정하지 않으면 서비스는 {username}을 기본값으로 사용합니다. 아니요
certificateCommonName SSL(Secure Sockets Layer) 또는 TLS(전송 계층 보안) 암호화를 사용하는 경우 인증서 일반 이름에 값을 입력해야 합니다. 아니요

The package corresponding to an SQL statement execution request was not found. SQLSTATE=51002 SQLCODE=-805라는 오류 메시지가 표시되는 경우 필요한 패키지가 만들어지지 않은 것입니다. 기본적으로 서비스는 DB2에 연결하는 데 사용한 사용자 이름이 지정된 컬렉션 아래에 패키지를 만들려고 시도합니다. 데이터베이스를 쿼리할 때 서비스에서 필요한 패키지를 만들 위치를 나타내는 패키지 컬렉션 속성을 지정합니다. 패키지 컬렉션 이름을 확인할 수 없는 경우 packageCollection=NULLID를 설정합니다.

예제:

{
    "name": "Db2LinkedService",
    "properties": {
        "type": "Db2",
        "typeProperties": {
            "connectionString": "server=<server:port>;database=<database>;authenticationType=Basic;username=<username>;password=<password>;packageCollection=<packagecollection>;certificateCommonName=<certname>;"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

예제: Azure Key Vault에 암호 저장

{
    "name": "Db2LinkedService",
    "properties": {
        "type": "Db2",
        "typeProperties": {
            "connectionString": "server=<server:port>;database=<database>;authenticationType=Basic;username=<username>;packageCollection=<packagecollection>;certificateCommonName=<certname>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

다음 페이로드에서 DB2 연결된 서비스를 사용하는 경우, 있는 그대로도 지원되지만 앞으로 새 옵션을 사용하는 것이 좋습니다.

이전 페이로드:

{
    "name": "Db2LinkedService",
    "properties": {
        "type": "Db2",
        "typeProperties": {
            "server": "<servername:port>",
            "database": "<dbname>",
            "authenticationType": "Basic",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

데이터 세트 속성

데이터 세트 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 데이터 세트 문서를 참조하세요. 이 섹션에서는 DB2 데이터 세트에서 지원하는 속성의 목록을 제공합니다.

DB2의 데이터를 복사하려는 경우 다음과 같은 속성이 지원됩니다.

속성 설명 필수
type 데이터 세트의 type 속성은 Db2Table로 설정되어야 합니다.
schema(스키마) 스키마의 이름입니다. 아니요(작업 원본에서 "query"가 지정된 경우)
table 테이블 이름입니다. 아니요(작업 원본에서 "query"가 지정된 경우)
tableName 스키마가 있는 테이블의 이름입니다. 이 속성은 이전 버전과의 호환성을 위해 지원됩니다. 새 워크로드의 경우 schematable를 사용합니다. 아니요(작업 원본에서 "query"가 지정된 경우)

예제

{
    "name": "DB2Dataset",
    "properties":
    {
        "type": "Db2Table",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<DB2 linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

RelationalTable 형식의 데이터 세트를 사용하고 있는 경우 현재까지 지원되지만 앞으로는 새 형식을 사용하는 것이 좋습니다.

복사 작업 속성

작업 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 파이프라인 문서를 참조하세요. 이 섹션에서는 DB2 원본에서 지원하는 속성의 목록을 제공합니다.

DB2를 원본으로

DB2에서 데이터를 복사하기 위해 복사 작업 source 섹션에서 지원되는 속성은 다음과 같습니다.

속성 설명 필수
type 복사 작업 원본의 type 속성은 Db2Source로 설정되어야 합니다.
query 사용자 지정 SQL 쿼리를 사용하여 데이터를 읽습니다. 예: "query": "SELECT * FROM \"DB2ADMIN\".\"Customers\"" 아니요(데이터 세트의 "tableName"이 지정된 경우)

예제:

"activities":[
    {
        "name": "CopyFromDB2",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<DB2 input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "Db2Source",
                "query": "SELECT * FROM \"DB2ADMIN\".\"Customers\""
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

RelationalSource 형식의 원본을 사용하고 있는 경우 현재까지 지원되지만 앞으로는 새 형식을 사용하는 것이 좋습니다.

DB2에 대한 데이터 형식 매핑

DB2에서 데이터를 복사할 때 서비스 내에서 내부적으로 사용되는 DB2 데이터 형식에서 중간 데이터 형식으로 다음 매핑이 사용됩니다. 복사 작업에서 원본 스키마 및 데이터 형식을 싱크에 매핑하는 방법에 대한 자세한 내용은 스키마 및 데이터 형식 매핑을 참조하세요.

DB2 데이터베이스 형식 중간 서비스 데이터 형식
BigInt Int64
이진 Byte[]
Blob Byte[]
Char 문자열
Clob 문자열
날짜 DateTime
DB2DynArray 문자열
DbClob 문자열
소수 Decimal
DecimalFloat 소수
두 배 두 배
Float Double
Graphic 문자열
정수 Int32
LongVarBinary Byte[]
LongVarChar 문자열
LongVarGraphic 문자열
숫자 Decimal
실수 Single
SmallInt Int16
Time TimeSpan
Timestamp DateTime
VarBinary Byte[]
VarChar 문자열
VarGraphic 문자열
Xml Byte[]

조회 작업 속성

속성에 대한 자세한 내용을 보려면 조회 작업을 확인하세요.

복사 작업에서 원본 및 싱크로 지원되는 데이터 저장소 목록은 지원되는 데이터 저장소를 참조하세요.