5단계: 문서의 개정 기록 보기 - Amazon Quantum Ledger Database(QLDB)

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

5단계: 문서의 개정 기록 보기

VIN이 1N4AL11D75C109151인 차량의 등록 데이터를 수정한 후, 등록된 모든 소유자의 기록과 기타 업데이트된 필드를 쿼리할 수 있습니다. 내장 기록 함수를 쿼리하여 삽입, 업데이트 및 삭제한 문서의 모든 개정 사항을 볼 수 있습니다.

기록 함수는 애플리케이션 데이터와 관련 메타데이터를 모두 포함하는 테이블의 커밋된 보기에서 개정 사항을 반환합니다. 메타데이터는 각 개정이 이루어진 시점, 순서, 어떤 트랜잭션이 이 개정을 수행했는지를 정확하게 보여줍니다.

이 단계에서는 vehicle-registration 원장의 VehicleRegistration 테이블에 있는 문서의 개정 기록을 쿼리합니다.

개정 기록을 보려면
  1. https://console.aws.amazon.com/qldb에서 Amazon QLDB 콘솔을 엽니다.

  2. 탐색 창에서 PartiQL 편집기를 선택합니다.

  3. vehicle-registration 원장을 선택합니다.

  4. 문서 기록을 조회하려면 먼저 고유한 id를 찾아야 합니다. 커밋된 보기를 쿼리하는 것 외에도 문서 id를 가져오는 또 다른 방법은 테이블의 기본 사용자 뷰에서 BY 키워드를 사용하는 것입니다. 자세한 내용은 BY 절을 사용하여 문서 ID 쿼리하기 섹션을 참조하세요.

    쿼리 편집기 창에서 다음 문을 입력한 후 실행을 선택합니다.

    SELECT r_id FROM VehicleRegistration AS r BY r_id WHERE r.VIN = '1N4AL11D75C109151'
  5. 그런 다음 이 id 값을 사용하여 기록 함수를 쿼리할 수 있습니다. 다음 문을 입력한 다음 실행을 선택합니다. 필요에 따라 id 값을 고유한 문서 ID로 교체합니다.

    SELECT h.data.VIN, h.data.City, h.data.Owners FROM history(VehicleRegistration) AS h WHERE h.metadata.id = 'ADR2LQq48kB9neZDupQrMm' --replace with your id
    참고

    이 자습서의 목적을 위해 이 기록 쿼리는 문서 ID ADR2LQq48kB9neZDupQrMm의 모든 개정 내용을 반환합니다. 그러나 가장 좋은 방법은 문서 ID와 날짜 범위(시작 시간 및 종료 시간)를 모두 사용하여 기록 쿼리를 한정하는 것입니다.

    QLDB에서는 모든 SELECT 쿼리가 트랜잭션에서 처리되며 트랜잭션 시간 초과 제한이 적용됩니다. 시작 시간과 종료 시간을 포함하는 기록 쿼리는 날짜 범위 한정이라는 이점을 갖습니다. 자세한 내용은 기록 함수을 참조하십시오.

    기록 함수는 커밋된 보기와 동일한 스키마의 문서를 반환합니다. 이 예제에서는 수정된 차량 등록 데이터를 프로젝션합니다. 다음과 같이 출력됩니다.

    VIN 구/군/시 소유자
    "1N4AL11D75C109151" "Seattle" {PrimaryOwner:{PersonId:""},SecondaryOwners:[]}
    "1N4AL11D75C109151" "Seattle" {PrimaryOwner:{PersonId:"294jJ3YUoH1IEEm8GSabOs"}, SecondaryOwners:[]}
    "1N4AL11D75C109151" "Everett" {PrimaryOwner:{PersonId:"7NmE8YLPbXc0IqesJy1rpR"}, SecondaryOwners:[]}
    "1N4AL11D75C109151" "Everett" {PrimaryOwner:{PersonId:"7NmE8YLPbXc0IqesJy1rpR"}, SecondaryOwners:[{PersonId:"5Ufgdlnj06gF5CWcOIu64s"}]}
    참고

    기록 쿼리가 문서 개정 내용을 항상 순차적으로 반환하지 않을 수도 있습니다.

    출력을 검토하고 변경 사항이 4단계: 원장의 문서 수정에서 수행한 내용을 반영하는지 확인합니다.

  6. 그런 다음 각 개정의 문서 메타데이터를 검사할 수 있습니다. 다음 문을 입력한 다음 실행을 선택합니다. 이번에도 id 값을 자신의 문서 ID로 적절하게 교체하십시오.

    SELECT VALUE h.metadata FROM history(VehicleRegistration) AS h WHERE h.metadata.id = 'ADR2LQq48kB9neZDupQrMm' --replace with your id

    다음과 같이 출력됩니다.

    version id txTime txId
    0 "ADR2LQq48kB9neZDupQrMm" 2019-05-23T19:20:360d-3Z "FMoVdWuPxJg3k466Iz4i75"
    1 "ADR2LQq48kB9neZDupQrMm" 2019-05-23T21:40:199d-3Z "KWByxe842Xw8DNHcvARPOt"
    2 "ADR2LQq48kB9neZDupQrMm" 2019-05-23T21:44:432d-3Z "EKwDOJRwbHpFvmAyJ2Kdh9"
    3 "ADR2LQq48kB9neZDupQrMm" 2019-05-23T21:49:254d-3Z "96EiZd7vCmJ6RAvOvTZ4YA"

    이 메타데이터 필드는 각 항목이 언제 수정되었는지, 어떤 트랜잭션을 통해 수정되었는지에 대한 세부 정보를 제공합니다. 이 데이터에서 다음을 추론할 수 있습니다.

    • 이 문서는 시스템이 할당한 idADR2LQq48kB9neZDupQrMm로 고유하게 식별됩니다 이는 Base62로 인코딩된 문자열로 표시되는 범용 고유 식별자(UUID)입니다.

    • txTime는 문서(버전 0)의 초기 개정이 2019-05-23T19:20:360d-3Z에 작성되었음을 보여줍니다.

    • 이후의 각 트랜잭션은 동일한 문서 id, 증분된 버전 번호, 업데이트된 txIdtxTime를 사용하여 새 개정을 생성합니다.

vehicle-registration 원장에서 암호화된 방식으로 문서 개정을 검증하려면 6단계: 원장에 있는 문서 검증로 이동하십시오.