다음을 통해 공유


Azure Cosmos DB for Apache Gremlin을 사용하여 시스템 문서 속성에 액세스

적용 대상: Gremlin

Azure Cosmos DB for Gremlin에는 모든 항목에 _ts, _self, _attachments, _rid, _etag 등의 시스템 속성이 있습니다. 또한 Gremlin 엔진이 모서리에 inVPartitionoutVPartition 속성을 추가합니다. 기본적으로 이러한 속성은 통과에 사용할 수 없습니다. 그러나 Gremlin 통과에 특정 속성이나 모든 속성을 포함할 수 있습니다.

g.withStrategies(ProjectionStrategy.build().IncludeSystemProperties('_ts').create())

E-Tag

이 속성은 낙관적 동시성 제어에 사용됩니다. 애플리케이션이 작업을 별도의 트래버스로 나누어야 하는 경우 eTag 속성을 사용하여 동시 쓰기 시 데이터 손실을 방지합니다.

g.withStrategies(ProjectionStrategy.build().IncludeSystemProperties('_etag').create()).V('1').has('_etag', '"00000100-0000-0800-0000-5d03edac0000"').property('test', '1')

TTL(Time to Live)

그래프에 문서 만료가 사용하도록 설정되어 있고 문서에 ttl 속성 집합이 설정된 경우 Gremlin 트래버스에서 이 속성 집합을 일반 꼭짓점 또는 에지 속성 집합으로 사용할 수 있습니다. ProjectionStrategy는 TTL(Time to Live) 속성 노출을 사용하도록 설정하는 데 필요하지 않습니다.

  • 다음 명령을 사용하여 새 정점에서 TTL(time-to-live)을 설정합니다.

    g.addV(<ID>).property('ttl', <expirationTime>)
    

    예를 들어 다음 트래버스로 만들어진 정점은 123초 후에 자동으로 삭제됩니다.

    g.addV('vertex-one').property('ttl', 123)
    
  • 다음 명령을 사용하여 기존 정점에서 TTL(time-to-live)을 설정합니다.

    g.V().hasId(<ID>).has('pk', <pk>).property('ttl', <expirationTime>)
    
  • 꼭짓점에 TTL 속성을 적용해도 연결된 가장자리에 자동으로 적용되지는 않습니다. 이 동작은 Edge가 데이터베이스 저장소의 독립적인 레코드이기 때문에 발생합니다. 다음 명령을 사용하여 정점과 정점의 모든 들어오고 나가는 에지에 대한 TTL(Time-to-Live)을 설정합니다.

    g.V().hasId(<ID>).has('pk', <pk>).as('v').bothE().hasNot('ttl').property('ttl', <expirationTime>)
    

참고 항목

Azure Portal에서 컨테이너의 TTL(Time to Live)을 -1 또는 켜기(기본값 없음)로 설정할 수 있습니다. 그런 다음 항목에 TTL 값이 명시적으로 설정되어 있지 않으면 모든 항목에 대해 TTL이 무한합니다.

다음 단계