Gremlin Server: обслуживание нескольких графиков из таблицы hbase

Я использую сервер gremlin с hbase в качестве бэк-энда. Я читал, что для хранения нескольких графиков мы должны использовать разные таблицы, поэтому я храню несколько графиков в hbase под разными именами таблиц.

Свойство storage.hbase.tablename указывается в titan-hbase.properties . Но мне нужно предоставить график динамически в зависимости от группы, и я не могу указать имя таблицы в файле hbase.properties (может быть сотни графиков).

Как это сделать?

2 ответа

При использовании версий от TinkerPop до 3.2.4 вам нужно будет написать обертку вокруг Gremlin Server, где вы запустите его примерно так:

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 Server, что позволяет динамически подключаться к серверу.

Однако ему все еще нужен способ создания ссылок на графы. А поскольку пользователь не хочет создавать / редактировать свой файл.properties, вы можете динамически создать объект конфигурации на основе файла общих свойств, добавить имя таблицы hbase в качестве свойства этого объекта конфигурации и использовать GraphFactory для создания экземпляра объекта графа. Затем вы можете сохранить график на карте GraphManager с именем таблицы или любым другим способом. Этот последний шаг не обязателен, однако сохраняемый там график приобретает функции автоматического принятия и отката в конце выполнения сценария Gremlin.

Другие вопросы по тегам