2

AWS 데이터 파이프 라인을 사용하여 Postgres RDS에서 AWS S3으로 데이터를 파이프하려고했습니다. 아무도 이것이 어떻게 행해지는지 알지 못합니다.AWS Postgres RDS 테이블을 AWS S3로 내보내기

데이터 파이프 라인을 사용하여 Postgres 테이블을 AWS S3으로 내보내고 싶었습니다. 데이터 파이프 라인을 사용하는 이유는이 프로세스를 자동화하고이 내보내기를 매주 한 번씩 실행하려고하기 때문입니다.

다른 제안 사항도 사용할 수 있습니다.

답변

1

내가 MySQL과 참조로 문서를 사용하여 처음부터 파이프 라인을 구축 : 여기 https://github.com/awslabs/data-pipeline-samples/tree/master/samples/RDStoS3

는 코드입니다.

DataPipelineDefaultResourceRole & & DataPipelineDefaultRole의 역할을 가져야합니다.

매개 변수를로드하지 않았으므로 architech에 들어가서 자격 증명과 폴더를 입력해야합니다.

희망이 있습니다.

{ 
    "objects": [ 
    { 
     "failureAndRerunMode": "CASCADE", 
     "resourceRole": "DataPipelineDefaultResourceRole", 
     "role": "DataPipelineDefaultRole", 
     "pipelineLogUri": "#{myS3LogsPath}", 
     "scheduleType": "ONDEMAND", 
     "name": "Default", 
     "id": "Default" 
    }, 
    { 
     "database": { 
     "ref": "DatabaseId_WC2j5" 
     }, 
     "name": "DefaultSqlDataNode1", 
     "id": "SqlDataNodeId_VevnE", 
     "type": "SqlDataNode", 
     "selectQuery": "#{myRDSSelectQuery}", 
     "table": "#{myRDSTable}" 
    }, 
    { 
     "*password": "#{*myRDSPassword}", 
     "name": "RDS_database", 
     "id": "DatabaseId_WC2j5", 
     "type": "RdsDatabase", 
     "rdsInstanceId": "#{myRDSId}", 
     "username": "#{myRDSUsername}" 
    }, 
    { 
     "output": { 
     "ref": "S3DataNodeId_iYhHx" 
     }, 
     "input": { 
     "ref": "SqlDataNodeId_VevnE" 
     }, 
     "name": "DefaultCopyActivity1", 
     "runsOn": { 
     "ref": "ResourceId_G9GWz" 
     }, 
     "id": "CopyActivityId_CapKO", 
     "type": "CopyActivity" 
    }, 
    { 
     "dependsOn": { 
     "ref": "CopyActivityId_CapKO" 
     }, 
     "filePath": "#{myS3Container}#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}", 
     "name": "DefaultS3DataNode1", 
     "id": "S3DataNodeId_iYhHx", 
     "type": "S3DataNode" 
    }, 
    { 
     "resourceRole": "DataPipelineDefaultResourceRole", 
     "role": "DataPipelineDefaultRole", 
     "instanceType": "m1.medium", 
     "name": "DefaultResource1", 
     "id": "ResourceId_G9GWz", 
     "type": "Ec2Resource", 
     "terminateAfter": "30 Minutes" 
    } 
    ], 
    "parameters": [ 
    ] 
} 
0

데이터 파이프 라인 인터페이스에서 복사 활동을 정의하여 Postgres RDS 인스턴스에서 S3으로 데이터를 추출 할 수 있습니다.

  1. 형식 SqlDataNode의 데이터 노드를 만듭니다. 테이블 이름을 지정하고 쿼리를 선택하십시오.
  2. 사용자 이름, 암호 및 데이터베이스 이름과 함께 RDS 인스턴스 ID (인스턴스 ID는 URL에 있습니다. 예 : your-instance-id.xxxxx.eu-west-1.rds.amazonaws.com)를 지정하여 데이터베이스 연결을 설정하십시오. .
  3. S3DataNode 유형의 데이터 노드를 만듭니다.
  4. 복사 작업을 만들고 SqlDataNode를 입력으로 설정하고 S3DataNode를 출력으로 설정합니다.

또 다른 옵션은 Alooma와 같은 외부 도구를 사용하는 것입니다. Alooma는 호스팅 된 Amazon RDS의 PostgreSQL 데이터베이스에서 Amazon S3로 테이블을 복제 할 수 있습니다 (https://www.alooma.com/integrations/postgresql/s3). 이 프로세스는 자동화 될 수 있으며 일주일에 한 번 실행할 수 있습니다.

관련 문제