Amazon DynamoDB 테이블에 데이터를 대량으로 업로드하려고 합니다. 어떻게 해야 합니까?
해결 방법
다음 옵션 중 하나를 사용하여 DynamoDB에 대량으로 데이터를 업로드합니다.
BatchWriteItem
BatchWriteItem API 작업을 사용하여 여러 개의 PutItem 호출을 동시에 실행할 수 있습니다. 코드에서 병렬 프로세스 또는 스레드를 사용하여 여러 병렬 BatchWriteItem API 호출을 실행하여 데이터를 더 빠르게 로드할 수도 있습니다.
AWS Data Pipeline
데이터가 Amazon Simple Storage Service(Amazon S3)에 있는 경우 Data Pipeline을 사용하여 DynamoDB로 내보낼 수 있습니다. Data Pipeline은 Amazon EMR 클러스터를 생성하고 데이터를 Amazon S3에서 DynamoDB로 내보내는 프로세스를 병렬 BatchWriteItem 요청을 통해 자동화합니다. Data Pipeline을 사용할 때 병렬 전송을 위한 코드를 작성할 필요가 없습니다. 자세한 내용은 Amazon S3에서 DynamoDB로 데이터 가져오기를 참조하세요.
테이블 가져오기 기능
데이터가 S3에 저장된 경우 테이블 가져오기 기능을 사용하여 새 DynamoDB 테이블에 데이터를 업로드할 수 있습니다. 이 기능은 압축(GZIP 또는 ZSTD) 또는 비압축 형식의 CSV, DynamoDB JSON 또는 Amazon ION 형식을 지원합니다. 자세한 내용은 Amazon S3에서 DynamoDB 데이터 가져오기: 작동 방식을 참조하세요.
Amazon EMR
Amazon EMR 및 Apache Hive를 사용하여 데이터를 DynamoDB에 업로드하려면 다음을 수행합니다.
- EMR 클러스터를 만듭니다.
릴리즈에서 emr-5.30.0 이상을 선택합니다.
애플리케이션의 경우 Hive가 포함된 옵션을 선택합니다.
- 데이터의 Amazon S3 위치를 가리키는외부 Hive 테이블을 생성합니다.
- 다른 외부 Hive 테이블을 생성하여 DynamoDB 테이블을 가리킵니다.
- INSERT OVERWRITE 명령을 사용하여 Amazon S3에서 DynamoDB로 데이터를 씁니다. 자세한 내용은 DynamoDB로 데이터 가져오기를 참조하세요.
AWS Database Migration Service(AWS DMS)
AWS DMS를 사용하여 관계형 데이터베이스에서 DynamoDB 테이블로 데이터를 내보낼 수 있습니다. 자세한 내용은 Amazon DynamoDB 데이터베이스를 AWS Database Migration Service의 대상으로 사용을 참조하세요.
AWS Glue
업로드하려는 데이터가 원래 DynamoDB 내보내기 기능을 사용하여 다른 DynamoDB 테이블에서 S3로 내보낸 데이터인 경우 이 옵션을 사용하는 것이 좋습니다. 이 옵션은 내보내기 기능이 DynamoDB 백업 기능을 사용하고 원본 테이블을 스캔하지 않기 때문에 대용량 데이터 세트를 업로드할 때 효율적입니다. 소스 테이블의 성능이나 가용성에 영향을 주지 않습니다. 자세한 내용은 Using AWS Glue and Amazon DynamoDB export를 참조하세요.