Amazon QLDB의 REDACT_REVISION 저장 프로시저 - Amazon Quantum Ledger Database(QLDB)

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

Amazon QLDB의 REDACT_REVISION 저장 프로시저

참고

2021년 7월 22일 이전에 생성된 원장은 현재 수정할 수 없습니다. Amazon QLDB 콘솔에서 원장 생성 시간을 볼 수 있습니다.

Amazon QLDB에서는 REDACT_REVISION 저장 프로시저를 사용하여 인덱싱된 스토리지와 저널 스토리지 모두에서 비활성 상태의 개별 문서 수정본을 영구적으로 삭제합니다. 이 저장 프로시저는 지정된 수정본의 모든 사용자 데이터를 삭제합니다. 하지만 저널 시퀀스와 문서 ID 및 해시를 포함한 문서 메타데이터는 변경되지 않습니다. 이 작업은 되돌릴 수 없습니다.

지정된 문서 수정본은 기록에서 비활성 상태여야 합니다. 문서의 최신 활성 수정본은 수정할 수 없습니다.

이 저장 프로시저를 실행하여 수정 요청을 제출하면 QLDB는 데이터 삭제를 비동기적으로 처리합니다. 수정이 완료되면 지정된 수정본(data 구조로 표시됨)의 사용자 데이터가 새 dataHash 필드로 대체됩니다. 이 필드의 값은 제거된 data 구조의 Amazon Ion 해시입니다. 따라서 원장은 전반적인 데이터 무결성을 유지하고 기존 검증 API 작업을 통해 암호화 방식으로 검증 가능한 상태를 유지합니다.

샘플 데이터를 사용한 수정 작업의 예는 문서 개정본 수정하기수정 예제 항목을 참조하세요.

참고

특정 테이블에서 이 PartiQL 명령을 실행하기 위한 액세스를 제어하는 방법을 알아보려면 Amazon QLDB에서 표준 권한 모드로 시작하기 섹션을 참조하세요.

수정 고려 사항 및 제한

Amazon QLDB에서 데이터 수정을 시작하기 전에 다음 고려 사항과 제한 사항을 검토하세요.

  • REDACT_REVISION 저장 프로시저는 비활성 상태의 개별 문서 수정본의 사용자 데이터를 대상으로 합니다. 여러 수정본을 수정하려면 각 수정본마다 한 번씩 저장 프로시저를 실행해야 합니다. 트랜잭션당 하나의 수정본을 수정할 수 있습니다.

  • 문서 수정본 내의 특정 필드를 수정하려면 먼저 별도의 데이터 조작 언어(DML) 문을 사용하여 수정본을 수정해야 합니다. 자세한 내용은 개정본 내 특정 필드 수정하기 섹션을 참조하세요.

  • QLDB가 수정 요청을 받은 후에는 요청을 취소하거나 변경할 수 없습니다. 수정 완료 여부를 확인하려면 수정본의 data 구조가 dataHash 필드로 대체되었는지 확인하면 됩니다. 자세한 내용은 수정 완료 여부 확인 단원을 참조하십시오.

  • 수정은 QLDB 서비스 외부에 복제된 QLDB 데이터에는 영향을 주지 않습니다. 여기에는 Amazon S3로의 모든 내보내기와 Amazon Kinesis Data Streams로의 스트림이 포함됩니다. QLDB 외부에 저장된 모든 데이터를 관리하려면 다른 데이터 보존 방법을 사용해야 합니다.

  • 수정은 저널에 기록된 PartiQL 명령문의 리터럴 값에는 영향을 주지 않습니다. 모범 사례에 따라 파라미터화된 명령문은 리터럴 값 대신 변수 자리 표시자를 사용하여 프로그래밍 방식으로 실행해야 합니다. 저널에서 자리 표시자는 수정이 필요할 수 있는 민감한 정보 대신 물음표(?)로 기록됩니다.

    QLDB 드라이버를 사용하여 PartiQL 명령문을 프로그래밍 방식으로 실행하는 방법을 알아보려면 드라이버 시작하기에서 지원되는 각 프로그래밍 언어의 자습서를 참조하세요.

구문

EXEC REDACT_REVISION `block-address`, 'table-id', 'document-id'

인수

`block-address`

수정할 문서의 수정본의 저널 블록 위치입니다. 주소는 strandIdsequenceNo라는 두 개의 필드로 구성된 Amazon Ion 구조입니다.

이 값은 백틱으로 표시되는 Ion 리터럴 값입니다. 예:

`{strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:17}`

블록 주소를 찾는 방법을 알아보려면 문서 메타데이터 쿼리 섹션을 참조하세요.

'table-id'

수정하고자 하는 문서 개정본이 있는 테이블의 고유 ID로, 작은 따옴표로 표시됩니다.

테이블 ID를 찾는 방법에 대한 자세한 내용은 시스템 카탈로그 쿼리 섹션을 참조하세요.

'document-id'

수정할 개정본의 고유한 문서 ID로, 작은 따옴표로 표시됩니다.

문서 ID를 찾는 방법에 대한 자세한 내용은 문서 메타데이터 쿼리 섹션을 참조하세요.

반환 값

수정해야 할 문서 개정을 다음 형식으로 나타내는 Amazon Ion 구조입니다.

{ blockAddress: { strandId: String, sequenceNo: Int }, tableId: String, documentId: String, version: Int }
반환 구조 필드
  • blockAddress - 수정할 수정본의 저널 블록 위치입니다. 주소에는 다음과 같은 두 가지 필드가 있습니다.

    • strandId - 블록을 포함하는 저널 스트랜드의 고유 ID입니다.

    • sequenceNo - 스트랜드 내 블록 위치를 지정하는 인덱스 번호입니다.

  • tableId - 수정하려는 수정본이 있는 테이블의 고유 ID입니다.

  • documentId - 수정할 수정본의 고유한 문서 ID입니다.

  • version - 수정할 문서 수정본의 버전 번호입니다.

다음은 샘플 데이터를 사용한 반환 구조의 예입니다.

{ blockAddress: { strandId: "CsRnx0RDoNK6ANEEePa1ov", sequenceNo: 134 }, tableId: "6GZumdHggklLdMGyQq9DNX", documentId: "IXlQPSbfyKMIIsygePeKrZ", version: 0 }

예시

EXEC REDACT_REVISION `{strandId:"7z2P0AyQKWD8oFYmGNhi8D", sequenceNo:7}`, '8F0TPCmdNQ6JTRpiLj2TmW', '05K8zpGYWynDlEOK5afDRc'