Подтвердить что ты не робот

Временные данные в neo4j

есть вопрос о графических базах данных, может кто-нибудь мне помочь? я обрабатывая довольно много данных в mysql около 5 миллионов записей в день, отправленных устройство маршрутизатора, точки доступа, беспроводные мосты. Данные обычно данные о состоянии здоровья, gps и т.д. - это устройства на транспортных средствах. Как вы обрабатываете данные, основанные на времени, в базах данных графов? Кто-нибудь применял neo4j для временных данных? Было бы здорово узнать, как вы запрашиваете интервалов и способов моделирования.

Я думаю, я могу создать node за каждый раз, когда я получаю данные с свойства устанавливаются каждый раз, как измененный gps, здоровье? Было бы время основанный граф - звучит ли это правильно? хорошо с 5M строками mysql не работает плохо - но поскольку маршрутизатор получает новый появляются новые данные, и мне нужно создавать новые модели опять же, что неплохо, но не очень. я хочу что-то полуструктурированное и такие вещи, как то, почему пользователь был выбит из-за точки доступа связанные с маршрутизатором. Мои обычные вопросы заключались в том, чтобы поднять предупреждает, что одно из устройств выключено или если есть пропускной способности и т.д. Не помог бы мне в жениться на этих отношениях лучше, чем mysql?

Хотелось бы узнать, что вы, ребята, думаете, любые комментарии + мысли оценены.

4b9b3361

Ответ 1

Пожалуйста, обратитесь к следующему графическому редактору за учебным пособием о том, как делать временное графическое хранилище с использованием временных масштабов.

http://gist.neo4j.org/?github-kbastani%2Fgists%2F%2Fmeta%2FTimeScaleEventMetaModel.adoc

Time Scale Graph

В графе временного масштаба, который был смоделирован выше, кратчайший путь, проходящий от синего цвета node до прозрачного цветного node, представляет собой уникальный идентификатор времени в битах.

Личность, прослеживаемая красным путем, равна 0 → 1 → 0 → 1 → 0 → 0. Обратный путь 0 → 0 → 1 → 0 → 1 → 0 или просто 001010, уникальный идентификатор в битах.

MATCH p=shortestPath((n1:d)-[:child_of*]->(n2:y))
WHERE n1.key = 'd10'
RETURN DISTINCT reduce(s = '' , n IN nodes(p)| n.tempo + s) AS TimeIdentity
ORDER BY TimeIdentity

В запросе Cypher выше самый короткий путь прохождения от синего цвета node до прозрачного цветного node. Это битовая строка, представляющая идентификатор времени, который может быть упорядочен по событию в зависимости от его положения на подграфе события временного масштаба.

См. ниже подстраницу событий шкалы времени:

Time Scale Event Subgraph

Изображение выше представляет собой временной масштаб, связанный с серией событий (встречается). События, представленные как треугольные узлы в изображении, также связаны с иерархией функций (John, Sally, Pam, Anne), которые затем обобщаются на классы (Person).

Теперь вы можете запустить запрос Cypher, такой как тот, который я назвал ранее, который затем упорядочивает события по времени появления в виде битовой строки. Примечание. Чтобы применить временную метку к node, которая возвращает фактическое время. Каждый синий node представляет событие, разделенное по времени, но не обязательно фактическое время, просто представление событий, которые произошли в порядке.

MATCH p=(p0:person)-[:event]->(ev)-[:event]->(p1:person)
WITH p, ev
MATCH time_identity = (d0:d)<-[:event]-(ev)
WITH d0, p
MATCH p1=(d0)-[:child_of*]->(y0:y)
RETURN extract(x IN nodes(p)| coalesce(x.name, x.future)) AS Interaction, reduce(s = '' , n IN nodes(p1)| n.tempo + s) AS TimeIdentity
ORDER BY TimeIdentity

Иерархии в масштабе времени позволяют группировать события и видеть представления на более высоких уровнях. Поэтому, выбрав все зеленые узлы ниже оранжевого node, выбираем 4 возможных события (представленных синими узлами).

Сообщите мне, если у вас есть какие-либо вопросы, и обязательно посетите GraphGist, чтобы увидеть более подробные и актуальные живые примеры подграфа события масштаба времени.

Ответ 2

Вы также можете посмотреть индексирование в самом графике, см. http://blog.neo4j.org/2012/02/modeling-multilevel-index-in-neoj4.html для примера временной шкалы. В противном случае Lucene упакован по умолчанию с Neo4j, работает так же, как Solr.