小精灵server:serving multiple hbase表中的图形

vojdkbi0  于 2021-06-09  发布在  Hbase
关注(0)|答案(2)|浏览(384)

我正在使用带有hbase的gremlin服务器作为后端,我读到为了存储多个图,我们必须使用不同的表,所以我在hbase中以不同的表名存储了多个图。
属性storage.hbase.tablename是在titan-hbase.properties中指定的。但是我必须根据组动态提供图形,并且我不能在hbase.properties文件中指定表名(可以有数百个图形)。
实现这一目标的方法是什么?

aelbi1ox

aelbi1ox1#

不过,他仍然需要一种示例化图形引用的方法。由于用户不想创建/编辑他们的.properties文件,所以可以根据“共享”属性文件动态创建一个配置对象,并将hbase tablename作为属性附加到该配置对象上,然后使用graphfactory来示例化graph对象。然后,您可以将图形存储在graphmanager的Map中,该Map以表名命名,或者您喜欢的任何名称命名。这最后一步是没有必要的,但是,存储在那里的图形可以在gremlin脚本执行结束时获得自动提交和回滚功能。

arknldoa

arknldoa2#

当使用tinkerpop到3.2.4的版本时,您必须在gremlin服务器周围编写一个 Package 器,在那里您可以从以下内容开始:

Settings settings = new Settings()
GremlinServer server = new GremlinServer(settings);
server.start().join();

然后你就可以操纵 GraphManager 你可以从 GremlinServer 示例具有:

GraphManager manager = server.getServerGremlinExecutor().getGraphManager()
``` `GraphManager.getGraphs()` 返回 `Map<String,Graph>` 示例,您可以在其中动态添加/删除正在服务的图。我认为这个方法是一个黑客/解决方法来实现你想要的,但没有其他方法。
截至3.2.5(截至本文未发布)及以后, `GraphManager` 是一个可以自己实现的接口,用于动态提供图形列表。您的实现可以在gremlin服务器配置文件中引用,从而允许动态地将其插入服务器。

相关问题