DynamoDB 테이블 내보내기 출력 형식 - Amazon DynamoDB

DynamoDB 테이블 내보내기 출력 형식

DynamoDB 테이블 내보내기에는 테이블 데이터가 포함된 파일 외에 두 개의 매니페스트 파일이 포함됩니다. 해당 파일은 모두 내보내기 요청에서 지정하는 Amazon S3 버킷에 저장됩니다. 다음 단원에서는 각 출력 객체의 형식과 내용을 설명합니다.

매니페스트 파일

DynamoDB는 두 개의 매니페스트 파일과 해당 체크섬 파일을 각 내보내기 요청에 지정된 S3 버킷에 생성합니다.

export-prefix/AWSDynamoDB/ExportId/manifest-summary.json export-prefix/AWSDynamoDB/ExportId/manifest-summary.checksum export-prefix/AWSDynamoDB/ExportId/manifest-files.json export-prefix/AWSDynamoDB/ExportId/manifest-files.checksum

테이블 내보내기를 요청할 때 export-prefix를 선택합니다. 이렇게 하면 대상 S3 버킷의 파일을 정리하는 데 도움이 됩니다. ExportId는 동일한 S3 버킷으로 여러 내보내기를 수행할 때 export-prefix가 서로 덮어쓰지 않도록 하는 고유한 토큰입니다.

참고

또한 DynamoDB는 _started라는 빈 파일을 매니페스트 파일과 동일한 디렉터리에 생성합니다. 이 파일은 대상 버킷이 쓰기 가능하고 내보내기가 시작되었는지 확인합니다. 해당 파일은 삭제해도 됩니다.

요약 매니페스트

manifest-summary.json 파일에는 내보내기 작업에 대한 요약 정보가 포함되어 있습니다. 형식은 다음과 같습니다.

{ "version": "2020-06-30", "exportArn": "arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog/export/01234567890123-a1b2c3d4", "startTime": "2020-11-04T07:28:34.028Z", "endTime": "2020-11-04T07:33:43.897Z", "tableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog", "tableId": "12345a12-abcd-123a-ab12-1234abc12345", "exportTime": "2020-11-04T07:28:34.028Z", "s3Bucket": "ddb-productcatalog-export", "s3Prefix": "2020-Nov", "s3SseAlgorithm": "AES256", "s3SseKmsKeyId": null, "manifestFilesS3Key": "AWSDynamoDB/01345678901234-abc12345/manifest-files.json", "billedSizeBytes": 0, "itemCount": 8, "outputFormat": "DYNAMODB_JSON" }

파일 매니페스트

manifest-files.json 파일에는 내보낸 테이블 데이터를 포함하는 파일에 대한 정보가 포함되어 있습니다. 파일은 JSON 라인 형식이므로 줄 바꿈이 항목 구분 기호로 사용됩니다. 다음 예제에서는 파일 매니페스트에 있는 한 데이터 파일의 세부 정보가 가독성을 향상하기 위해 여러 줄 형식으로 되어 있습니다.

{ "itemCount": 8, "md5Checksum": "sQMSpEILNgoQmarvDFonGQ==", "etag": "af83d6f217c19b8b0fff8023d8ca4716-1", "dataFileS3Key": "AWSDynamoDB/11111111111111-22222222/data/33334444EXAMPLE.json.gz" }

데이터 객체

DynamoDB는 테이블 데이터를 DynamoDB JSON 및 Amazon Ion의 두 가지 형식으로 내보낼 수 있습니다. 선택하는 형식과 관계없이 데이터는 manifest-files.json 파일에 있는 키로 명명되는 여러 압축 파일에 기록됩니다.

export-prefix/AWSDynamoDB/ExportId/data/bafybeiczss3yxay3o4abnabbb.json.gz export-prefix/AWSDynamoDB/ExportId/data/gkes5o3lnrhoznhnkyax3hxvya.json.gz

DynamoDB JSON

DynamoDB JSON 형식의 테이블 내보내기는 여러 Item 객체로 구성됩니다. 개별 객체는 DynamoDB의 표준 마샬링된 JSON 형식입니다.

DynamoDB JSON 내보내기 데이터의 사용자 지정 구문 분석기를 생성하는 경우에는 형식이 JSON 라인이라는 점에 유의하세요. 즉, 줄 바꿈이 항목 구분 기호로 사용된다는 의미입니다. Athena, AWS Glue 등의 여러 AWS 서비스에서 이 형식을 자동으로 구문 분석합니다.

다음 예제에서는 DynamoDB JSON 내보내기의 단일 항목이 가독성을 향상하기 위해 여러 줄 형식으로 되어 있습니다.

{ "Item":{ "Authors":{ "SS":[ "Author1", "Author2" ] }, "Dimensions":{ "S":"8.5 x 11.0 x 1.5" }, "ISBN":{ "S":"333-3333333333" }, "Id":{ "N":"103" }, "InPublication":{ "BOOL":false }, "PageCount":{ "N":"600" }, "Price":{ "N":"2000" }, "ProductCategory":{ "S":"Book" }, "Title":{ "S":"Book 103 Title" } } }

Amazon Ion

Amazon Ion은 대규모 서비스 중심 아키텍처를 엔지니어링할 때 매일 직면하는 신속한 개발, 분리, 효율성 문제를 해결하기 위해 빌드된 서식 있는 자기 기술형 계층적 데이터 직렬화 형식입니다. DynamoDB는 JSON의 상위 집합인 Ion 텍스트 형식으로 테이블 데이터를 내보낼 수 있습니다.

테이블을 Ion 형식으로 내보내면 테이블에서 사용되는 DynamoDB 데이터 유형이 Ion 데이터 유형에 매핑됩니다. DynamoDB 세트는 Ion 형식 주석을 사용하여 소스 테이블에서 사용되는 데이터 유형을 구분합니다.

DynamoDB-Ion 데이터 유형 변환
DynamoDB 데이터 유형 Ion 표현
문자열(S) string
Boolean(BOOL) bool
숫자(N) decimal
이진수(B) blob
세트(SS, NSS, BS) list(유형 주석 $dynamodb_SS, $dynamodb_NS 또는 $dynamodb_BS 사용)
목록 list
struct

Ion 내보내기의 항목은 줄 바꿈으로 구분됩니다. 각 줄은 Ion 버전 마커로 시작되고 그 다음에 Ion 형식의 항목이 표시됩니다. 다음 예제에서는 Ion 내보내기의 항목이 가독성을 향상하기 위해 여러 줄 형식으로 되어 있습니다.

$ion_1_0 { Item:{ Authors:$dynamodb_SS::["Author1","Author2"], Dimensions:"8.5 x 11.0 x 1.5", ISBN:"333-3333333333", Id:103., InPublication:false, PageCount:6d2, Price:2d3, ProductCategory:"Book", Title:"Book 103 Title" } }