Redshift에서 데이터를 추출하고 S3 버킷에 동일한 데이터를 쓰는 작업을 작성하려고합니다. 지금까지 AWS Glue를 살펴 보았지만 Glue는 redshift에서 맞춤 sql을 실행할 수 없습니다. 언로드 명령을 실행할 수 있고 S3에 직접 저장할 수 있다는 것을 알고 있습니다. AWS에서 매개 변수화되고 예약 될 수있는 솔루션을 찾고 있습니다.AWS Redshift에서 S3로 데이터 추출 예약
답변
AWS 데이터 파이프 라인을 사용해보십시오.
AWS 데이터 파이프 라인은 일반 작업을 정의하고 예약 할 수있는 AWS 서비스입니다. 이러한 작업을 파이프 라인이라고합니다. 파이프 라인은 Redshift에서 S3으로 데이터를 추출하는 등 필요한 작업의 비즈니스 로직을 포함합니다. 예를 들어 가끔씩 실행되도록 파이프 라인을 예약 할 수 있습니다. 매일.
파이프 라인이 정의되어 있으면 버전 제어가 가능합니다. Data Pipeline Architect를 사용하여 브라우저에서 파이프 라인 정의를 준비하거나 컴퓨터에서 로컬로 JSON 파일을 사용하여 파이프 라인 정의를 작성할 수 있습니다. 파이프 라인 정의는 추출 된 데이터에 사용할 S3 경로를 지정하는 것과 같이 Redshift 데이터베이스, S3 노드, SQL 활동 및 매개 변수와 같은 구성 요소로 구성됩니다.
AWS 데이터 파이프 라인 서비스는 일정 계획, 파이프 라인의 구성 요소 간 종속성, 모니터링 및 오류 처리를 처리합니다.
은 특정 사용 케이스를 위해, 나는 다음과 같은 옵션을 고려할 것입니다 : 1는 다음과 같은 구성 요소와 파이프 라인을 정의
옵션 : SQLDataNode 및 S3DataNode. SQLDataNode는 Redshift 데이터베이스와 SELECT 쿼리를 참조하여 데이터 추출에 사용합니다. S3DataNode는 데이터를 저장하는 데 사용되는 S3 경로를 가리 킵니다. SQLDataNode에서 S3DataNode로 데이터를 복사하는 CopyActivity 활동을 추가합니다. 이러한 파이프 라인이 실행되면 SQLDataNode를 사용하여 Redshift에서 데이터를 검색하고 CopyActivity를 사용하여 해당 데이터를 S3DataNode로 복사합니다. S3DataNode의 S3 경로는 매개 변수화 될 수 있으므로 파이프 라인을 실행할 때마다 다릅니다.
옵션 2
첫째, S3에 데이터를 언로드하는 데 사용할 UNLOAD 문을 사용하여 SQL 쿼리를 정의합니다. 선택 사항으로 파일에 저장하고 S3에 업로드 할 수 있습니다. SQLActivity 구성 요소를 사용하여 Redshift 데이터베이스에서 실행할 SQL 쿼리를 지정합니다. SQLActivity의 SQL 쿼리는 쿼리를 저장 한 S3 경로 (선택 사항) 또는 쿼리 자체에 대한 참조 일 수 있습니다. 파이프 라인이 실행될 때마다 Redshift에 연결되어 S3에 데이터를 저장하는 SQL 쿼리를 실행합니다. 옵션 2의 제약 조건 : UNLOAD 문에서 S3 경로는 정적입니다. 모든 데이터 추출을 별도의 S3 경로에 저장하려는 경우 UNLOAD 문을 수정하여 즉시 실행하지 않는 다른 S3 경로를 실행해야합니다.
이 파이프 라인은 어디에서 실행됩니까?
EC2 인스턴스에서 TaskRunner를 사용하면 데이터 파이프 라인을 실행하기 위해 AWS에서 제공하는 도구입니다. 파이프 라인이 실행되는 시점에 해당 인스턴스를 자동으로 시작하거나 TaskRunner가 설치된 상태로 이미 실행중인 인스턴스를 참조 할 수 있습니다. EC2 인스턴스가 Redshift 데이터베이스에 연결할 수 있는지 확인해야합니다.
관련 문서 :
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/what-is-datapipeline.html
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-redshiftdatabase.html
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-sqldatanode.html
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-sqlactivity.html
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-using-task-runner.html
사용 쉘 SCRI pt를 UNLOAD 명령으로 사용하고 구성 파일을 사용하여 매개 변수화하십시오. 설정 cronjob 예정대로 실행합니다. 이 모든 것을 설정하려면 EC2를 사용하십시오. – hadooper