Gremlin Python SDK для Azure CosmosDB - PullRequest
0 голосов
/ 06 мая 2020

В документации на сайте Azure CosmoDB, Gremlin и Python [1] [2] [3] используются плохие методы - тонны дублирования кода и конкатенации строк для формирования запросов вместо использования встроенного python.

Однако при попытке использовать собственный SDK обнаруживается ошибка двухлетней давности, которая предотвращает его из-за ошибок сериализации [4].

Как лучше всего использовать Gremlin & Python с CosmosDB? Должен ли я вообще отказаться от Гремлин - и если да, то каково альтернативное решение?

[1] https://docs.microsoft.com/en-us/samples/azure-samples/azure-cosmos-db-graph-python-getting-started/azure-cosmos-db-graph-python-getting-started/

[2] https://docs.microsoft.com/en-us/azure/cosmos-db/create-graph-pytho

[3] https://github.com/Azure-Samples/azure-cosmos-db-python-getting-started

[4] https://github.com/Azure/azure-cosmos-dotnet-v2/issues/439

1 Ответ

1 голос
/ 08 мая 2020

Без поддержки чистого байт-кода, как вы отметили здесь , история использования Python для CosmosDB с Gremlin не так хороша. Есть несколько механизмов для преобразования байт-кода в представления сценария, такие как GroovyTranslator для Java и Translator для Javascript. Например, в Javascript вы можете сделать:

const script = new Translator('g').translate(g.V().out('created').getBytecode());

, а затем отправить этот скрипт в CosmosDB (например, для Java это здесь ). Не очень хорошо, но, возможно, лучше, чем встраивать толстые строки Gremlin в ваш код. К сожалению, в настоящее время эта функция не поддерживается в Python. Я создал проблему в JIRA, чтобы отследить ее ( TINKERPOP-2366 - Python и TINKERPOP-2367 -. NET), поскольку я видел этот вопрос в разных формах с разумной последовательностью.

...