저널 익스포트 출력은 다음과 같습니다. QLDB - 아마존 퀀텀 레저 데이터베이스 (아마존QLDB)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

저널 익스포트 출력은 다음과 같습니다. QLDB

중요

지원 종료 알림: 기존 고객은 2025년 7월 31일 지원이 종료될 QLDB 때까지 Amazon을 사용할 수 있습니다. 자세한 내용은 아마존 QLDB 원장을 Amazon Aurora SQL Postgre로 마이그레이션을 참조하십시오.

Amazon QLDB 저널 내보내기 작업은 저널 블록을 포함하는 데이터 객체 외에도 두 개의 매니페스트 파일을 작성합니다. 해당 파일은 모두 내보내기 요청에서 지정하는 Amazon S3 버킷에 저장됩니다. 다음 섹션에서는 각 출력 객체의 형식과 내용을 설명합니다.

참고

내보내기 작업의 출력 형식으로 지정하는 JSON 경우 Amazon Ion 저널 데이터를 내보낸 데이터 QLDB 객체로 하향 변환합니다. JSON 자세한 정보는 다음으로 하향 변환 JSON 섹션으로 이동하세요.

매니페스트 파일

QLDBAmazon은 각 내보내기 요청에 대해 제공된 S3 버킷에 두 개의 매니페스트 파일을 생성합니다. 초기 매니페스트 파일은 내보내기 요청을 제출하는 즉시 생성됩니다. 최종 매니페스트 파일은 내보내기가 완료된 후에 작성됩니다. 이러한 파일을 사용하여 Amazon S3의 내보내기 작업 상태를 확인할 수 있습니다.

매니페스트 파일의 콘텐츠 형식은 요청된 내보내기 출력 형식과 일치합니다.

초기 매니페스트

초기 매니페스트는 내보내기 작업이 시작되었음을 나타냅니다. 여기에는 요청에 전달한 입력 파라미터가 포함되어 있습니다. 이 파일에는 Amazon S3 대상, 내보내기 시작 및 종료 시간 파라미터 외에도 exportId가 포함되어 있습니다. exportId는 각 내보내기 작업에 QLDB 할당되는 고유한 ID입니다.

파일 명명 규칙은 다음과 같습니다.

s3://DOC-EXAMPLE-BUCKET/prefix/exportId.started.manifest

다음은 Ion 텍스트 형식의 초기 매니페스트 파일과 해당 콘텐츠의 예입니다.

s3://DOC-EXAMPLE-BUCKET/journalExport/8UyXulxccYLAsbN1aon7e4.started.manifest
{ ledgerName:"my-example-ledger", exportId:"8UyXulxccYLAsbN1aon7e4", inclusiveStartTime:2019-04-15T00:00:00.000Z, exclusiveEndTime:2019-04-15T22:00:00.000Z, bucket:"DOC-EXAMPLE-BUCKET", prefix:"journalExport", objectEncryptionType:"NO_ENCRYPTION", outputFormat:"ION_TEXT" }

초기 매니페스트는 내보내기 요청에 지정된 경우에만 outputFormat을 포함합니다. 출력 형식을 지정하지 않으면 내보내는 데이터의 기본값은 ION_TEXT 형식입니다.

DescribeJournalS3Export API 작업 및 내보낸 Amazon S3 객체의 콘텐츠 유형도 출력 형식을 나타냅니다.

최종 매니페스트

최종 매니페스트는 특정 저널 스트랜드의 내보내기 작업이 완료되었음을 나타냅니다. 내보내기 작업은 각 스트랜드에 대해 별도의 최종 매니페스트 파일을 작성합니다.

참고

QLDBAmazon에서 스트랜드는 원장 일지의 파티션입니다. QLDB현재는 단일 스트랜드가 포함된 저널만 지원합니다.

최종 매니페스트에는 내보내기 중에 기록된 데이터 객체 키의 정렬된 목록이 포함됩니다. 파일 명명 규칙은 다음과 같습니다.

s3://DOC-EXAMPLE-BUCKET/prefix/exportId.strandId.completed.manifest

스트랜드에 QLDB 할당되는 고유 strandId ID입니다. 다음은 Ion 텍스트 형식의 최종 매니페스트 파일과 해당 콘텐츠의 예입니다.

s3://DOC-EXAMPLE-BUCKET/journalExport/8UyXulxccYLAsbN1aon7e4.JdxjkR9bSYB5jMHWcI464T.completed.manifest
{ keys:[ "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.1-4.ion", "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.5-10.ion", "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.11-12.ion", "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.13-20.ion", "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.21-21.ion" ] }

데이터 객체

Amazon은 제공된 Amazon S3 버킷에 Amazon Ion 형식의 텍스트 또는 바이너리 표현 또는 JSON라인 텍스트 형식으로 저널 데이터 객체를 QLDB 작성합니다.

JSON라인 형식에서 내보낸 데이터 객체의 각 블록은 줄 바꿈으로 구분되는 유효한 JSON 객체입니다. 이 형식을 사용하여 JSON 내보내기를 Amazon Athena와 같은 분석 도구와 직접 통합할 수 있으며, 이러한 서비스는 줄 바꿈으로 구분된 항목을 자동으로 파싱할 수 AWS Glue 있기 때문입니다. JSON 형식에 대한 자세한 내용은 라인을 참조하십시오. JSON

데이터 객체 이름

저널 내보내기 작업은 다음과 같은 명명 규칙에 따라 이러한 데이터 객체를 작성합니다.

s3://DOC-EXAMPLE-BUCKET/prefix/yyyy/mm/dd/hh/strandId.startSn-endSn.ion|.json
  • 각 내보내기 작업의 출력 데이터는 청크로 분할됩니다.

  • yyyy/mm/dd/hh - 내보내기 요청을 제출한 날짜 및 시간. 동일한 시간 내에 내보낸 객체는 동일한 Amazon S3 접두사로 그룹화됩니다.

  • strandId - 내보내는 저널 블록을 포함하는 특정 스트랜드의 고유 ID.

  • startSn-endSn - 객체에 포함된 시퀀스 번호 범위. 시퀀스 번호는 스트랜드 내 블록의 위치를 지정합니다.

예를 들어 다음과 같은 경로를 지정한다고 가정하겠습니다.

s3://DOC-EXAMPLE-BUCKET/journalExport/

내보내기 작업을 수행하면 다음과 비슷한 Amazon S3 데이터 객체가 생성됩니다. 이 예제는 객체 이름을 Ion 형식으로 보여줍니다.

s3://DOC-EXAMPLE-BUCKET/journalExport/2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.1-5.ion

데이터 객체 콘텐츠

각 데이터 객체에는 다음 형식의 저널 블록 객체가 포함되어 있습니다.

{ blockAddress: { strandId: String, sequenceNo: Int }, transactionId: String, blockTimestamp: Datetime, blockHash: SHA256, entriesHash: SHA256, previousBlockHash: SHA256, entriesHashList: [ SHA256 ], transactionInfo: { statements: [ { //PartiQL statement object } ], documents: { //document-table-statement mapping object } }, revisions: [ { //document revision object } ] }

블록은 트랜잭션 중에 저널에 커밋되는 객체입니다. 블록에는 트랜잭션 메타데이터가 함께 트랜잭션에서 커밋된 문서 수정본과 이를 커밋한 PartiQL 문을 나타내는 항목이 포함되어 있습니다.

다음은 Ion 텍스트 형식의 샘플 데이터가 있는 블록의 예입니다. 객체 ACL 필드에 대한 자세한 내용은 아마존의 저널 콘텐츠 QLDB 섹션을 참조하세요.

참고

이 블록 예제는 정보 제공 목적으로만 제공됩니다. 표시된 해시는 실제 계산된 해시 값이 아닙니다.

{ blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:1234 }, transactionId:"D35qctdJRU1L1N2VhxbwSn", blockTimestamp:2019-10-25T17:20:21.009Z, blockHash:{{WYLOfZClk0lYWT3lUsSr0ONXh+Pw8MxxB+9zvTgSvlQ=}}, entriesHash:{{xN9X96atkMvhvF3nEy6jMSVQzKjHJfz1H3bsNeg8GMA=}}, previousBlockHash:{{IAfZ0h22ZjvcuHPSBCDy/6XNQTsqEmeY3GW0gBae8mg=}}, entriesHashList:[ {{F7rQIKCNn0vXVWPexilGfJn5+MCrtsSQqqVdlQxXpS4=}}, {{C+L8gRhkzVcxt3qRJpw8w6hVEqA5A6ImGne+E7iHizo=}} ], transactionInfo:{ statements:[ { statement:"CREATE TABLE VehicleRegistration", startTime:2019-10-25T17:20:20.496Z, statementDigest:{{3jeSdejOgp6spJ8huZxDRUtp2fRXRqpOMtG43V0nXg8=}} }, { statement:"CREATE INDEX ON VehicleRegistration (VIN)", startTime:2019-10-25T17:20:20.549Z, statementDigest:{{099D+5ZWDgA7r+aWeNUrWhc8ebBTXjgscq+mZ2dVibI=}} }, { statement:"CREATE INDEX ON VehicleRegistration (LicensePlateNumber)", startTime:2019-10-25T17:20:20.560Z, statementDigest:{{B73tVJzVyVXicnH4n96NzU2L2JFY8e9Tjg895suWMew=}} }, { statement:"INSERT INTO VehicleRegistration ?", startTime:2019-10-25T17:20:20.595Z, statementDigest:{{ggpon5qCXLo95K578YVhAD8ix0A0M5CcBx/W40Ey/Tk=}} } ], documents:{ '8F0TPCmdNQ6JTRpiLj2TmW':{ tableName:"VehicleRegistration", tableId:"BPxNiDQXCIB5l5F68KZoOz", statements:[3] } } }, revisions:[ { hash:{{FR1IWcWew0yw1TnRklo2YMF/qtwb7ohsu5FD8A4DSVg=}} }, { blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:1234 }, hash:{{t8Hj6/VC4SBitxnvBqJbOmrGytF2XAA/1c0AoSq2NQY=}}, data:{ VIN:"1N4AL11D75C109151", LicensePlateNumber:"LEWISR261LL", State:"WA", City:"Seattle", PendingPenaltyTicketAmount:90.25, ValidFromDate:2017-08-21, ValidToDate:2020-05-11, Owners:{ PrimaryOwner:{ PersonId:"GddsXfIYfDlKCEprOLOwYt" }, SecondaryOwners:[] } }, metadata:{ id:"8F0TPCmdNQ6JTRpiLj2TmW", version:0, txTime:2019-10-25T17:20:20.618Z, txId:"D35qctdJRU1L1N2VhxbwSn" } } ] }

revisions 필드에서 일부 개정 객체에는 hash 값만 포함되고 기타 속성은 포함되지 않을 수 있습니다. 이는 사용자 데이터를 포함하지 않는 내부 전용 시스템 수정본입니다. 이러한 수정본의 해시는 저널의 전체 해시 체인의 일부이기 때문에 내보내기 작업에는 해당 블록에 이러한 수정본이 포함됩니다. 암호화 확인에는 전체 해시 체인이 필요합니다.

다음으로 하향 변환 JSON

내보내기 작업의 출력 형식으로 지정하는 JSON 경우 Amazon Ion 저널 데이터를 내보낸 데이터 QLDB 객체로 하향 변환합니다. JSON 그러나 데이터에 존재하지 않는 풍부한 이온 유형을 사용하는 경우 Ion을 JSON 변환하면 손실이 발생할 수 있습니다. JSON

Ion으로의 JSON 변환 규칙에 대한 자세한 내용은 Amazon Ion JSON 쿡북의 하향 변환을 참조하십시오.

내보내기 프로세서 라이브러리(Java)

QLDBAmazon S3에서의 내보내기 처리를 간소화하는 확장 가능한 Java용 프레임워크를 제공합니다. 이 프레임워크 라이브러리는 내보내기의 출력을 읽고 내보낸 블록을 순차적으로 반복하는 작업을 처리합니다. 이 내보내기 프로세서를 사용하려면 amazon-qldb-export-processorawslabs/ -java GitHub 리포지토리를 참조하십시오.