2012-02-24 15 views
24

mają pytanie na temat baz danych wykresów, czy ktoś może mi pomóc? Jestem obsługująca dość dużo danych w mysql około 5M zapisuje dzień wysłany przez urządzenie typu router, , punkty dostępu, mosty bezprzewodowe. Dane to zwykle dane o stanie zdrowia, GPS itp. ... są to urządzenia w pojazdach. W jaki sposób można obsługiwać dane oparte na czasie w bazach danych wykresów? Czy ktokolwiek zastosował neo4j dla danych opartych na czasie? Byłoby wspaniale wiedzieć, w jaki sposób zapytać o interwały i jak należy je modelować.Dane dotyczące czasu w neo4j

Zgaduję, że mogę utworzyć węzeł za każdym razem, gdy otrzymam dane o właściwościach ustawionych za każdym razem tak, jak zmieniono GPS, zdrowie? Byłby to wykres bazujący na czasie - czy to brzmi dobrze? oraz 5M wierszy mysql nie działa źle - ale jak router dostaje nowy funkcjonalność nowe dane przychodzi i muszę stworzyć nowe modele ponownie, co nie jest złe, ale nie świetne. Chcę czegoś, co jest częściowo ustrukturyzowane i sprawia, że ​​odnosząc się do różnych rzeczy, dlaczego użytkownik został wyrzucony jest z powodu punktu dostępu związane z routerem jest w dół. Moje zwykłe pytania to podniesienie alertów , aby powiedzieć, że jedno z urządzeń jest wyłączone lub jeśli istnieje zmniejszona przepustowość itd. Czy neo4j pomoże mi w poślubieniu tych relacji lepiej niż mysql?

Chciałbym wiedzieć, co myślisz, komentarze i myśli docenione.

+0

Aby uzyskać szczegółowe informacje na temat półstrukturalnych danych, zobacz Apache Solr. Aby zastosować reguły (dynamicznie) do danych, zobacz Drools. – aitchnyu

Odpowiedz

16

Proszę odnieść się do poniższego GraphGist, aby zapoznać się z samouczkiem dotyczącym przechowywania wykresów czasowych z wykorzystaniem skal czasowych.

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

Time Scale Graph

Na wykresie na osi czasu, który jest modelowana powyżej najkrótszej ścieżki przejścia z niebieskim kolorze węzła do węzła przezroczystego kolorowego stanowi wyjątkowy charakter czasu w bitach.

Tożsamość śledzona przez czerwoną ścieżkę to 0 → 1 → 0 → 1 → 0 → 0. Odwrotna ścieżka to 0 → 0 → 1 → 0 → 1 → 0 lub po prostu 001010, unikalna tożsamość w bitach.

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 

Zapytanie Cypher powyżej modeluje najkrótszą ścieżkę przejścia od niebieskiego węzła do przezroczystego węzła koloru. Jest to ciąg bitowy reprezentujący tożsamość czasową, która może być uporządkowana według zdarzenia w zależności od jego pozycji w podglądzie zdarzeń skali czasu.

proszę zobaczyć po raz subgraph wydarzenie skala poniżej:

Time Scale Event Subgraph

Obrazek powyżej przedstawia skalę czasową podłączony do serii wydarzeń (MET). Zdarzenia, reprezentowane jako trójkątne węzły na obrazie, są również powiązane z hierarchią funkcji (John, Sally, Pam, Anne), które następnie są dalej uogólniane na klasy (Person).

Teraz możesz uruchomić kwerendę Cypher, taką jak ta, którą wymieniłem wcześniej, która następnie uporządkuje zdarzenia według czasu wystąpienia jako ciąg bitowy.Uwaga: Należy zastosować znacznik czasu do węzła, który pobiera aktualny czas. Każdy niebieski węzeł reprezentuje zdarzenie oddzielone czasem, ale niekoniecznie rzeczywisty czas, a jedynie reprezentacja zdarzeń, które miały miejsce w zamówieniu.

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 

Hierarchie w skali czasowej pozwalają grupować zdarzenia i wyświetlać reprezentacje na wyższych poziomach. Zatem wybranie wszystkich zielonych węzłów poniżej pomarańczowego węzła wybiera 4 możliwe zdarzenia (reprezentowane przez niebieskie węzły).

Daj mi znać, jeśli masz jakieś pytania, i pamiętaj, aby odwiedzić GraphGist, aby zobaczyć więcej szczegółów i rzeczywiste przykłady na żywo w podglądzie zdarzeń skali czasu.

+0

Dzięki, ale staram się zrozumieć, w jaki sposób obliczany jest łańcuch czasu czasu. Czy są jakieś szczegółowe informacje na temat tego podejścia? – opensourcegeek

+0

Algorytm najkrótszej ścieżki zajmuje się tym, ponieważ przechodzisz od dołu do góry. Gdybyś miał pójść w drugą stronę, wpadłbyś w niejednoznaczność. Śledź palcem najkrótszą ścieżkę od niebieskiego węzła do przezroczystego węzła i zdaj sobie sprawę, że istnieje tylko jedna opcja na chmiel. Przejdź w odwrotną stronę i zobaczysz dwie opcje na chmiel. Sam ciąg bitów jest tylko adresem do przedziału czasu. Jak stół mieszający. –

+1

co oznaczają niebieskie, zielone i żółte węzły na wykresie czasu. Czy jest to rodzaj reprezentacji grupowania/mutli-level? Czy masz jakieś przykłady z wkładkami? – MonkeyBonkey

Powiązane problemy