Amazon Aurora MySQL DB 클러스터에서 Amazon S3 버킷의 텍스트 파일로 데이터 저장 - Amazon Aurora

Amazon Aurora MySQL DB 클러스터에서 Amazon S3 버킷의 텍스트 파일로 데이터 저장

SELECT INTO OUTFILE S3 문을 사용하여 Amazon Aurora MySQL DB 클러스터에서 데이터를 쿼리한 후 Amazon S3 버킷에 저장된 텍스트 파일에 저장할 수 있습니다. Aurora MySQL에서는 먼저 파일을 로컬 디스크에 저장한 다음 S3로 내보냅니다. 내보내기가 완료되면 로컬 파일이 삭제됩니다.

Amazon S3 관리형 키(SSE-S3) 또는 AWS KMS key(SSE-KMS: AWS 관리형 키 또는 고객 관리형 키)를 사용하여 Amazon S3 버킷을 암호화할 수 있습니다.

LOAD DATA FROM S3 문은 SELECT INTO OUTFILE S3 문에 의해 만들어진 파일을 사용하여 데이터를 Aurora DB 클러스터에 로드할 수 있습니다. 자세한 내용은 Amazon S3 버킷의 텍스트 파일에서 Amazon Aurora MySQL DB 클러스터로 데이터 로드 단원을 참조하십시오.

참고

이 기능은 Aurora Serverless v1 DB 클러스터에는 지원되지 않습니다. Aurora Serverless v2 DB 클러스터에 지원됩니다.

AWS Management Console, AWS CLI 또는 Amazon RDS API를 사용하여 DB 클러스터 데이터 및 DB 클러스터 스냅샷 데이터를 Amazon S3에 저장할 수 있습니다. 자세한 내용은 Amazon S3로 DB 클러스터 데이터 내보내기Amazon S3로 DB 클러스터 스냅샷 데이터 내보내기 단원을 참조하세요.

Aurora MySQL에 Amazon S3에 대한 액세스 권한 부여

Amazon S3 버킷에 데이터를 저장하기 전에 Aurora MySQL DB 클러스터에 Amazon S3에 액세스할 권한을 부여해야 합니다.

Aurora MySQL에 Amazon S3에 대한 액세스 권한을 부여하려면
  1. Aurora MySQL DB 클러스터에서 Amazon S3에 액세스하도록 허용하는 버킷 및 객체 권한을 제공하는 AWS Identity and Access Management (IAM) 정책을 생성하세요. 지침은 Amazon S3 리소스에 액세스할 수 있는 IAM 정책 생성 단원을 참조하십시오.

    참고

    Aurora MySQL 버전 3.05 이상에서는 AWS KMS 고객 관리형 키를 사용하여 객체를 암호화할 수 있습니다. 이렇게 하려면 IAM 정책에 kms:GenerateDataKey 권한을 포함하세요. 자세한 내용은 AWS KMS 리소스에 액세스할 수 있는 IAM 정책 생성 단원을 참조하십시오.

    AWS 관리형 키 또는 Amazon S3 관리형 키(SSE-S3)를 사용하여 객체를 암호화하는 경우 이 권한이 필요하지 않습니다.

  2. IAM 역할을 생성하고 Amazon S3 리소스에 액세스할 수 있는 IAM 정책 생성에서 생성한 IAM 정책을 새 IAM 역할에 연결하십시오. 지침은 Amazon Aurora에서 AWS 서비스에 액세스하도록 허용하는 IAM 역할 생성 단원을 참조하십시오.

  3. Aurora MySQL 버전 2에서는 aurora_select_into_s3_role이나 aws_default_s3_role DB 클러스터 파라미터를 새 IAM 역할의 Amazon 리소스 이름(ARN)으로 설정합니다. aurora_select_into_s3_role에 대해 지정된 IAM 역할이 없는 경우, Aurora는 aws_default_s3_role에 지정된 IAM 역할을 사용합니다.

    Aurora MySQL 버전 3에서는 aws_default_s3_role을 사용하면 됩니다.

    클러스터가 Aurora 글로벌 데이터베이스의 일부로 포함되는 경우 이 글로벌 데이터베이스의 각 Aurora 클러스터에 대해 이 파라미터를 설정합니다.

    DB 클러스터 파라미터에 대한 자세한 내용은 Amazon Aurora DB 클러스터와 DB 인스턴스 파라미터 단원을 참조하십시오.

  4. Aurora MySQL DB 클러스터의 데이터베이스 사용자가 Amazon S3에 액세스하도록 허용하려면 Amazon Aurora에서 AWS 서비스에 액세스하도록 허용하는 IAM 역할 생성에서 생성한 역할을 해당 DB 클러스터와 연결하십시오.

    Aurora 글로벌 데이터베이스의 경우 글로벌 데이터베이스의 각 Aurora 클러스터와 해당 역할을 연결합니다.

    IAM 역할과 DB 클러스터 연결에 대한 자세한 내용은 IAM 역할을 Amazon Aurora MySQL DB 클러스터와 연결 단원을 참조하십시오.

  5. Amazon S3으로의 아웃바운드 연결을 허용하도록 Aurora MySQL DB 클러스터를 구성하십시오. 지침은 Amazon Aurora에서 다른 AWS 서비스로의 네트워크 통신 활성화 섹션을 참조하세요.

    Aurora 글로벌 데이터베이스의 경우 글로벌 데이터베이스의 각 Aurora 클러스터에 대해 발신 연결을 활성화합니다.

Aurora MySQL에서 데이터 저장 권한 부여

SELECT INTO OUTFILE S3 문을 실행하는 데이터베이스 사용자에게는 특별한 역할이나 권한이 부여되어야 합니다. Aurora MySQL 버전 3에서는 AWS_SELECT_S3_ACCESS 역할을 부여합니다. Aurora MySQL 버전 2에서는 SELECT INTO S3 권한을 부여합니다. DB 클러스터의 관리자 사용자에게는 기본적으로 적절한 역할이나 권한이 부여됩니다. 다음 명령문 중 하나를 사용하여 다른 사용자에게 권한을 부여할 수 있습니다.

Aurora MySQL 버전 3에 대해 다음 명령문을 사용합니다.

GRANT AWS_SELECT_S3_ACCESS TO 'user'@'domain-or-ip-address'
작은 정보

Aurora MySQL 버전 3에서 역할을 사용하는 경우 SET ROLE role_name 또는 SET ROLE ALL 문을 사용하여 해당 역할을 활성화할 수도 있습니다. MySQL 8.0 역할 시스템에 익숙하지 않을 경우 역할 기반 권한 모델에서 자세한 내용을 확인할 수 있습니다. 자세한 내용은 MySQL 참조 설명서의 역할 사용을 참조하세요.

이는 현재 활성 세션에만 적용됩니다. 다시 연결할 때 권한을 부여하려면 SET ROLE 문을 다시 실행해야 합니다. 자세한 내용은 MySQL 참조 매뉴얼의 SET ROLE 문을 참조하세요.

activate_all_roles_on_login DB 클러스터 파라미터로 사용자가 DB 인스턴스에 연결할 때 모든 역할을 자동으로 활성화할 수 있습니다. 이 파라미터를 설정하면 역할을 활성화하는 데 SET ROLE 문을 명시적으로 직접 호출할 필요가 없습니다. 자세한 내용은 MySQL Reference Manual(MySQL 참조 매뉴얼)의 activate_all_roles_on_login을 참조하세요.

하지만 다른 사용자가 저장 프로시저를 직접 호출한 경우에는 저장 프로시저를 시작할 때 명시적으로 SET ROLE ALL을 직접 호출하여 역할을 활성화해야 합니다.

Aurora MySQL 버전 2에 대해 다음 문을 사용합니다.

GRANT SELECT INTO S3 ON *.* TO 'user'@'domain-or-ip-address'

AWS_SELECT_S3_ACCESS 역할 및 SELECT INTO S3 권한은 Amazon Aurora MySQL에만 적용되며 MySQL 데이터베이스 또는 RDS for MySQL DB 인스턴스에서는 사용할 수 없습니다. 복제 소스인 Aurora MySQL DB 클러스터와 복제 클라이언트인 MySQL 데이터베이스 간에 복제를 설정한 경우, 역할 또는 권한에 대한 GRANT 문으로 인해 오류가 생겨 복제가 중단됩니다. 오류를 건너뛰고 복제를 계속 진행하셔도 됩니다. RDS for MySQL DB 인스턴스에서 오류를 건너뛰려면 mysql_rds_skip_repl_error 프로시저를 사용하십시오. 외부 MySQL 데이터베이스에서 오류를 건너뛰려면 slave_skip_errors 시스템 변수(Aurora MySQL 버전 2) 또는 replica_skip_errors 시스템 변수(Aurora MySQL 버전 3)를 사용하세요.

Amazon S3 버킷의 경로 지정

Amazon S3 버킷에서 데이터 및 매니페스트 파일을 저장할 경로를 지정하는 구문은 다음과 같이 LOAD DATA FROM S3 PREFIX 문에 사용된 것과 비슷합니다.

s3-region://bucket-name/file-prefix

경로에는 다음 값이 포함됩니다.

  • region(선택 사항) – 데이터를 저장할 Amazon S3 버킷이 포함된 AWS 리전입니다. 이 값은 선택 사항입니다. region 값을 지정하지 않으면 Aurora은 DB 클러스터와 동일한 리전에 있는 Amazon S3에 파일을 저장합니다.

  • bucket-name – 데이터를 저장할 Amazon S3 버킷의 이름입니다. 가상 폴더 경로를 식별하는 객체 접두사가 지원됩니다.

  • file-prefix – Amazon S3에 저장할 파일을 식별하는 Amazon S3 객체 접두사입니다.

SELECT INTO OUTFILE S3 문으로 만들어진 데이터 파일은 다음 경로를 사용합니다. 여기서 00000은 0부터 시작하는 5자리 정수입니다.

s3-region://bucket-name/file-prefix.part_00000

예를 들어 SELECT INTO OUTFILE S3 문이 데이터 파일을 저장할 경로로 s3-us-west-2://bucket/prefix를 지정하고 3개의 데이터 파일을 만드는 것으로 가정합시다. 지정된 Amazon S3 버킷에는 다음 데이터 파일이 포함됩니다.

  • s3-us-west-2://bucket/prefix.part_00000

  • s3-us-west-2://bucket/prefix.part_00001

  • s3-us-west-2://bucket/prefix.part_00002

데이터 파일을 나열할 매니페스트 만들기

SELECT INTO OUTFILE S3 문을 MANIFEST ON 옵션과 함께 사용하여 문에 의해 만들어진 텍스트 파일을 나열하는 매니페스트 파일(JSON 형식)을 만들 수 있습니다. LOAD DATA FROM S3 문은 매니페스트 파일을 사용하여 데이터 파일을 다시 Aurora MySQL DB 클러스터에 로드할 수 있습니다. 매니페스트 파일을 사용하여 데이터 파일을 Amazon S3에서 Aurora MySQL DB 클러스터로 로드하는 방법에 대한 자세한 내용은 매니페스트 파일을 이용해 로드할 데이터 파일 지정 단원을 참조하십시오.

SELECT INTO OUTFILE S3 문으로 만들어진 매니페스트 파일에 포함된 데이터 파일은 만들어진 순서대로 나열됩니다. 예를 들어 SELECT INTO OUTFILE S3 문이 데이터 파일을 저장할 경로로 s3-us-west-2://bucket/prefix를 지정하고 데이터 파일 3개와 매니페스트 파일을 만드는 것으로 가정합시다. 지정된 Amazon S3 버킷에는 다음 정보를 포함하는 매니페스트 파일 s3-us-west-2://bucket/prefix.manifest가 있습니다.

{ "entries": [ { "url":"s3-us-west-2://bucket/prefix.part_00000" }, { "url":"s3-us-west-2://bucket/prefix.part_00001" }, { "url":"s3-us-west-2://bucket/prefix.part_00002" } ] }

SELECT INTO OUTFILE S3

SELECT INTO OUTFILE S3 문을 사용하여 DB 클러스터에서 데이터를 쿼리한 후 Amazon S3 버킷에 저장된 구분 기호로 구분된 텍스트 파일에 직접 저장할 수 있습니다.

압축 파일은 지원되지 않습니다. 암호화된 파일은 Aurora MySQL 버전 2.09.0부터 지원됩니다.

구문

SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr ...] [FROM table_references [PARTITION partition_list] [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] INTO OUTFILE S3 's3_uri' [CHARACTER SET charset_name] [export_options] [MANIFEST {ON | OFF}] [OVERWRITE {ON | OFF}] [ENCRYPTION {ON | OFF | SSE_S3 | SSE_KMS ['cmk_id']}] export_options: [FORMAT {CSV|TEXT} [HEADER]] [{FIELDS | COLUMNS} [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char'] ] [LINES [STARTING BY 'string'] [TERMINATED BY 'string'] ]

파라미터

SELECT INTO OUTFILE S3 문은 Aurora에 고유한 다음과 같은 필수 및 선택 파라미터를 사용합니다.

s3-uri

사용할 Amazon S3 접두사의 URI를 지정합니다. Amazon S3 버킷의 경로 지정에 설명된 구문을 사용하세요.

FORMAT {CSV|TEXT} [HEADER]

필요에 따라 데이터를 CSV 형식으로 저장합니다.

TEXT 옵션은 기본값이며 기존 MySQL 내보내기 형식을 생성합니다.

CSV 옵션은 쉼표로 구분된 데이터 값을 생성합니다. CSV 형식은 RFC-4180의 사양을 따릅니다. 선택적 키워드인 HEADER를 지정하는 경우 출력 파일에는 헤더 행이 한 줄 포함됩니다. 이 헤더 행의 레이블은 SELECT 문의 열 이름에 해당합니다. AWS 기계 학습 서비스에서 사용할 훈련 데이터 모델에 CSV 파일을 사용할 수 있습니다. AWS 기계 학습 서비스에 내보낸 Aurora 데이터를 사용하는 방법에 대한 자세한 내용은 SageMaker 모델 학습을 위해 Amazon S3로 데이터 내보내기(고급) 섹션을 참조하세요.

MANIFEST {ON | OFF}

Amazon S3에서 매니페스트 파일이 만들어졌는지 여부를 나타냅니다. 매니페스트 파일은 LOAD DATA FROM S3 MANIFEST 문으로 Aurora DB 클러스터에 데이터를 로드하는 데 사용할 수 있는 JavaScript Object Notation(JSON) 파일입니다. For more information about LOAD DATA FROM S3 MANIFEST, see Amazon S3 버킷의 텍스트 파일에서 Amazon Aurora MySQL DB 클러스터로 데이터 로드.

쿼리에서 MANIFEST ON을 지정할 경우 모든 데이터 파일이 만들어지고 업로드된 후 Amazon S3에서 매니페스트 파일이 만들어집니다. 매니페스트 파일은 다음 경로를 사용하여 만들어집니다.

s3-region://bucket-name/file-prefix.manifest

매니페스트 파일 내용의 형식에 대한 자세한 내용은 데이터 파일을 나열할 매니페스트 만들기 단원을 참조하십시오.

OVERWRITE {ON | OFF}

지정된 Amazon S3 버킷의 기존 파일을 덮어쓸지 여부를 나타냅니다. OVERWRITE ON을 지정할 경우 s3-uri에 지정된 URI에서 파일 접두사와 일치하는 기존 파일이 덮어쓰입니다. 그렇지 않으면 오류가 발생합니다.

ENCRYPTION {ON | OFF | SSE_S3 | SSE_KMS ['cmk_id']}

서버 측 암호화를 Amazon S3 관리형 키(SSE-S3) 또는 AWS KMS keys(SSE-KMS, AWS 관리형 키 및 고객 관리형 키 포함)와 함께 사용할지를 나타냅니다. SSE_S3SSE_KMS 설정은 Aurora MySQL 버전 3.05 이상에서 사용할 수 있습니다.

다음 예시와 같이 ENCRYPTION 절 대신 aurora_select_into_s3_encryption_default 세션 변수를 사용할 수도 있습니다. SQL 절이나 세션 변수를 사용하되, 둘 다 사용하지는 마세요.

set session set session aurora_select_into_s3_encryption_default={ON | OFF | SSE_S3 | SSE_KMS};

SSE_S3SSE_KMS 설정은 Aurora MySQL 버전 3.05 이상에서 사용할 수 있습니다.

다음 값으로 aurora_select_into_s3_encryption_default를 설정하는 경우:

  • OFF - S3 버킷의 기본 암호화 정책이 적용됩니다. aurora_select_into_s3_encryption_default의 기본값은 OFF입니다.

  • ON 또는 SSE_S3 - Amazon S3 관리형 키(SSE-S3)를 사용하여 S3 객체가 암호화됩니다.

  • SSE_KMS - S3 객체는 AWS KMS key를 사용하여 암호화됩니다.

    이 경우 세션 변수 aurora_s3_default_cmk_id도 포함합니다. 예:

    set session aurora_select_into_s3_encryption_default={SSE_KMS}; set session aurora_s3_default_cmk_id={NULL | 'cmk_id'};
    • aurora_s3_default_cmk_idNULL인 경우 S3 객체는 AWS 관리형 키를 사용하여 암호화됩니다.

    • aurora_s3_default_cmk_id가 비어 있지 않은 cmk_id 문자열인 경우 S3 객체는 고객 관리형 키를 사용하여 암호화됩니다.

      cmk_id의 값은 빈 문자열일 수 없습니다.

SELECT INTO OUTFILE S3 명령을 사용할 때 Aurora는 다음과 같이 암호화를 결정합니다.

  • SQL 명령에 ENCRYPTION 절이 있는 경우 Aurora는 ENCRYPTION의 값에만 의존하며 세션 변수를 사용하지 않습니다.

  • ENCRYPTION 절이 없는 경우 Aurora는 세션 변수의 값을 사용합니다.

자세한 내용은 Amazon Simple Storage Service 사용 설명서의 Amazon S3 관리형 키(SSE-S3)를 사용한 서버 측 암호화 사용AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화 사용을 참조하세요.

MySQL 설명서의 SELECT 문LOAD DATA 문에서 다른 파라미터에 대한 자세한 내용을 확인할 수 있습니다.

고려 사항

Amazon S3 버킷에 만들어지는 파일 개수는 SELECT INTO OUTFILE S3 문에서 선택된 데이터의 양과 Aurora MySQL의 파일 크기 임계값에 따라 달라집니다. 기본 파일 크기 임계값은 6기가바이트(GB)입니다. 문에서 선택된 데이터가 파일 크기 임계값보다 작으면 파일이 한 개 만들어지고, 그렇지 않으면 파일이 여러 개 만들어집니다. 이 문으로 만들어지는 파일에 대한 다른 고려 사항은 다음과 같습니다.

  • Aurora MySQL은 데이터 파일의 행이 파일 경계를 너머 분할되지 않게 해줍니다. 파일이 여러 개인 경우 마지막 파일을 제외하고 각 데이터 파일의 크기는 기본적으로 파일 크기 임계값에 근접합니다. 하지만 파일 크기 임계값을 준수하려면 행이 두 데이터 파일로 분할되는 경우가 간혹 있습니다. 이런 경우 Aurora MySQL이 행을 원래대로 유지하는 데이터 파일을 만들지만 파일 크기 임계값이 초과될 수 있습니다.

  • Aurora MySQL의 각 SELECT 문은 원자성 트랜잭션으로 실행되므로 대량 데이터 세트를 선택하는 SELECT INTO OUTFILE S3 문은 실행하는 데 시간이 약간 걸릴 수 있습니다. 어떤 이유든 문이 실패할 경우 처음부터 다시 문을 실행해야 합니다. 하지만 문이 실패할 경우 이미 Amazon S3에 업로드된 파일은 지정된 Amazon S3 버킷에 유지됩니다. 처음부터 다시 시작하는 대신 다른 문을 사용하여 나머지 데이터를 업로드할 수 있습니다.

  • 선택할 데이터의 양이 클 경우(25GB 이상) 여러 SELECT INTO OUTFILE S3 문을 사용하여 데이터를 Amazon S3에 저장하는 것이 좋습니다. 각 문은 저장할 데이터의 서로 다른 부분을 선택해야 하며, 데이터 파일을 저장할 때 사용할 file_prefix 파라미터에도 서로 다른 s3-uri를 지정해야 합니다. 여러 문으로 선택할 데이터를 파티셔닝하면 한 문의 오류에서 쉽게 복구할 수 있습니다. 하나의 문에 오류가 발생하면 데이터의 일부만 다시 선택하여 Amazon S3에 업로드하면 됩니다. 여러 문을 사용할 경우 한 트랜잭션을 장시간 실행하지 않아도 되므로 성과를 개선할 수 있습니다.

  • SELECT INTO OUTFILE S3 파라미터에 동일한 file_prefix를 사용하는 여러 s3-uri 문이 동시에 실행되어 Amazon S3로 데이터를 선택할 경우 동작이 정의되지 않습니다.

  • 테이블 스키마 또는 파일 메타데이터와 같은 메타데이터는 Aurora MySQL이 Amazon S3으로 업로드하지 않습니다.

  • 실패를 복구하는 경우와 같이 SELECT INTO OUTFILE S3 쿼리를 재실행하는 경우가 있을 수 있습니다. 이러한 경우 Amazon S3 버킷에서 s3-uri에 지정된 동일한 파일 접두사를 포함하는 기존의 데이터 파일을 모두 제거하거나 OVERWRITE ON 쿼리에서 SELECT INTO OUTFILE S3을 포함해야 합니다.

SELECT INTO OUTFILE S3 문은 성공 또는 실패 시 일반적인 MySQL 오류 번호 및 응답을 반환합니다. MySQL 오류 번호 및 응답에 액세스할 수 없을 경우 완료 여부를 확인할 수 있는 가장 간단한 방법은 문에 MANIFEST ON을 지정하는 것입니다. 매니페스트 파일은 문이 기록하는 마지막 파일입니다. 즉, 매니페스트 파일이 있으면 문이 완료된 것입니다.

현재 SELECT INTO OUTFILE S3 문이 실행되는 동안 진행률을 직접 모니터링하는 방법은 없습니다. 하지만 이 문을 사용하여 Aurora MySQL에서 Amazon S3으로 대량의 데이터를 기록할 때 문에서 선택된 데이터의 크기를 알고 있는 경우 Amazon S3에 만들어진 데이터 파일을 모니터링하여 진행률을 추정할 수 있습니다.

이렇게 하기 위해 명령문에서 선택한 6GB 데이터마다, 지정된 Amazon S3 버킷에 데이터 파일이 한 개 만들어진다는 점을 이용할 수 있습니다. 선택된 데이터 크기를 6GB로 나누어 만들어질 데이터 파일 수를 추측합니다. 그런 다음 문이 실행되는 동안 Amazon S3에 업로드된 파일 수를 모니터링하여 진행률을 추정할 수 있습니다.

예시

다음 문은 employees 테이블에서 모든 데이터를 선택하고 Aurora MySQL DB 클러스터와 다른 리전에 속한 Amazon S3 버킷에 데이터를 저장합니다. 이 문은 각 필드가 쉼표(,) 문자로 끝나고 각 줄이 줄바꿈(\n) 문자로 끝나는 데이터 파일을 만듭니다. 이 문은 sample_employee_data 파일 접두사와 일치하는 파일이 지정된 Amazon S3 버킷에 존재할 경우 오류를 반환합니다.

SELECT * FROM employees INTO OUTFILE S3 's3-us-west-2://aurora-select-into-s3-pdx/sample_employee_data' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

다음 문은 employees 테이블에서 모든 데이터를 선택하고 Aurora MySQL DB 클러스터와 같은 리전에 속한 Amazon S3 버킷에 데이터를 저장합니다. 이 문은 각 필드가 쉼표(,) 문자로 끝나고 각 줄이 줄바꿈(\n) 문자로 끝나는 데이터 파일을 만들고 매니페스트 파일도 만듭니다. 이 문은 sample_employee_data 파일 접두사와 일치하는 파일이 지정된 Amazon S3 버킷에 존재할 경우 오류를 반환합니다.

SELECT * FROM employees INTO OUTFILE S3 's3://aurora-select-into-s3-pdx/sample_employee_data' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' MANIFEST ON;

다음 문은 employees 테이블에서 모든 데이터를 선택하고 Aurora DB 클러스터와 다른 리전에 속한 Amazon S3 버킷에 데이터를 저장합니다. 이 문은 각 필드가 쉼표(,) 문자로 끝나고 각 줄이 줄바꿈(\n) 문자로 끝나는 데이터 파일을 만듭니다. 이 문은 지정된 Amazon S3 버킷에서 sample_employee_data 파일 접두사와 일치하는 기존 파일을 모두 덮어씁니다.

SELECT * FROM employees INTO OUTFILE S3 's3-us-west-2://aurora-select-into-s3-pdx/sample_employee_data' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' OVERWRITE ON;

다음 문은 employees 테이블에서 모든 데이터를 선택하고 Aurora MySQL DB 클러스터와 같은 리전에 속한 Amazon S3 버킷에 데이터를 저장합니다. 이 문은 각 필드가 쉼표(,) 문자로 끝나고 각 줄이 줄바꿈(\n) 문자로 끝나는 데이터 파일을 만들고 매니페스트 파일도 만듭니다. 이 문은 지정된 Amazon S3 버킷에서 sample_employee_data 파일 접두사와 일치하는 기존 파일을 모두 덮어씁니다.

SELECT * FROM employees INTO OUTFILE S3 's3://aurora-select-into-s3-pdx/sample_employee_data' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' MANIFEST ON OVERWRITE ON;