Amazon Redshift에서 데이터 로드
Amazon Redshift 데이터베이스에 데이터를 로드하는 방법에는 여러 가지가 있습니다. 로드하는 데 널리 사용되는 데이터 소스 중 하나는 Amazon S3 파일입니다. 다음 표에는 Amazon S3 소스로 시작하는 데 사용할 수 있는 몇 가지 방법이 요약되어 있습니다.
사용 방법 | 설명 | 필요한 경우 |
---|---|---|
COPY 명령 |
배치 파일 모으기를 실행하여 Amazon S3 파일에서 데이터를 로드합니다. 이 방법은 Amazon Redshift의 병렬 처리 기능을 활용합니다. 자세한 내용은 COPY 명령으로 테이블 로드 섹션을 참조하세요. |
배치 파일 모으기를 수동으로 시작하기 위한 기본 데이터 로드 요구 사항이 필요할 때 사용해야 합니다. 이 방법은 주로 사용자 지정 및 서드 파티 파일 모으기 파이프라인이나 일회성 또는 임시 파일 모으기 워크로드에 사용됩니다. |
COPY... CREATE JOB 명령(자동 복사) |
추적된 Amazon S3 경로에 새 파일이 생성되면 COPY 명령을 자동으로 실행합니다. 자세한 내용은 Amazon S3 버킷에서 자동으로 파일을 복사하기 위해 S3 이벤트 통합 만들기 섹션을 참조하세요. |
Amazon S3에 새 파일이 생성될 때 파일 모으기 파이프라인이 데이터를 자동으로 모아야 하는 경우 사용해야 합니다. Amazon Redshift는 데이터 중복을 방지하기 위해 모은 파일을 추적합니다. 이 방법을 사용하려면 Amazon S3 버킷 소유자의 구성이 필요합니다. |
데이터 레이크 쿼리에서 로드 |
Amazon S3 파일에서 데이터 레이크 쿼리를 실행할 외부 테이블을 생성한 다음 INSERT INTO 명령을 실행하여 데이터 레이크 쿼리의 결과를 로컬 테이블에 로드합니다. 자세한 내용은 Redshift Spectrum용 외부 테이블 섹션을 참조하세요. |
다음 시나리오 중 하나에서 사용해야 합니다.
|
고려할 수 있는 기타 방법 | ||
스트리밍 수집 |
스트리밍 모으기를 사용하면 지연 시간이 짧고 빠른 속도로 Amazon Kinesis Data Streams 및 Amazon Managed Streaming for Apache Kafka에서 Amazon Redshift 프로비저닝된 또는 Redshift Serverless 구체화된 뷰로 스트림 데이터를 모을 수 있습니다. 자세한 내용은 Amazon Kinesis Data Streams Streams에서 수집 시작 및 Apache Kafka 소스에서 스트리밍 수집 시작하기 섹션을 참조하세요. |
데이터를 Amazon S3의 파일로 먼저 스트리밍한 다음 Amazon S3에서 로드하는 사용 사례에서 고려해야 합니다. Amazon S3에 데이터를 보관할 필요가 없는 경우 Amazon Redshift로 데이터를 직접 스트리밍하는 것이 좋을 수 있습니다. |
데이터 레이크 쿼리 실행 |
테이블의 콘텐츠를 로컬 테이블에 모으는 대신 데이터 레이크 테이블에서 직접 쿼리를 실행합니다. 자세한 내용은 Amazon Redshift Spectrum 섹션을 참조하세요. |
사용 사례에서 Amazon Redshift의 로컬 테이블 쿼리 성능이 필요하지 않은 경우 사용해야 합니다. |
Amazon Redshift 쿼리 에디터 v2를 사용하여 배치 로드 |
Amazon Redshift 쿼리 에디터 v2에서 배치 파일 모으기 워크로드를 시각적으로 준비하고 실행할 수 있습니다. 자세한 내용은 Amazon Redshift 관리 가이드의 S3에서 데이터 로드를 참조하세요. |
쿼리 에디터 v2에서 COPY 문을 준비하고 시각적 도구를 통해 COPY 문 준비 프로세스를 간소화하려는 경우 사용해야 합니다. |
Amazon Redshift 쿼리 에디터 v2를 사용하여 로컬 파일에서 데이터 로드 |
Amazon S3에 파일을 수동으로 업로드할 필요 없이 데스크톱에서 Amazon Redshift 테이블로 직접 파일을 업로드할 수 있습니다. 자세한 내용은 Amazon Redshift 관리 가이드의 로컬 파일 설정 및 워크플로우에서 데이터 로드를 참조하세요. |
일회성 쿼리 목적으로 로컬 컴퓨터에서 빠르게 파일을 로드해야 할 경우 사용해야 합니다. 이 방법을 사용하면 Amazon Redshift 쿼리 에디터 v2가 고객 소유의 Amazon S3 버킷에 파일을 임시로 저장하고 이 Amazon S3 경로를 사용하여 복사 명령을 실행합니다. |
COPY 명령은 테이블을 로드하는 가장 효율적인 방법입니다. INSERT 명령을 사용하여 데이터를 테이블에 추가할 수도 있지만 COPY를 사용하는 것보다 효율은 훨씬 떨어집니다. COPY 명령은 여러 데이터 파일 또는 여러 데이터 스트림에서 동시에 읽을 수 있습니다. Amazon Redshift는 Amazon Redshift 노드에 워크로드를 할당하고 노드 슬라이스 전체에 데이터 배포 및 행 정렬을 포함한 로드 작업을 병렬로 수행합니다.
참고
Amazon Redshift Spectrum 외부 테이블은 읽기 전용입니다. 외부 테이블로 복사 또는 삽입할 수 없습니다.
다른 AWS 리소스에 있는 데이터에 액세스하려면 이러한 리소스에 액세스하고 데이터 액세스에 필요한 작업을 수행할 권한이 Amazon Redshift에 있어야 합니다. AWS Identity and Access Management(IAM)를 사용하면 Amazon Redshift 리소스와 데이터에 대한 사용자의 액세스를 제한할 수 있습니다.
초기 데이터 로드 후 상당한 양의 데이터를 추가, 수정 또는 삭제하는 경우, VACUUM 명령을 실행해 데이터를 재구성하고 삭제 후 공간을 회수하는 후속 작업을 수행해야 합니다. 또한 ANALYZE 명령을 실행하여 테이블 통계를 업데이트해야 합니다.