AWS Neptune datetime () - PullRequest
       21

AWS Neptune datetime ()

0 голосов
/ 05 ноября 2018

Я использую gremlin-javascript для общения с AWS Neptune с узла. В соответствии с docs и quickstart , даты должны быть установлены с использованием datetime().

Я не нашел реализацию этой datetime() функции в gremlin. Откуда это нужно импортировать?

g.addV("user").property(single, "createdDate", datetime(now().toISOString());

"ReferenceError: datetime is not defined"

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Таким образом, метод datetime (), который предоставляет Neptune, предназначен для использования при отправке запросов на график в виде текстовых строк. Вот пример из консоли Gremlin, подключенной к работающему экземпляру Neptune:

gremlin> g.addV('test').property('timestamp',datetime('2018-11-04T00:00:00')).property(id,'t1')
==>v[t1]
gremlin> g.V('t1').valueMap()
==>{timestamp=[Sun Nov 04 00:00:00 UTC 2018]}
gremlin> g.V().has('timestamp',gt(datetime('2018-11-03T00:00:00')))
==>v[t1] 

Теперь, если вы используете язык GLV, такой как Gremlin Python, вы можете вместо него использовать собственный класс Python datetime. Как показано ниже. Обратите внимание, что два примера имеют общее имя datetime, но они совершенно разные во всем, кроме имени. Я запустил это на ноутбуке Jupyter, используя Gremlin Python, но он одинаково хорошо работает в консоли Python или в качестве отдельного приложения Python.

import datetime
g.addV('test').\
    property(id,'x2').\
    property('timestamp',datetime.datetime.now()).next()

v[x2]

g.V('x2').valueMap(True).next()

{<T.label: 3>: 'test',
 <T.id: 1>: 'x2',
 'timestamp': [datetime.datetime(2018, 11, 5, 15, 3, 52, 29000)]}

Пожалуйста, простите пример с Python - я знаю, что вы используете Javascript. Мне просто довелось настроить среду Python, но должны применяться те же принципы.

Все это, как я и другие упоминали в других постах, я предпочитаю хранить временные метки, используя время эпохи. Обычно я использую 10 или 13-значные целочисленные представления времени в зависимости от необходимой точности. Это также довольно переносимый способ хранения информации о времени, который легко тестировать с использованием предикатов больше / меньше и т. Д.

В любом случае, я надеюсь, что это поможет немного прояснить ваш выбор. Приветствия, Кельвин.

0 голосов
/ 05 ноября 2018

datetime() не является частью Gremlin и является функцией расширения для Нептуна. Я не знаю, чтобы Neptune опубликовал клиентское расширение для javascript (или любого другого языка в этом отношении), которое включает эту функцию. При использовании языкового варианта Gremlin, как вы (что рекомендуется вместо встроенных сценариев Gremlin), может быть лучше хранить даты так долго, как описано в ответе на этот вопрос .

...