日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

圖數(shù)據(jù)庫(kù)GDB支持TinkerPop Gremlin查詢語言。對(duì)于TinkerPop Gremlin查詢語言,圖數(shù)據(jù)庫(kù)GDB Gremlin與TinkerPop Gremlin在實(shí)現(xiàn)細(xì)節(jié)上存在差異。本文主要介紹圖數(shù)據(jù)庫(kù)GDB對(duì)于TinkerPop Gremlin查詢語言的兼容性。

版本兼容

  • 圖數(shù)據(jù)庫(kù)GDB Gremlin兼容TinkerPop Gremlin 3.3.x以及3.4.x版本。

  • 與圖數(shù)據(jù)庫(kù)GDB服務(wù)端進(jìn)行交互時(shí),使用GraphSON格式。

    說明

    GraphSON是Gremlin的標(biāo)準(zhǔn)格式,使用JSON格式表示點(diǎn)、邊和屬性。

DSL使用限制

圖數(shù)據(jù)庫(kù)GDB Gremlin在DSL的使用規(guī)則上與TinkerPop的差異如下:

  • 所有的DSL必須以內(nèi)置的變量g開頭,該變量等同于TinkerPop中的Graph.traversal()

  • 不支持對(duì)于查詢策略的控制,所有查詢優(yōu)化由圖數(shù)據(jù)庫(kù)GDB內(nèi)置自動(dòng)執(zhí)行。

  • 點(diǎn)和邊的ID為字符串類型,可以由您指定。如果您沒有指定,則自動(dòng)生成UUID作為點(diǎn)或邊的ID。

  • 圖數(shù)據(jù)庫(kù)GDB的屬性圖模型中,目前支持Single、Set兩種模式,即TinkerPop中的

    org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality.single; org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality.set

  • 圖數(shù)據(jù)庫(kù)GDB屬性值的類型當(dāng)前僅支持簡(jiǎn)單類型(包括數(shù)字、字符串和布爾型,即Java編程語言中的byte、char、short、int、long、float、double、boolean和String);不支持復(fù)雜類型(例如日期)。

Groovy限制

圖數(shù)據(jù)庫(kù)GDB Gremlin不支持Groovy語言的相關(guān)特性,包括:

  • Groovy風(fēng)格的Lambda表達(dá)式和內(nèi)嵌函數(shù)調(diào)用,例如map.findAll{it.value>3}

  • 數(shù)學(xué)表達(dá)式,例如1+1

  • 系統(tǒng)調(diào)用,例如System.currentTimeMillis()

事務(wù)的支持

圖數(shù)據(jù)庫(kù)GDB Gremlin默認(rèn)支持事務(wù),具體如下:

  • 不支持ThreadedTransaction(即跨線程,由用戶自己控制開始和提交的方式),而是采用內(nèi)置的Sesionless方式的事務(wù)。一個(gè)DSL內(nèi)部所有的操作認(rèn)為在一個(gè)事務(wù)內(nèi)部。

  • 如果DSL內(nèi)部含有更新類型的Step(Mutation類別),則認(rèn)為該事務(wù)是一個(gè)讀寫事務(wù),反之認(rèn)為是一個(gè)只讀事務(wù)。

  • 一個(gè)DSL從開始的時(shí)候,自動(dòng)開啟一個(gè)事務(wù),在結(jié)束的時(shí)候,按運(yùn)行情況自動(dòng)提交或回滾。

  • 事務(wù)隔離的級(jí)別為Read-Committed。

  • 數(shù)據(jù)導(dǎo)入拆分為按行的一組單條事務(wù),事務(wù)(各數(shù)據(jù)行)之間無關(guān)聯(lián)。

對(duì)TinkerPop Gremlin的Step接口支持情況

說明
  • 主要不支持的接口主要為以下幾類:

    • 用到了GraphComputer類的OLAP接口。

    • Explain和Profiling類型的接口。

    • 其他非增、刪、查、改類型的輔助接口。

  • 下表中支持代表支持,不支持代表不支持。

Step接口

是否支持

備注

connectedComponent()

不支持GraphComputer

io(String)

-

pageRank()

不支持GraphComputer

pageRank(double)

不支持GraphComputer

peerPressure()

不支持GraphComputer

profile()

-

profile(String)

-

program(VertexProgram<?>)

不支持GraphComputer

shortestPath()

不支持GraphComputer

subgraph(String)

-

tx()

-

withBulk(boolean)

-

withComputer()

-

withComputer(Class<? extends GraphComputer>)

-

withComputer(Computer)

-

withoutStrategies(Class<? extends TraversalStrategy>…)

-

withPath()

-

withRemote(Configuration)

-

withRemote(RemoteConnection)

-

withRemote(String)

-

write()

-

addE(String)

-

addE(Traversal<?, String>)

-

addV()

-

addV(String)

-

addV(Traversal<?, String>)

-

aggregate(String)

-

and(Traversal<?, ?>…)

-

as(String, String…)

-

barrier()

-

barrier(Consumer>)

-

barrier(int)

-

both(String…)

-

bothE(String…)

-

bothV()

-

branch(Function,M>

-

branch(Traversal<?, M>)

-

by()

-

by(Comparator)

-

by(Function, Comparator)

-

by(Function)

-

by(Order)

-

by(String)

-

by(String, Comparator)

-

by(T)

-

by(Traversal<?, ?>)

-

by(Traversal<?, ?>, Comparator)

-

cap(String, String…)

-

choose(Function)

-

choose(Predicate, Traversal<?, E2>)

-

choose(Predicate, Traversal<?, E2>, Traversal<?, E2>)

-

choose(Traversal<?, ?>, Traversal<?, E2>)

-

choose(Traversal<?, ?>, Traversal<?, E2>, Traversal<?, E2>)

-

choose(Traversal<?, M>)

-

coalesce(Traversal<?, E2>…)

-

coin(double)

-

constant(E2)

-

count()

-

count(Scope)

-

cyclicPath()

-

dedup(Scope, String…)

-

dedup(String…)

-

drop()

-

E(Object…)

-

emit()

-

emit(Predicate>)

-

emit(Traversal<?, ?>)

-

filter(Predicate>)

-

filter(Traversal<?, ?>)

-

flatMap(Function, Iterator>)

-

flatMap(Traversal<?, E2>)

-

fold()

-

fold(E2, BiFunction)

-

from(String)

-

from(Traversal<?, Vertex>)

-

from(Vertex)

-

group()

-

group(String)

-

groupCount()

-

groupCount(String)

-

has(String)

-

has(String, Object)

-

has(String, P<?>)

-

has(String, String, Object)

-

has(String, String, P<?>)

-

has(String, Traversal<?, ?>)

-

has(T, Object)

-

has(T, P<?>)

-

has(T, Traversal<?, ?>)

-

hasId(Object, Object…)

-

hasId(P)

-

hasKey(P)

-

hasKey(String, String…)

-

hasLabel(P)

-

hasLabel(String, String…)

-

hasNot(String)

-

hasValue(Object, Object…)

-

hasValue(P)

-

id()

-

identity()

-

in(String…)

-

index()

-

inE(String…)

-

inject(E…)

-

inV()

-

is(Object)

-

is(P)

-

iterate()

-

key()

-

label()

-

limit(long)

-

limit(Scope, long)

-

local(Traversal<?, E2>)

-

loops()

-

loops(String)

-

map(Function, E2>)

-

map(Traversal<?, E2>)

-

match(Traversal<?, ?>…)

-

math(String)

-

max()

-

max(Scope)

-

mean()

-

mean(Scope)

-

min()

-

min(Scope)

-

not(Traversal<?, ?>)

-

option(M, Traversal<?, E2>)

-

option(Traversal<?, E2>)

-

optional(Traversal<?, E2>)

-

or(Traversal<?, ?>…)

-

order()

-

order(Scope)

-

otherV()

-

out(String…)

-

outE(String…)

-

outV()

-

path()

-

project(String, String…)

-

properties(String…)

-

property(Object, Object, Object…)

-

property(Cardinality, Object, Object, Object…)

僅支持Cardinality.single

propertyMap(String…)

-

range(long, long)

-

range(Scope, long, long)

-

read()

-

repeat(String, Traversal<?, E>)

-

repeat(Traversal<?, E>)

-

sack()

-

sack(BiFunction)

-

sample(int)

-

sample(Scope, int)

-

select(Column)

-

select(Pop, String)

-

select(Pop, String, String, String…)

-

select(Pop, Traversal)

-

select(String)

-

select(String, String, String…)

-

select(Traversal)

-

sideEffect(Consumer>)

-

sideEffect(Traversal<?, ?>)

-

simplePath()

-

skip(long)

-

skip(Scope, long)

-

store(String)

-

sum()

-

sum(Scope)

-

tail()

-

tail(long)

-

tail(Scope)

-

tail(Scope, long)

-

timeLimit(long)

-

times(int)

-

to(Direction, String…)

-

to(String)

-

to(Traversal<?, Vertex>)

-

to(Vertex)

-

toE(Direction, String…)

-

toV(Direction)

-

tree()

-

tree(String)

-

unfold()

-

union(Traversal<?, E2>…)

-

until(Predicate>)

-

until(Traversal<?, ?>)

-

V(Object…)

-

value()

-

valueMap(boolean, String…)

-

valueMap(String…)

-

values(String…)

-

where(P)

-

where(String, P)

-

where(Traversal<?, ?>)

-

with(String)

-

with(String, Object)

-

withSack(A)

-

withSack(A, BinaryOperator)

-

withSack(A, UnaryOperator)

-

withSack(A, UnaryOperator<A>, BinaryOperator<A>)

-

withSack(Supplier<A>)

-

withSack(Supplier,BinaryOperator)

-

withSack(Supplier,UnaryOperator)

-

withSack(Supplier,UnaryOperator,BinaryOperator)

-

withSideEffect(String, A)

-

withSideEffect(String, A, BinaryOperator)

-

withSideEffect(String,Supplier)

-

withSideEffect(String,Supplier, BinaryOperator)

-

圖數(shù)據(jù)庫(kù)GDB Gremlin支持的特性

說明

下表中特性的返回內(nèi)容與TinkerPop的Graph.features()返回內(nèi)容相同。

分類

特性

是否支持

Graph

ThreadedTransactions

Computer

Transactions

Persistence

ConcurrentAccess

Variable

SerializableValues

UniformListValues

BooleanArrayValues

DoubleArrayValues

IntegerArrayValues

StringArrayValues

MapValues

MixedListValues

ByteArrayValues

FloatArrayValues

LongArrayValues

Variables

BooleanValues

ByteValues

DoubleValues

FloatValues

IntegerValues

LongValues

StringValues

Vertex

MetaProperties

DuplicateMultiProperties

MultiProperties

NumericIds

UuidIds

CustomIds

AnyIds

AddVertices

RemoveVertices

UserSuppliedIds

AddProperty

RemoveProperty

StringIds

Vertex Property

UserSuppliedIds

NumericIds

UuidIds

CustomIds

AnyIds

SerializableValues

UniformListValues

BooleanArrayValues

DoubleArrayValues

IntegerArrayValues

StringArrayValues

MapValues

MixedListValues

ByteArrayValues

FloatArrayValues

LongArrayValues

AddProperty

RemoveProperty

StringIds

Properties

BooleanValues

ByteValues

DoubleValues

FloatValues

IntegerValues

LongValues

StringValues

Edge

NumericIds

UuidIds

CustomIds

AnyIds

AddEdges

RemoveEdges

UserSuppliedIds

AddProperty

RemoveProperty

StringIds

Edge Property

SerializableValues

UniformListValues

BooleanArrayValues

DoubleArrayValues

IntegerArrayValues

StringArrayValues

MapValues

MixedListValues

ByteArrayValues

FloatArrayValues

LongArrayValues

Properties

BooleanValues

ByteValues

DoubleValues

FloatValues

IntegerValues

LongValues

StringValues