Я хочу создать базу данных neptune и сбросить в нее данные. Я загружаю исторические данные из DynamoDB в S3, эти файлы в формате csv. Заголовок в этих csv вроде:
~id, someproperties:String, ~label
Затем мне нужно реализовать потоковую передачу в реальном времени в этот neptune db через лямбда, в лямбда-функции я проверю, существует ли одна вершина (или ребра) или нет, если существует, я обновлю вершину (или ребра), в противном случае Создаю новый. В python моя реализация выглядит так:
g.V().hasLabel('Event').has(T.id, event['Id']).fold().coalesce(unfold(), addV('Event').property(T.id, event['Id'])).property(Cardinality.single, 'State', event['State']).property('sourceData', event['sourceData']).next()
У меня есть несколько вопросов:
- При потоковой передаче в реальном времени мне нужно запросить, есть ли вершина с идентификатором, поэтому мне нужно запросить узлы исторических данных, так можно ли
has(T.id, event['Id'])
это сделать? или мне просто использоватьhas(id, event['Id'])
илиhas("id", event['Id'])
? - Я использовал
g.V().has('Event', T.id, event['Id'])
вместоg.V().hasLabel('Event').has(T.id, event['Id'])
, но получил ошибку типаcannot local NeptuneGraphTraversal.has()
. Эти два запроса одно и то же?