원격 호스트에서 데이터 로드
COPY 명령을 사용하면 Amazon EC2 인스턴스나 다른 컴퓨터 같은 하나 이상의 원격 호스트에서 병렬로 파일을 로드할 수 있습니다. COPY는 SSH를 사용하여 원격 호스트에 연결하고 원격 호스트에서 명령을 실행해 텍스트 출력을 생성합니다.
원격 호스트는 Amazon EC2 Linux 인스턴스이거나 SSH 연결을 허용하도록 구성된 다른 Unix 또는 Linux 컴퓨터일 수 있습니다. 이 안내서에서는 원격 호스트가 Amazon EC2 인스턴스라고 가정합니다. 다른 컴퓨터의 절차가 다를 경우, 안내서에서 차이점을 명시합니다.
Amazon Redshift는 여러 호스트에 연결할 수 있으며 각 호스트에 대해 여러 SSH 연결을 열 수 있습니다. Amazon Redshift는 각 연결을 통해 고유한 명령을 전송하여 호스트의 표준 출력에 대한 텍스트 출력을 생성합니다. 그러면 Amazon Redshift가 텍스트 파일을 읽을 때 텍스트 출력을 읽습니다.
시작하기 전 준비 사항
시작하기 전에 다음을 갖추고 있어야 합니다.
-
SSH를 사용해 연결할 수 있는, Amazon EC2 인스턴스와 같은 하나 이상의 호스트 시스템.
-
호스트의 데이터 원본.
Amazon Redshift 클러스터가 호스트에서 실행되어 텍스트 출력을 생성한다는 명령을 내립니다. 클러스터가 호스트에 연결된 후 COPY 명령이 명령을 실행하고, 호스트의 표준 출력에서 텍스트를 읽으며, 데이터를 병렬로 Amazon Redshift 테이블에 로드합니다. 텍스트 출력은 COPY 명령이 수집할 수 있는 형식이어야 합니다. 자세한 내용은 입력 데이터 준비 섹션을 참조하세요.
-
컴퓨터에서 호스트에 액세스합니다.
Amazon EC2 인스턴스의 경우 SSH 연결을 사용하여 호스트에 액세스합니다. Amazon Redshift 클러스터의 퍼블릭 키를 호스트의 권한 부여된 키 파일에 추가하려면 호스트에 액세스해야 합니다.
-
실행 중인 Amazon Redshift 클러스터입니다.
클러스터를 시작하는 방법에 대한 자세한 내용은 Amazon Redshift 시작 안내서를 참조하세요.
데이터 로드 프로세스
이 단원에서는 원격 호스트에서 데이터를 로드하는 프로세스를 단계별로 살펴봅니다. 다음 단원에서는 각 단계에서 해야 할 일을 자세히 설명합니다.
-
1단계: 클러스터 퍼블릭 키와 클러스터 노드 IP 주소 검색
퍼블릭 키를 사용하면 Amazon Redshift 클러스터 노드가 원격 호스트와의 SSH 연결을 설정할 수 있습니다. 각 클러스터 노드의 IP 주소를 사용하여 이러한 IP 주소를 사용하는 Amazon Redshift 클러스터로부터의 액세스를 허용하도록 호스트 보안 그룹 또는 방화벽을 구성합니다.
-
2단계: 호스트의 권한 부여된 키 파일에 Amazon Redshift 클러스터 퍼블릭 키 추가
호스트가 Amazon Redshift 클러스터를 인식하고 SSH 연결을 수락하도록 호스트의 권한 부여된 키 파일에 Amazon Redshift 클러스터 퍼블릭 키를 추가합니다.
-
3단계: Amazon Redshift 클러스터의 모든 IP 주소를 수락하도록 호스트를 구성
Amazon EC2의 경우 인스턴스의 보안 그룹을 수정하여 Amazon Redshift IP 주소를 수락하도록 입력 규칙을 추가합니다. 다른 호스트의 경우 Amazon Redshift 노드가 원격 호스트와의 SSH 연결을 설정할 수 있도록 방화벽을 수정합니다.
-
필요한 경우 Amazon Redshift가 호스트 식별에 퍼블릭 키를 사용해야 한다고 지정할 수 있습니다. 퍼블릭 키를 찾아 텍스트를 매니페스트 파일에 복사해야 합니다.
-
매니페스트는 Amazon Redshift가 호스트에 연결해 데이터를 가져오는 데 필요한 세부 정보가 포함된 JSON 형식의 텍스트 파일입니다.
-
6단계: Amazon S3 버킷에 매니페스트 파일 업로드
Amazon Redshift는 매니페스트를 읽고 이 정보를 사용해 원격 호스트에 연결합니다. Amazon S3 버킷이 Amazon Redshift 클러스터와 동일한 리전에 속하지 않는 경우에는 REGION 옵션을 사용하여 데이터가 위치한 리전을 지정해야 합니다.
-
Amazon Redshift 데이터베이스에서 COPY 명령을 실행하여 Amazon Redshift 테이블로 데이터를 로드합니다.