기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
문서 메타데이터 쿼리
중요
지원 종료 알림: 기존 고객은 2025년 7월 31일 지원이 종료될 QLDB 때까지 Amazon을 사용할 수 있습니다. 자세한 내용은 아마존 QLDB 원장을 Amazon Aurora SQL Postgre로 마이그레이션을
INSERT
명령문은 버전 번호가 0인 문서의 초기 개정을 생성합니다. 각 문서를 고유하게 식별하기 위해 Amazon은 메타데이터의 일부로 문서 ID를 QLDB 할당합니다.
문서 ID 및 버전 번호 외에도 각 문서에 대해 시스템에서 생성한 다른 메타데이터를 테이블에 QLDB 저장합니다. 이 메타데이터에는 트랜잭션 정보, 저널 속성 및 문서의 해시 값이 포함됩니다.
시스템에서 IDs 할당되는 모든 식별자는 Base62로 인코딩된 문자열로 표시되는 범용 고유 식별자 (UUID) 입니다. 자세한 내용은 아마존 IDs 유일의 제품 QLDB 단원을 참조하십시오.
커밋된 뷰
커밋된 뷰를 쿼리하여 문서 메타데이터에 액세스할 수 있습니다. 이 뷰는 사용자 테이블에 직접 해당하는 시스템 정의 테이블의 문서를 반환합니다. 여기에는 데이터와 시스템에서 생성한 메타데이터의 최신 커밋되고 삭제되지 않은 개정이 포함됩니다. 이 뷰를 쿼리하려면 쿼리의 테이블 이름에 접두사 _ql_committed_
를 추가합니다. (접두사는 _ql_
시스템 객체용으로 예약되어 있습니다.) QLDB
SELECT * FROM _ql_committed_VehicleRegistration AS r WHERE r.data.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
이전에 인덱스가 포함된 테이블 생성 및 문서 삽입에 삽입한 데이터를 사용하여 이 쿼리의 출력에는 삭제되지 않은 각 문서의 최신 개정 버전에 대한 시스템 내용이 표시됩니다. 시스템 문서의 메타데이터는 metadata
필드에 중첩되어 있고 사용자 데이터는 data
필드에 중첩되어 있습니다.
{
blockAddress:{
strandId:"JdxjkR9bSYB5jMHWcI464T",
sequenceNo:14
},
hash:{{wCsmM6qD4STxz0WYmE+47nZvWtcCz9D6zNtCiM5GoWg=}},
data:{
VIN: "1N4AL11D75C109151",
LicensePlateNumber: "LEWISR261LL",
State: "WA",
City: "Seattle",
PendingPenaltyTicketAmount: 90.25,
ValidFromDate: 2017-08-21T,
ValidToDate: 2020-05-11T,
Owners: {
PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" },
SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }]
}
},
metadata:{
id:"3Qv67yjXEwB9SjmvkuG6Cp",
version:0,
txTime:2019-06-05T20:53:321d-3Z,
txId:"HgXAkLjAtV0HQ4lNYdzX60"
}
},
{
blockAddress:{
strandId:"JdxjkR9bSYB5jMHWcI464T",
sequenceNo:14
},
hash:{{wPuwH60TtcCvg/23BFp+redRXuCALkbDihkEvCX22Jk=}},
data:{
VIN: "KM8SRDHF6EU074761",
LicensePlateNumber: "CA762X",
State: "WA",
City: "Kent",
PendingPenaltyTicketAmount: 130.75,
ValidFromDate: 2017-09-14T,
ValidToDate: 2020-06-25T,
Owners: {
PrimaryOwner: { PersonId: "IN7MvYtUjkp1GMZu0F6CG9" },
SecondaryOwners: []
}
},
metadata:{
id:"JOzfB3lWqGU727mpPeWyxg",
version:0,
txTime:2019-06-05T20:53:321d-3Z,
txId:"HgXAkLjAtV0HQ4lNYdzX60"
}
}
커밋된 뷰 필드
-
blockAddress
- 문서 개정이 커밋된 원장 저널의 블록 위치입니다. 암호화 검증에 사용할 수 있는 주소에는 다음과 같은 두 개의 필드가 있습니다.-
strandId
- 블록을 포함하는 저널 스트랜드의 고유 ID입니다. -
sequenceNo
- 스트랜드 내 블록 위치를 지정하는 인덱스 번호입니다.
참고
이 예제의 두 문서는 동일한
sequenceNo
의blockAddress
를 가지고 있습니다. 이러한 문서는 단일 트랜잭션(이 경우에는 단일 명령문) 내에 삽입되었으므로 동일한 블록에서 커밋되었습니다. -
-
hash
— 문서 SHA 개정을 고유하게 나타내는 -256 Ion 해시 값. 해시는 개정판의data
및metadata
필드를 포함하며 암호화 검증에 사용할 수 있습니다. -
data
- 문서의 사용자 데이터 속성입니다.개정을 수정하면 이
data
구조가dataHash
필드로 대체되며 필드의 값은 제거된data
구조의 Ion 해시입니다. -
metadata
- 문서의 메타데이터 속성입니다.-
id
- 시스템에서 할당한 문서의 고유 ID입니다. -
version
- 문서의 버전 번호입니다. 이는 0으로 시작하는 정수로, 문서가 개정될 때마다 증가합니다. -
txTime
- 문서 개정이 저널에 커밋된 시점의 타임스탬프입니다. -
txId
- 문서 개정을 커밋한 트랜잭션의 고유 ID입니다.
-
커밋된 뷰와 사용자 뷰 조인
커밋된 뷰의 테이블을 사용자 뷰의 테이블과 조인하는 쿼리를 작성할 수 있습니다. 예를 들어 한 테이블의 id
문서를 다른 테이블의 사용자 정의 필드와 조인하고자 할 수 있습니다.
다음 쿼리는 PersonId
및 문서 id
필드에서 각각 DriversLicense
및 Person
라는 두 테이블을 조인하며, 후자에 대해 커밋된 뷰를 사용합니다.
SELECT * FROM DriversLicense AS d INNER JOIN _ql_committed_Person AS p ON d.PersonId = p.metadata.id WHERE p.metadata.id = '
1CWScY2qHYI9G88C2SjvtH
'
기본 사용자 뷰에서 문서 ID 필드를 쿼리하는 방법을 알아보려면 BY 절을 사용하여 문서 ID 쿼리하기을 참조하세요.