다음을 통해 공유


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

적용 대상: Azure Data Factory Azure Synapse Analytics

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

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

중요합니다

Amazon Redshift 버전 2.0은 향상된 네이티브 Amazon Redshift 지원을 제공합니다. 솔루션에서 Amazon Redshift 버전 1.0을 사용하는 경우 가장 빠른 편의를 위해 Amazon Redshift 커넥터를 업그레이드 하는 것이 좋습니다. 버전 2.0과 버전 1.0의 차이점에 대한 자세한 내용은 이 섹션 을 참조하세요.

지원되는 기능

이 Amazon Redshift 커넥터는 다음과 같은 기능에 지원됩니다.

지원되는 기능 적외선
복사 작업(원본/-) ①(1.0 버전만 해당) ②
조회 작업 ①(1.0 버전만 해당) ②

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

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

버전 2.0의 경우 Amazon Redshift ODBC 드라이버를 수동으로 설치 해야 합니다. 버전 1.0의 경우, 서비스가 연결을 사용하도록 설정하는 기본 제공 드라이버를 제공하므로 드라이버를 수동으로 설치할 필요가 없습니다.

Amazon Redshift 커넥터는 쿼리 또는 기본 제공 Redshift UNLOAD 지원을 사용하여 Redshift에서 데이터 검색을 지원합니다.

커넥터는 이 문서에 나와 있는 Windows 버전을 지원합니다.

Redshift에서 많은 양의 데이터를 복사할 때 최상의 성능을 위해 Amazon S3을 통해 기본 제공 Redshift UNLOAD를 사용하는 것이 좋습니다. 자세한 내용은 UNLOAD를 사용하여 Amazon Redshift에서 데이터 복사를 참조하세요.

필수 구성 요소

자체 호스팅 통합 런타임을 사용하여 데이터를 온-프레미스 데이터 저장소로 복사하는 경우 통합 런타임에(컴퓨터의 IP 주소 사용) Amazon Redshift 클러스터에 대한 액세스 권한을 부여합니다. 자세한 내용은 클러스터에 대한 액세스 권한 부여 를 참조하세요. 버전 2.0의 경우 자체 호스팅 통합 런타임 버전은 5.54.0.0 이상이어야 합니다.

Azure 데이터 저장소에 데이터를 복사하는 경우, Azure 데이터 센터에서 사용하는 IP 주소 및 SQL 범위를 계산하기 위해 Azure 데이터 센터 IP 범위를 참조하세요.

버전 1.0의 경우

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

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

버전 2.0용 Amazon Redshift ODBC 드라이버 설치

버전 2.0에서 Amazon Redshift 커넥터를 사용하려면 자체 호스팅 통합 런타임을 실행하는 컴퓨터에 Amazon Redshift ODBC 드라이버를 설치 합니다.

시작

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

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

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

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

  2. Amazon을 검색하고 Amazon Redshift 커넥터를 선택합니다.

    Amazon Redshift 커넥터를 선택합니다.

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

    Amazon Redshift에 연결된 서비스를 구성합니다.

커넥터 구성 세부 정보

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

연결된 서비스 속성

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

속성 설명 필수
유형 형식 속성은 AmazonRedshift로 설정되어야 합니다.
버전 지정한 버전입니다. 버전 2.0의 경우 예입니다.
서버 Amazon Redshift 서버의 IP 주소 또는 호스트 이름입니다.
항구 Amazon Redshift 서버가 클라이언트 연결을 수신하는 데 사용하는 TCP 포트 수입니다. 아니요(기본값: 5439)
데이터베이스 Amazon Redshift 데이터베이스의 이름입니다.
사용자 이름 데이터베이스에 대한 액세스 권한이 있는 사용자의 이름입니다.
암호 사용자 계정의 password입니다. 이 필드를 SecureString으로 표시하여 안전하게 저장하거나, Azure Key Vault에 저장된 비밀을 참조합니다.
커넥트비아 데이터 저장소에 연결하는 데 사용할 Integration Runtime입니다.
버전 2.0을 선택하는 경우 자체 호스팅 통합 런타임만 사용할 수 있으며 해당 버전은 5.54.0.0 이상이어야 합니다.
버전 1.0을 선택하는 경우 Azure Integration Runtime 또는 자체 호스팅 통합 런타임(데이터 저장소가 프라이빗 네트워크에 있는 경우)을 사용할 수 있습니다. 지정하지 않으면 기본 Azure Integration Runtime을 사용합니다.
아니요

예: 버전 2.0

{
    "name": "AmazonRedshiftLinkedService",
    "properties":
    {
        "type": "AmazonRedshift",
        "version": "2.0",
        "typeProperties":
        {
            "server": "<server name>",
            "database": "<database name>",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

예: 버전 1.0

{
    "name": "AmazonRedshiftLinkedService",
    "properties":
    {
        "type": "AmazonRedshift",
        "typeProperties":
        {
            "server": "<server name>",
            "database": "<database name>",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

데이터 세트 속성

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

Amazon Redshift에서 데이터를 복사하려는 경우 다음과 같은 속성이 지원됩니다.

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

예제

{
    "name": "AmazonRedshiftDataset",
    "properties":
    {
        "type": "AmazonRedshiftTable",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Amazon Redshift linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

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

복사 작업 속성

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

원본으로 Amazon Redshift

Amazon Redshift에서 데이터를 복사하려면 복사 작업의 원본 형식을 AmazonRedshiftSource로 설정합니다. 복사 작업 source 섹션에서 다음 속성이 지원됩니다.

속성 설명 필수
유형 복사 작업 원본의 type 속성을 AmazonRedshiftSource로 설정해야 합니다.
문의 사용자 지정 쿼리를 사용하여 데이터를 읽습니다. 예: select * from MyTable. 아니요(데이터 세트의 "tableName"이 지정된 경우)
redshiftUnloadSettings Amazon Redshift UNLOAD를 사용하는 경우 속성 그룹입니다. 아니요
s3 링크드 서비스 이름 “AmazonS3” 형식의 연결된 서비스 이름을 지정하여 중간 저장소로 사용하려는 Amazon S3을 참조합니다. 예(UNLOAD를 사용하는 경우)
bucketName 중간 데이터를 저장할 S3 버킷을 지정합니다. 제공하지 않으면 서비스에서 자동으로 생성합니다. 예(UNLOAD를 사용하는 경우)

예제: UNLOAD를 사용하여 복사 작업에서 Amazon Redshift 원본

"source": {
    "type": "AmazonRedshiftSource",
    "query": "<SQL query>",
    "redshiftUnloadSettings": {
        "s3LinkedServiceName": {
            "referenceName": "<Amazon S3 linked service>",
            "type": "LinkedServiceReference"
        },
        "bucketName": "bucketForUnload"
    }
}

다음 섹션에서 UNLOAD를 사용하여 Amazon Redshift에서 효율적으로 데이터를 복사하는 방법에 대해 알아봅니다.

UNLOAD를 사용하여 Amazon Redshift에서 데이터 복사

UNLOAD는 쿼리의 결과를 Amazon S3(Amazon Simple Storage Service)의 하나 이상의 파일에 언로드할 수 있는 Amazon Redshift에서 제공하는 메커니즘입니다. Redshift에서 큰 데이터 집합을 복사하기 위해 Amazon에서 권장하는 방법입니다.

예: UNLOAD, 단계적 복사 및 PolyBase를 사용하여 Amazon Redshift에서 Azure Synapse Analytics로 데이터 복사

이 샘플 사용 사례의 경우 복사 작업은 "redshiftUnloadSettings"에 구성된 대로 Amazon Redshift에서 Amazon S3으로 데이터를 언로드한 다음 "stagingSettings"에 지정된 대로 Amazon S3에서 Azure Blob으로 데이터를 복사하고, 마지막으로 PolyBase를 사용하여 Azure Synapse Analytics로 데이터를 로드합니다. 모든 중간 형식은 복사 작업에서 제대로 처리됩니다.

Redshift에서 Azure Synapse Analytics로의 복사 워크플로

"activities":[
    {
        "name": "CopyFromAmazonRedshiftToSQLDW",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "AmazonRedshiftDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRedshiftSource",
                "query": "select * from MyTable",
                "redshiftUnloadSettings": {
                    "s3LinkedServiceName": {
                        "referenceName": "AmazonS3LinkedService",
                        "type": "LinkedServiceReference"
                    },
                    "bucketName": "bucketForUnload"
                }
            },
            "sink": {
                "type": "SqlDWSink",
                "allowPolyBase": true
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": "AzureStorageLinkedService",
                "path": "adfstagingcopydata"
            },
            "dataIntegrationUnits": 32
        }
    }
]

Amazon Redshift에 대한 데이터 형식 매핑

Amazon Redshift에서 데이터를 복사하는 경우 Amazon Redshift의 데이터 형식에서 서비스에서 사용하는 내부 데이터 형식에 다음 매핑이 적용됩니다. 복사 활동에서 원본 스키마와 데이터 형식을 싱크에 매핑하는 방법에 대한 자세한 내용은 스키마 및 데이터 형식 매핑을 참조하세요.

Amazon Redshift 데이터 형식 중간 서비스 데이터 형식(버전 2.0의 경우) 중간 서비스 데이터 형식(버전 1.0의 경우)
bigint Int64 Int64
BOOLEAN 불리언 (Boolean) String
CHAR String String
DATE 날짜와 시간 날짜와 시간
숫자형(정밀도 <= 28) 십진수 십진수
DECIMAL(정밀도 > 28) String String
배정밀도 Double Double
정수 Int32 Int32
real 싱글 싱글
스몰인트 (SMALLINT) Int16 Int16
TEXT String String
타임 스탬프 날짜와 시간 날짜와 시간
VARCHAR String String

조회 작업 속성

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

Amazon Redshift 커넥터 수명 주기 및 업그레이드

다음 표에서는 Amazon Redshift 커넥터의 여러 버전에 대한 릴리스 단계 및 변경 로그를 보여 줍니다.

버전 릴리스 단계 변경사항 기록
버전 1.0 GA 버전 사용 가능 /
버전 2.0 GA 버전 사용 가능 • 버전 5.54.0.0 이상에서 자체 호스팅 통합 런타임만 지원합니다.

BOOLEAN은 Boolean 데이터 유형으로 읽습니다.

Amazon Redshift 커넥터를 버전 1.0에서 버전 2.0으로 업그레이드

  1. 연결된 서비스 편집 페이지에서 버전 2.0을 선택하고 연결된 서비스 속성을 참조하여 연결된 서비스를 구성합니다.

  2. Amazon Redshift 연결된 서비스 버전 2.0에 대한 데이터 형식 매핑은 버전 1.0의 데이터 형식 매핑과 다릅니다. 최신 데이터 형식 매핑을 알아보려면 Amazon Redshift에 대한 데이터 형식 매핑을 참조하세요.

  3. 버전 5.54.0.0 이상을 사용하여 자체 호스팅 통합 런타임을 적용합니다. Azure Integration Runtime은 버전 2.0에서는 지원되지 않습니다.

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