교차 계정으로 S3에서 Aurora로 직접 데이터 로드
LOAD DATA FROM S3
AWS의 MySQL 호환 DB인 곳의 Aurora에는 데이터를 S3에서 직접 로드하는 구문이 준비되어 있다.
이것의 사용예는 클래스 메소드 등도 블로그로 하고 있으므로 거기까지 화제로 하지 않는다.
SQL 구문
자세한 설정 방법은 위의 공식 문서를 보고 싶다. 상당히 힘들어서, DB측에 전용의 IAM롤과, DB의 파라미터 그룹, 그리고 액세스하는 유저에게 퍼미션을 설정할 필요가 있다.
그리고 무언가로 'S3-URI'에 파일 경로를 지정하면 읽을 수 있습니다.
유용한 것입니다.
LOAD DATA FROM S3 [FILE | PREFIX | MANIFEST] 'S3-URI'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[PARTITION (partition_name,...)]
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]
샘플 DDL
sample.sql
LOAD DATA FROM S3 's3://your.name.of.bucket/normal.csv'
INTO TABLE `schema_name`.`table_name`
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
S3가 같은 계정 내이거나 공공이 되어 있으면 이것으로 설정은 끝난다고 생각한다.
교차 계정에서 작업 및 오류
비록 올바르게 IAM을 설정해도 AuroraDB의 대향이 되는 S3를 보관 유지하는 AWS 계정이 자신의 것과 다른 경우 아래와 같은 에러가 나온다
error: Unable to initialize S3Stream
참고
교차 계정에서 작업하기 위해 S3 설정
예 2: 버킷 소유자가 교차 계정 버킷 권한을 부여
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Example permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AccountB-ID:root"
},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::examplebucket"
]
}
]
}
이것을 S3의 버킷으로 설정하면, Aurora내에서
LOAD FROM S3
를 실행할 수 있게 된다.Reference
이 문제에 관하여(교차 계정으로 S3에서 Aurora로 직접 데이터 로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hiroyuki-nagata/items/7b6b22760c6dc8801cbe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)