Hindsight 20/20: 특정 시점 쿼리
3952 단어 datasciencedatabasesql
통사론
SET TRANSACTION
QUERY TIME <query_time>
<query_time> ::=
timestamp
| STATE
QUERY TIME
지정된 시간에 스냅샷과 유사한 환경에서 실행되도록 쿼리를 설정합니다. 지정된 시간 이후에 AMENDED 또는 DISCONTINUED이었던 값이 복원되고 관계형 엔터티가 유지되도록 보장됩니다.[!NOTE]
The query time is currently specified in UTC time format.
상태
쿼리가 시스템의 현재 상태에서 정상적으로 작동하도록 지정합니다.
LIFETIME queries 및
QUERY TIME
는 상호 배타적입니다. 수명 쿼리가 STATE
이외의 버전에서 실행되면 오류가 발생합니다. READ UNCOMMITTED
격리 수준을 사용합니다. 타임스탬프
읽을 시간입니다. 타임스탬프는 따옴표로 묶은 타임스탬프 또는 유효한 타임스탬프를 계산하는 표현식으로 지정할 수 있습니다.
쿼리 시간을 설정합니다.
QUERY TIME
키워드를 사용하여 지정된 시간에 스냅샷을 시뮬레이션할 수 있습니다. 시스템이 변경 사항 설정을 지속적으로 추적하기 때문에 트랜잭션 시간은 성능에 작은 영향만 주어야 합니다. 아래의 모든 진술이 기술적으로 커밋되었지만 여전히 이전 상태를 볼 수 있습니다.CREATE BLOCKCHAIN users TRADITIONAL (id UINT64 AUTO INCREMENT PRIMARY, name STRING PACKED);
INSERT users (name) VALUES ("john"), ("jimmy"), ("jeff");
--Assume Time = "2021-02-26 00:07:10.000000000"
DISCONTINUE users (id, name) VALUES (1, "jimmy");
SET TRANSACTION QUERY TIME "2021-02-26 00:07:10.000000000";
SELECT * FROM users;
산출
지정된 트랜잭션 시간 이전에 "jimmy"가 블록체인에 삽입되었기 때문입니다. 레코드는 데이터베이스의 해당 상태로 유지됩니다.
ID
이름
0
남자
1
조립식 쇠지레
2
제프
결론
이 예는 사소하지만 동일한 논리가 감사 및 데이터 분석에 사용됩니다. 고유한 방식으로 데이터베이스 구조를 사용하여 사용자가 시간이 지남에 따라 진화하는 데이터에 액세스할 수 있도록 합니다.
Reference
이 문제에 관하여(Hindsight 20/20: 특정 시점 쿼리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cassidymountjoy/hindsight-20-20-querying-any-point-in-time-2noi텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)