AWS Neptune datetime ()

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

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

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

"ReferenceError: datetime is not defined"


person Fook    schedule 05.11.2018    source источник


Ответы (1)


Таким образом, метод 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 Notebook с использованием 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-значные целочисленные представления времени в зависимости от необходимой мне точности. Это также довольно переносимый способ хранения информации о времени, который легко тестировать с использованием предикатов больше / меньше и т. Д.

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

ОБНОВЛЕНО 15 октября 2019 г. В частности, в случае Neptune использование собственного объекта даты из Java, Python и т. Д. Может привести к тому, что запросы будут выполняться немного быстрее из-за того, как Neptune Engine оценивает запросы.

person Kelvin Lawrence    schedule 05.11.2018
comment
Обратите внимание, что внутри Нептун хранит даты в миллисекундах эпох. - person chrylis -cautiouslyoptimistic-; 13.01.2021