Networks arise as a natural representation of data in various domains, ranging from social to biological to information domains. However, the majority of these real-world networks are massive and continuously evolving over time. As a matter of fact, streaming data is becoming a core component of data architectures due to the explosive growth of data from non-traditional sources such as IoT sensors, security logs and web applications. Frameworks like Neo4j allow to model data in the shape of graphs. In particular Cypher is the declarative graph query language that allows for expressive and efficient data querying in Neo4j. Neo4j is distinctive for the fact that uses the labeled-property graph model. This characteristic makes Neo4j attractive for many common use cases like Fraud Detection and Analytics Network Monitoring, Social Network Analytics that require among the others: efficient storage, fast querying, fast traversal of connected data. This features are sometime feasable but in most of the cases Volume combined with Velocity limit the capabilities of technologies like Neo4j. Indeed, Cypher lacks the features for dealing with streams of (graph) data and continuous query evaluation. In this Thesis we address the problem of combining the benefits that derive from expressiveness of pattern matching on graphs in Neo4j with technologies that would enrich this graph querying paradigm with streaming processing operations such as windowing. We propose a stream processing model design for Cypher queries, in order to be able to perform continuous query evaluation. For this purpose we investigate on Kafka Streams to be the event stream processing backbone for our goal. We present a proof-of-concept implementation of the designed processing model, as well as a analysis of the Cypher queries that this model can perform or cannot perform.

Le reti si presentano come una rappresentazione naturale dei dati in vari domini, da quelli sociali a quelli biologici a quelli dell’informazione. Tuttavia, la maggior parte di queste reti del mondo reale sono enormi e in continua evoluzione nel tempo. È un dato di fatto che lo streaming di dati sta diventando una componente fondamentale delle architetture di dati a causa della crescita esplosiva di dati da fonti non tradizionali come sensori IoT, registri di sicurezza e applicazioni web. Framework come Neo4j consentono di modellare i dati sotto forma di grafi. In particolare Cypher è il linguaggio di query a grafo dichiarativo che consente query di dati espressive ed efficienti in Neo4j. Neo4j si distingue per il fatto che utilizza il modello labeled-property graph. Questa caratteristica rende Neo4j attraente per molti casi d’uso comuni come il rilevamento delle frodi e l’analisi del monitoraggio della rete, l’analisi dei social network che richiedono, tra gli altri: archiviazione efficiente, query rapide, attraversamento rapido dei dati connessi. Queste funzionalità a volte sono realizzabili, ma nella maggior parte dei casi il volume combinato con la velocità limita le capacità di tecnologie come Neo4j. In effetti, a Cypher mancano le funzionalità per gestire flussi di dati (sottoforma di grafi) e la valutazione continua delle query. In questa Tesi affrontiamo il problema di combinare i benefici che derivano dall’ espressività del pattern matching sui grafici in Neo4j con tecnologie che arricchirebbero questo paradigma di interrogazione dei grafi con operazioni di elaborazione in streaming come il windowing. Proponiamo un modello di elaborazione del flusso per le query Cypher, al fine di essere in grado di eseguire una valutazione continua delle query. A questo scopo, adotteremo Kafka Streams come backbone di elaborazione del flusso di eventi per raggiungere il nostro obiettivo. Presentiamo un’implementazione proof-of-concept del modello di elaborazione progettato, nonché un’analisi delle query Cypher che questo modello può eseguire o non può eseguire.

Towards large scale continuous property graph query engine

Rossettini, Alberto
2019/2020

Abstract

Networks arise as a natural representation of data in various domains, ranging from social to biological to information domains. However, the majority of these real-world networks are massive and continuously evolving over time. As a matter of fact, streaming data is becoming a core component of data architectures due to the explosive growth of data from non-traditional sources such as IoT sensors, security logs and web applications. Frameworks like Neo4j allow to model data in the shape of graphs. In particular Cypher is the declarative graph query language that allows for expressive and efficient data querying in Neo4j. Neo4j is distinctive for the fact that uses the labeled-property graph model. This characteristic makes Neo4j attractive for many common use cases like Fraud Detection and Analytics Network Monitoring, Social Network Analytics that require among the others: efficient storage, fast querying, fast traversal of connected data. This features are sometime feasable but in most of the cases Volume combined with Velocity limit the capabilities of technologies like Neo4j. Indeed, Cypher lacks the features for dealing with streams of (graph) data and continuous query evaluation. In this Thesis we address the problem of combining the benefits that derive from expressiveness of pattern matching on graphs in Neo4j with technologies that would enrich this graph querying paradigm with streaming processing operations such as windowing. We propose a stream processing model design for Cypher queries, in order to be able to perform continuous query evaluation. For this purpose we investigate on Kafka Streams to be the event stream processing backbone for our goal. We present a proof-of-concept implementation of the designed processing model, as well as a analysis of the Cypher queries that this model can perform or cannot perform.
FALZONE, EMANUELE
ING - Scuola di Ingegneria Industriale e dell'Informazione
9-giu-2021
2019/2020
Le reti si presentano come una rappresentazione naturale dei dati in vari domini, da quelli sociali a quelli biologici a quelli dell’informazione. Tuttavia, la maggior parte di queste reti del mondo reale sono enormi e in continua evoluzione nel tempo. È un dato di fatto che lo streaming di dati sta diventando una componente fondamentale delle architetture di dati a causa della crescita esplosiva di dati da fonti non tradizionali come sensori IoT, registri di sicurezza e applicazioni web. Framework come Neo4j consentono di modellare i dati sotto forma di grafi. In particolare Cypher è il linguaggio di query a grafo dichiarativo che consente query di dati espressive ed efficienti in Neo4j. Neo4j si distingue per il fatto che utilizza il modello labeled-property graph. Questa caratteristica rende Neo4j attraente per molti casi d’uso comuni come il rilevamento delle frodi e l’analisi del monitoraggio della rete, l’analisi dei social network che richiedono, tra gli altri: archiviazione efficiente, query rapide, attraversamento rapido dei dati connessi. Queste funzionalità a volte sono realizzabili, ma nella maggior parte dei casi il volume combinato con la velocità limita le capacità di tecnologie come Neo4j. In effetti, a Cypher mancano le funzionalità per gestire flussi di dati (sottoforma di grafi) e la valutazione continua delle query. In questa Tesi affrontiamo il problema di combinare i benefici che derivano dall’ espressività del pattern matching sui grafici in Neo4j con tecnologie che arricchirebbero questo paradigma di interrogazione dei grafi con operazioni di elaborazione in streaming come il windowing. Proponiamo un modello di elaborazione del flusso per le query Cypher, al fine di essere in grado di eseguire una valutazione continua delle query. A questo scopo, adotteremo Kafka Streams come backbone di elaborazione del flusso di eventi per raggiungere il nostro obiettivo. Presentiamo un’implementazione proof-of-concept del modello di elaborazione progettato, nonché un’analisi delle query Cypher che questo modello può eseguire o non può eseguire.
File allegati
File Dimensione Formato  
TowardsALargeScaleContinuousPropertyGraphQueryEngine.pdf

non accessibile

Dimensione 7.95 MB
Formato Adobe PDF
7.95 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/174926