기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Neptune의 Gremlin 문
Amazon Neptune의 속성 그래프 데이터는 4위치(쿼드) 문으로 이루어져 있습니다. 이러한 문 각각은 속성 그래프 데이터의 개별 원자 단위를 나타냅니다. 자세한 정보는 Neptune 그래프 데이터 모델을 참조하세요. RDF(Resource Description Framework) 데이터 모델과 마찬가지로 4개 위치는 다음과 같습니다.
subject (S)
predicate (P)
object (O)
graph (G)
각 문은 하나 이상의 리소스에 대한 어설션입니다. 예를 들어 문은 두 리소스 간에 관계가 존재한다는 것을 어설션하거나 일부 리소스에 속성(키-값 페어)을 연결할 수 있습니다.
조건자는 관계 또는 속성의 유형을 설명하는 문의 동사로 생각하면 됩니다. 객체는 관계 또는 속성 값의 대상입니다. 그래프 위치는 선택 사항이며 많은 다양한 방식으로 사용할 수 있습니다. Neptune의 속성 그래프(PG) 데이터에서는 아예 사용되지 않기도 하고(null 그래프), 엣지의 식별자를 표현하는 데 사용되기도 합니다. 공유된 리소스 식별자가 있는 문 집합이 그래프를 생성합니다.
Neptune 속성 그래프 데이터 모델에는 3가지 클래스의 문이 있습니다.
Gremlin 버텍스 레이블 문
Neptune의 버텍스 레이블 문의 용도는 2가지입니다.
먼저, 버텍스의 레이블을 추적합니다.
이러한 문 중 최소한 하나가 존재한다는 것은 그래프에서 특정 버텍스가 존재한다는 것을 암시합니다.
이들 문의 제목이 버텍스 식별자이고 객체가 레이블이며, 둘 모두 사용자가 지정합니다. 이들 문에 대한 특수 고정 조건자(<~label>
으로 표시)와 기본 그래프 식별자(null 그래프)(<~>
로 표시)가 사용됩니다.
예를 들어 다음 addV
순회를 생각해 보십시오.
g.addV("Person").property(id, "v1")
이러한 순회로 인해 다음 문이 그래프에 추가되는 결과가 초래됩니다.
StatementEvent[Added(<v1> <~label> <Person> <~>) .]
Gremlin 엣지 문
Gremlin 엣지 문은 Neptune에서 그래프의 두 버텍스 간에 엣지가 존재한다는 것을 암시합니다. 엣지 문의 제목(S)은 소스 from
버텍스입니다. 조건자(P)는 사용자가 제공한 엣지 레이블입니다. 객체(O)는 대상 to
버텍스입니다. 그래프(G)는 사용자가 제공한 엣지 식별자입니다.
예를 들어 다음 addE
순회를 생각해 보십시오.
g.addE("knows").from(V("v1")).to(V("v2")).property(id, "e1")
순회로 인해 다음 문이 그래프에 추가되는 결과가 초래됩니다.
StatementEvent[Added(<v1> <knows> <v2> <e1>) .]
Gremlin 속성 문
Neptune의 Gremlin 속성 문은 버텍스 또는 엣지에 대한 개별 속성 값을 어설션합니다. 제목은 사용자가 제공한 버텍스 또는 엣지 식별자입니다. 조건자는 속성 이름(키)이고 객체는 개별 속성 값입니다. 다시 말하지만 그래프(G)는 기본 설정된 그래프 식별자(null 그래프)(<~>
로 표시)입니다.
다음 예제를 살펴보세요.
g.V("v1").property("name", "John")
이 문의 결과는 다음과 같습니다.
StatementEvent[Added(<v1> <name> "John" <~>) .]
속성 문은 객체가 기본값(string
, date
, byte
, short
, int
, long
, float
또는 double
)이라는 점에서 다른 문과 다릅니다. 이들의 객체는 다른 어설션의 제목으로 사용할 수 있는 리소스 식별자가 아닙니다.
다중 속성의 경우, 해당 집합의 각 개별 속성 값은 자체 문을 수신합니다.
g.V("v1").property(set, "phone", "956-424-2563").property(set, "phone", "956-354-3692 (tel:9563543692)")
이 결과는 다음과 같습니다.
StatementEvent[Added(<v1> <phone> "956-424-2563" <~>) .] StatementEvent[Added(<v1> <phone> "956-354-3692" <~>) .]