Tinkerpop Neptune 配置 - 运行 在 Docker

Tinkerpop Neptune Config - Running In Docker

有没有人有 gremlin-config.yaml 文件可以更准确地反映 Gremlin 在 Neptune 中的行为?

我正在尝试 运行 尽可能多地使用本地 docker 容器,并且我已经替换了 gremlin.tinkergraph.vertexIdManager=ANY 之类的属性,以便顶点 ID 可以是字符串。 但是我仍然缺少诸如多个标签之类的细节,我认为这只能通过 Neo4Js 配置获得,不确定这还会改变什么。

但是,是的,通常寻找一个尽可能接近地代表 Neptune 运作方式的配置

当前:

host: 172.17.0.2
port: 8182
evaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf_local/tinkergraph-custom.properties}
scriptEngines: {
  gremlin-groovy: {
    plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
               org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
               org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
serializers:
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }}        # application/json
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1 }                                                                                                           # application/vnd.graphbinary-v1.0
  - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: true }}                                                                 # application/vnd.graphbinary-v1.0-stringd
processors:
  - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
  - { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
  consoleReporter: {enabled: true, interval: 180000},
  csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
  jmxReporter: {enabled: true},
  slf4jReporter: {enabled: true, interval: 180000}}
strictTransactionManagement: false
idleConnectionTimeout: 0
keepAliveInterval: 0
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 10485760
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536
ssl: {
  enabled: false}
gremlin.tinkergraph.vertexIdManager=ANY
gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph
version: '3'
services:
  gremlin-server:
    container_name: gwent_onboarding_neptune
    image: tinkerpop/gremlin-server:3.5.0
    user: $USER
    volumes:
      - ./configuration/gremlin-conf:/opt/gremlin-server/conf_local
      # - ./gremlin-console/data:/gremlin-server/scripts
    ports:
      - 8182:8182
    command: ./conf_local/gremlin-serverr.yaml

编辑: 当我试图让 tinkerpop 与多个标签一起工作时,开始进入这个兔子洞

看来您已经完成了我通常推荐的操作(例如为 ID 值启用和使用字符串)。鉴于 TinkerGraph 目前不支持事务,要模拟这些事务,您可能需要考虑通过 Gremlin 服务器在“内存”模式下使用 JanusGraph 运行 之类的东西。对于剩余的差异,目前,主要是避免任何不受支持的功能,例如您编写的代码和查询中的元属性。除了您提到的多个标签之外,您应该能够在本地进行大量的查询开发和测试,但是,当然,您在某些时候仍然需要针对实际的 Neptune 集群进行测试,以验证您所执行的工作负载正如使用完整的 Neptune 集群架构时预期的那样。