SlideShare une entreprise Scribd logo
1  sur  71
Time flows, my friend 
Managing event sequences and time series with a 
Document-Graph Database 
Codemotion Milan 2014 
Luigi Dell’Aquila 
Orient Technologies LTD 
Twitter: @ldellaquila
Time What…?
Time What…? 
Time series: 
A time series is a sequence of data points, typically 
consisting of successive measurements made over a 
time interval (Wikipedia)
Time What…? 
Event sequences: 
• A set of events with a timestamp 
• A set of relationships “happened 
before/after” 
• Cause and effect relationships
Time What…? 
Time as a dimension: 
• Direct: 
– Eg. begin and end of relationships (I’m a 
friend of John since…) 
• Calculated 
– Eg. Speed (distance/time)
Time What…? 
Time as a constraint: 
• Query execution time!
The problem: 
Fast and Effective
Fast and Effective 
Fast write: Time doesn’t wait! Writes just arrive 
Fast read: a lot of data to be read in a short time 
Effective manipulation: complex operations like 
- Aggregation 
- Prediction 
- Analysis
Current approaches
Current approaches 
0. Relational approach: table 
Timestamp Value 
2014:11:21 14:35:00 1321 
2014:11:21 14:35:01 2444 
2014:11:21 14:35:02 2135 
2014:11:21 14:35:03 1833
Current approaches 
0. Relational approach: table 
HH MM SS Value 
14 35 0 1321 
14 35 1 2444 
14 35 2 2135 
14 35 3 1833
Current approaches 
0. Relational – Advantages 
• Simple 
• It can be used together with your application data 
(operational)
Current approaches 
0. Relational – Disadvantages 
• Slow read (relies on an index) 
• Slow insert (update the index…)
Current approaches 
1. Document Database 
• Collections of Documents instead of tables 
• Schemaless 
• Complex data structures
Current approaches 
1. Document approach: Minute Based 
{ 
timestamp: “2014-11-21 12.05“ 
load: [10, 15, 3, … 30] //array of 60, one per second 
}
Current approaches 
1. Document approach: Hour Based 
{ 
timestamp: “2014-11-21 12.00“ 
load: { 
0: [10, 15, 3, … 30], //array of 60, one per second 
1: [0, 12, 31, … 24], 
… 
59: [10, 10, 1, … 16] 
} 
}
Current approaches 
1. Document approach – Advantages 
• Fast write: One insert x 60 updates 
• Fast fetch
Current approaches 
1. Document approach – Disadvantages 
• Fixed time windows 
• Single point per unit 
• How to pre-aggregate? 
• Relationships with the rest of the world? 
• Relationships between events?
Current approaches 
2. Graph Database 
• Nodes/Edges instead of tables 
• Index free adjacency 
• Fast traversal 
• Dynamic structure
Current approaches 
2. Graph approach: linked sequence 
e 
1 
next e 
e 
2 
next e 
next e 
3 
4 
5 
next 
(timestamp on vertex)
Current approaches 
2. Graph approach: linked sequence (tag 
based) 
e 
1 
e 
2 
nextTag1 
e 
3 
nextTag2 
e 
4 
nextTag1 
e 
5 
nextTag1 
nextTag2 
[Tag1, Tag2] [Tag1] 
[Tag1, Tag2] 
[Tag1] 
[Tag2]
Current approaches 
2. Graph approach: Hierarchy 
e 
1 
e 
2 
e6 
0 
1 
1 
8 
24 
2 60 … 
… 
Days 
Hours 
Minutes 
Seconds 
… 
e 
3
Current approaches 
2. Graph approach: mixed 
e 
1 
e 
2 
e6 
0 
1 
1 
8 
24 
2 60 … 
… 
Days 
Hours 
Minutes 
Seconds 
… 
e 
3
Current approaches 
1. Graph approach – Advantages 
• Flexible 
• Events can be connected together in different ways 
• You can connect events to other entities 
• Fast traversal of dynamic time windows 
• Fast aggregation (based on hierarchy)
Current approaches 
1. Graph approach – Disadvantages 
• Slow writes (vertex + edge + maintenance) 
• Not so fast reads
Can we mix different models and get 
all the advantages?
Can we mix all this with the rest of 
application logic?
Multi-Model!
• Document database (schema-free, complex 
properties) 
• Graph database (index-free adjacency, fast 
traversal) 
• SQL (extended) 
• Operational (schema - ACID) 
• OO concepts (Classes, inheritance, polymorphism) 
• REST/JSON interface 
• Native Javascript (extend query language, expose 
services, event hooks) 
• Distributed (Multi-master replica/sharding) 
architecture
OrientDB 
First step: put them together 
1 
1 
8 
24 
2 60 … 
Days 
Hours 
Minutes 
… 
{ 
0: 1000, 
1: 1500. 
… 
59: 96 
}
OrientDB 
First step: put them together 
1 
1 
8 
24 
2 60 … 
Days 
Hours 
Minutes 
… 
{ 
0: 1000, 
1: 1500. 
… 
59: 96 
} 
Graph 
Document <- IT’S A VERTEX TOO!!!
OrientDB 
First step: put them together 
1 
8 
24 
Days 
… Hours 
{ 
0: { 
0: 1000, 
1: 1500, 
… 
59: 210 
} 
1: { … } 
… 
59: { … } 
} 
Graph 
Document
Where should I stop? 
It depends on my domain and 
requirements.
OrientDB 
Result: 
• Same insert speed of Document approach 
• But with flexibility of a Graph 
• (as a side effect of mixing models, 
documents can also contain “pointers” to 
other elements of app domain)
OrientDB 
Second step: Pre-aggregate 
1 
1 
8 
24 
2 60 … 
Days 
Hours 
Minutes 
… 
{ 
0: 1000, 
1: 1500. 
… 
59: 96 
} 
Graph 
Document <- IT’S A VERTEX TOO!!!
OrientDB 
Second step: Pre-aggregate 
1 
1 
8 
24 
2 60 … 
Days 
Hours 
Minutes 
… 
{ 
0: 1000, 
1: 1500. 
… 
59: 96 
} 
Graph 
sum() 
Document <- IT’S A VERTEX TOO!!!
OrientDB 
Second step: Pre-aggregate 
1 
sum() 
1 
8 
24 
2 60 … 
Days 
Hours 
Minutes 
… 
{ 
0: 1000, 
1: 1500. 
… 
59: 96 
} 
Graph 
sum() 
Document <- IT’S A VERTEX TOO!!!
OrientDB 
How to aggregate 
Hooks: Server side triggers (Java or Javascript), 
executed when DB operations happen (eg. Insert 
or update) 
Java interface: 
Public RESULT onBeforeInsert(…); 
public void onAfterInsert(…); 
public RESULT onBeforeUpdate(…); 
public void onAfterUpdate(…);
OrientDB 
Aggregation logic 
• Second 0 -> insert 
• Second 1 -> update 
• … 
• Second 57 -> update 
• Second 58 -> update 
• Second 59 -> update + aggregate 
– Write aggregate value on minute vertex 
• Minute == 59? Calculate aggregate on hour vertex
OrientDB 
1 
1 
8 
24 
2 60 … 
Days 
Hours 
Minutes 
… 
{ 
0: 1, 
1: 12. 
… 
59: 3 
} 
sum = 1000 
sum = 15000 
sum = 300 
1 2 
incomplete 
complete 
sum = null 
sum = null
OrientDB 
Query logic: 
• Traverse from root node to specified level 
(filtering based on vertex data) 
• Is there aggregate value? 
– Yes: return it 
– No: go one level down and do the same 
Aggregation on a level will be VERY fast if you 
have horizontal edges!
OrientDB 
How to calculate aggregate values with a query 
Input params: 
- Root node (suppose it is #11:11) 
select sum(aggregateVal) from ( 
traverse out() from #11:11 
while in().aggregateVal is null 
) 
With the same logic you can query based on time 
windows
OrientDB 
Third step: Complex domains 
1 
1 2 60 … 
Hours 
Minutes 
{ 
0: {val: 1000}, 
1: {val: 1500}. 
… 
59: { 
val: 96, 
eventTags: [tag1, tag2] 
… 
} 
} 
Graph 
Document <- Enrich the domain
OrientDB 
Another use case: Event Categories and OO 
e 
1 
e 
2 
nextTag1 
e 
3 
nextTag2 
e 
4 
nextTag1 
e 
5 
nextTag1 
nextTag2 
[Tag1, Tag2, Tag3] [Tag1] 
[Tag1, Tag2] 
[Tag1] 
[Tag2] 
nextTag3 
e 
3 
[Tag3]
OrientDB 
Another use case: Event Categories and OO 
Suppose tags are hierarchical categories 
(Classes for vertices and/or edges) 
nextTAG 
nextTagX nextTag3 
nextTag1 nextTag2
OrientDB 
Subset of events 
TRAVERSE out(‘nextTag1’) FROM <e1> 
e 
1 
e 
2 
nextTag1 
e 
4 
nextTag1 
e 
5 
nextTag1 
[Tag1, Tag2, Tag3] [Tag1] 
[Tag1, Tag2] 
[Tag1]
OrientDB 
Subset of events 
TRAVERSE out(‘nextTag2’) FROM <e1> 
e 
1 
nextTag1 
nextTag2 e 
e 
3 
5 
nextTag2 
[Tag1, Tag2, Tag3] 
[Tag1, Tag2] 
[Tag2]
OrientDB 
Subset of events (Polymorphic!!!) 
TRAVERSE out(‘nextTagX’) FROM <e1> 
e 
1 
e 
2 
nextTag1 
e 
3 
nextTag2 
e 
4 
nextTag1 
e 
5 
nextTag1 
nextTag2 
[Tag1, Tag2, Tag3] [Tag1] 
[Tag1, Tag2] 
[Tag1] 
[Tag2]
Connect all this with the rest of your 
application domain
You’ll see, everything will get more 
complex: you will discover new time-related 
dimensions (speed, 
position…) and new needs (complex 
forecasting)
CHASE!
Chase 
• Your target is running away 
• You have informers that track his moves 
(coordinates in a point of time) and give 
you additional (unstructured) information 
• You have a street map 
• You want to: 
– Catch him ASAP 
– Predict his moves 
– Be sure that he is inside an area
Chase
Chase
Chase 
• Map is made of points and distances 
• You also have speed limits for streets 
point1 
pointN Distance: 1Km 
Max speed: 70Km/h 
Distance: 2Km 
Max speed: 120Km/h 
Distance: 8Km 
Max speed: 90Km/h 
Map point 
Street
Chase 
• Map is made of points and distances 
• You also have speed limits for streets 
• Distance / Speed = TIME!!!
Chase 
You have a time series of your target’s moves 
{ 
{ 
Timestamp: 29/11/2014 17:15:00 
LAT: 19,12223 
LON: 42,134 
} 
Timestamp: 29/11/2014 17:55:00 
LAT: 19,12223 
LON: 42,134 
} 
Event 
Event seqence 
{ 
Timestamp: 29/11/2014 17:55:00 
LAT: 19,12223 
LON: 42,134 
}
Chase 
You have a time series of your target’s moves 
21/11/2014 
2:35:00 PM 
20/11/2014 
1:20:00 PM 
Map point 
Street
Chase 
You have a time series of your target’s moves 
21/11/2014 
14:35:00 
20/11/2014 
13:20:00 
Event 
Map point 
Where 
Event seqence 
Street 
29/11/2014 
17:55:00
Chase 
Vertices and edges are also documents 
So you can store complex information inside them 
{ 
timestamp: 22213989487987, 
lat: xxxx, 
lon: yyy, 
informer: 15, 
additional: { 
speed: 120, 
description: “the target was in a car” 
car: { 
model: “Fiat 500”, 
licensePlate: “AA 123 BB” 
} 
} 
}
Chase 
Now you can: 
• Predict his moves (eg. statistical methods, 
interpolation on lat/lon + time) 
• Calculate how far he can be (based on last 
position, avg speed and street data) 
• Reach him quickly (shortest path, Dijkstra) 
• … intelligence?
Chase 
But to have all this you need: 
• An easy way for your informers to send 
time series events 
Hint: REST interface 
With OrientDB you can expose Javascript 
functions as REST services!
Chase 
And you need: 
• An extended query language 
Eg. 
TRAVERSE out(“street”) FROM ( 
SELECT out(“point”) FROM #11:11 
// my last event 
) WHILE canBeReached($current, #11:11) 
(where he could be)
Chase 
With OrientDB you can write 
function canBeReached(node, event) 
In Javascript and use it in your queries
Chase 
It’s just a game, but think about: 
• Fraud detection 
• Traffic routing 
• Multi-dimensional analytics 
• Forecasting 
• …
Summary
One model is not enough 
One of most common issues of my customers 
is: 
“I have a zoo of technologies in my application 
stack, and it’s getting worse every day” 
My answer is: Multi-Model DB
One model is not enough 
One of most common issues of my customers 
is: 
“I have a zoo of technologies in my application 
stack, and it’s getting worse every day” 
My answer is: Multi-Model DB 
of course ;-)
From: 
“choose the right data model for your 
use case” 
To: 
“Your application has multiple data 
models, you need all of them!”
This is NoSQL 2.0!!!
Thank you! 
@ldellaquila 
l.dellaquila@orientechnologies.com

Contenu connexe

Tendances

Episode 2 DB2 pureScale Installation, Instance Management &amp; Monitoring
Episode 2 DB2 pureScale Installation, Instance Management &amp; MonitoringEpisode 2 DB2 pureScale Installation, Instance Management &amp; Monitoring
Episode 2 DB2 pureScale Installation, Instance Management &amp; MonitoringLaura Hood
 
Redash: Open Source SQL Analytics on Data Lakes
Redash: Open Source SQL Analytics on Data LakesRedash: Open Source SQL Analytics on Data Lakes
Redash: Open Source SQL Analytics on Data LakesDatabricks
 
From Pandas to Koalas: Reducing Time-To-Insight for Virgin Hyperloop's Data
From Pandas to Koalas: Reducing Time-To-Insight for Virgin Hyperloop's DataFrom Pandas to Koalas: Reducing Time-To-Insight for Virgin Hyperloop's Data
From Pandas to Koalas: Reducing Time-To-Insight for Virgin Hyperloop's DataDatabricks
 
Near Real-Time Netflix Recommendations Using Apache Spark Streaming with Nit...
 Near Real-Time Netflix Recommendations Using Apache Spark Streaming with Nit... Near Real-Time Netflix Recommendations Using Apache Spark Streaming with Nit...
Near Real-Time Netflix Recommendations Using Apache Spark Streaming with Nit...Databricks
 
Deep Dive Into Kafka Tiered Storage With Satish Duggana | Current 2022
Deep Dive Into Kafka Tiered Storage With Satish Duggana | Current 2022Deep Dive Into Kafka Tiered Storage With Satish Duggana | Current 2022
Deep Dive Into Kafka Tiered Storage With Satish Duggana | Current 2022HostedbyConfluent
 
How we solved Real-time User Segmentation using HBase
How we solved Real-time User Segmentation using HBaseHow we solved Real-time User Segmentation using HBase
How we solved Real-time User Segmentation using HBaseDataWorks Summit
 
Introduction to data structure
Introduction to data structureIntroduction to data structure
Introduction to data structureadeel hamid
 
Exploring Modeling - Best Practices with Aerospike Data Types
Exploring Modeling - Best Practices with Aerospike Data TypesExploring Modeling - Best Practices with Aerospike Data Types
Exploring Modeling - Best Practices with Aerospike Data TypesRonen Botzer
 
1. introduction to no sql
1. introduction to no sql1. introduction to no sql
1. introduction to no sqlAnuja Gunale
 
Apache Arrow: High Performance Columnar Data Framework
Apache Arrow: High Performance Columnar Data FrameworkApache Arrow: High Performance Columnar Data Framework
Apache Arrow: High Performance Columnar Data FrameworkWes McKinney
 
Data Source API in Spark
Data Source API in SparkData Source API in Spark
Data Source API in SparkDatabricks
 
Presto: Distributed sql query engine
Presto: Distributed sql query engine Presto: Distributed sql query engine
Presto: Distributed sql query engine kiran palaka
 
The Apache Spark File Format Ecosystem
The Apache Spark File Format EcosystemThe Apache Spark File Format Ecosystem
The Apache Spark File Format EcosystemDatabricks
 
Neo4j – The Fastest Path to Scalable Real-Time Analytics
Neo4j – The Fastest Path to Scalable Real-Time AnalyticsNeo4j – The Fastest Path to Scalable Real-Time Analytics
Neo4j – The Fastest Path to Scalable Real-Time AnalyticsNeo4j
 
introduction to NOSQL Database
introduction to NOSQL Databaseintroduction to NOSQL Database
introduction to NOSQL Databasenehabsairam
 
Auditing and Monitoring PostgreSQL/EPAS
Auditing and Monitoring PostgreSQL/EPASAuditing and Monitoring PostgreSQL/EPAS
Auditing and Monitoring PostgreSQL/EPASEDB
 

Tendances (20)

Episode 2 DB2 pureScale Installation, Instance Management &amp; Monitoring
Episode 2 DB2 pureScale Installation, Instance Management &amp; MonitoringEpisode 2 DB2 pureScale Installation, Instance Management &amp; Monitoring
Episode 2 DB2 pureScale Installation, Instance Management &amp; Monitoring
 
Redash: Open Source SQL Analytics on Data Lakes
Redash: Open Source SQL Analytics on Data LakesRedash: Open Source SQL Analytics on Data Lakes
Redash: Open Source SQL Analytics on Data Lakes
 
From Pandas to Koalas: Reducing Time-To-Insight for Virgin Hyperloop's Data
From Pandas to Koalas: Reducing Time-To-Insight for Virgin Hyperloop's DataFrom Pandas to Koalas: Reducing Time-To-Insight for Virgin Hyperloop's Data
From Pandas to Koalas: Reducing Time-To-Insight for Virgin Hyperloop's Data
 
Near Real-Time Netflix Recommendations Using Apache Spark Streaming with Nit...
 Near Real-Time Netflix Recommendations Using Apache Spark Streaming with Nit... Near Real-Time Netflix Recommendations Using Apache Spark Streaming with Nit...
Near Real-Time Netflix Recommendations Using Apache Spark Streaming with Nit...
 
Deep Dive Into Kafka Tiered Storage With Satish Duggana | Current 2022
Deep Dive Into Kafka Tiered Storage With Satish Duggana | Current 2022Deep Dive Into Kafka Tiered Storage With Satish Duggana | Current 2022
Deep Dive Into Kafka Tiered Storage With Satish Duggana | Current 2022
 
Map reduce vs spark
Map reduce vs sparkMap reduce vs spark
Map reduce vs spark
 
How we solved Real-time User Segmentation using HBase
How we solved Real-time User Segmentation using HBaseHow we solved Real-time User Segmentation using HBase
How we solved Real-time User Segmentation using HBase
 
Time andspacecomplexity
Time andspacecomplexityTime andspacecomplexity
Time andspacecomplexity
 
Tower Of Hanoi
Tower Of HanoiTower Of Hanoi
Tower Of Hanoi
 
Introduction to data structure
Introduction to data structureIntroduction to data structure
Introduction to data structure
 
Exploring Modeling - Best Practices with Aerospike Data Types
Exploring Modeling - Best Practices with Aerospike Data TypesExploring Modeling - Best Practices with Aerospike Data Types
Exploring Modeling - Best Practices with Aerospike Data Types
 
1. introduction to no sql
1. introduction to no sql1. introduction to no sql
1. introduction to no sql
 
Apache Arrow: High Performance Columnar Data Framework
Apache Arrow: High Performance Columnar Data FrameworkApache Arrow: High Performance Columnar Data Framework
Apache Arrow: High Performance Columnar Data Framework
 
Data Source API in Spark
Data Source API in SparkData Source API in Spark
Data Source API in Spark
 
Presto: Distributed sql query engine
Presto: Distributed sql query engine Presto: Distributed sql query engine
Presto: Distributed sql query engine
 
The Apache Spark File Format Ecosystem
The Apache Spark File Format EcosystemThe Apache Spark File Format Ecosystem
The Apache Spark File Format Ecosystem
 
Neo4j – The Fastest Path to Scalable Real-Time Analytics
Neo4j – The Fastest Path to Scalable Real-Time AnalyticsNeo4j – The Fastest Path to Scalable Real-Time Analytics
Neo4j – The Fastest Path to Scalable Real-Time Analytics
 
introduction to NOSQL Database
introduction to NOSQL Databaseintroduction to NOSQL Database
introduction to NOSQL Database
 
Auditing and Monitoring PostgreSQL/EPAS
Auditing and Monitoring PostgreSQL/EPASAuditing and Monitoring PostgreSQL/EPAS
Auditing and Monitoring PostgreSQL/EPAS
 
Presto overview
Presto overviewPresto overview
Presto overview
 

En vedette

Time Series With OrientDB - Fosdem 2015
Time Series With OrientDB - Fosdem 2015Time Series With OrientDB - Fosdem 2015
Time Series With OrientDB - Fosdem 2015wolf4ood
 
Geospatial Graphs made easy with OrientDB - Codemotion Milan 2016
Geospatial Graphs made easy with OrientDB - Codemotion Milan 2016Geospatial Graphs made easy with OrientDB - Codemotion Milan 2016
Geospatial Graphs made easy with OrientDB - Codemotion Milan 2016Luigi Dell'Aquila
 
Geospatial Graphs made easy with OrientDB - Codemotion Spain
Geospatial Graphs made easy with OrientDB - Codemotion SpainGeospatial Graphs made easy with OrientDB - Codemotion Spain
Geospatial Graphs made easy with OrientDB - Codemotion SpainLuigi Dell'Aquila
 
OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0Orient Technologies
 
Determinants of Demand and Supply in Tourism
Determinants of Demand and Supply in TourismDeterminants of Demand and Supply in Tourism
Determinants of Demand and Supply in TourismChinmoy Saikia
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven ArchitectureStefan Norberg
 

En vedette (9)

Time Series With OrientDB - Fosdem 2015
Time Series With OrientDB - Fosdem 2015Time Series With OrientDB - Fosdem 2015
Time Series With OrientDB - Fosdem 2015
 
Geospatial Graphs made easy with OrientDB - Codemotion Milan 2016
Geospatial Graphs made easy with OrientDB - Codemotion Milan 2016Geospatial Graphs made easy with OrientDB - Codemotion Milan 2016
Geospatial Graphs made easy with OrientDB - Codemotion Milan 2016
 
General trends in skill supply and demand on the labour market
General trends in skill supply and demand on the labour marketGeneral trends in skill supply and demand on the labour market
General trends in skill supply and demand on the labour market
 
Geospatial Graphs made easy with OrientDB - Codemotion Spain
Geospatial Graphs made easy with OrientDB - Codemotion SpainGeospatial Graphs made easy with OrientDB - Codemotion Spain
Geospatial Graphs made easy with OrientDB - Codemotion Spain
 
OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0
 
Determinants of Demand and Supply in Tourism
Determinants of Demand and Supply in TourismDeterminants of Demand and Supply in Tourism
Determinants of Demand and Supply in Tourism
 
Demand analysis
Demand analysisDemand analysis
Demand analysis
 
Demand Analysis
Demand  AnalysisDemand  Analysis
Demand Analysis
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 

Similaire à OrientDB - Time Series and Event Sequences - Codemotion Milan 2014

Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...Codemotion
 
Intel realtime analytics_spark
Intel realtime analytics_sparkIntel realtime analytics_spark
Intel realtime analytics_sparkGeetanjali G
 
Dataflow - A Unified Model for Batch and Streaming Data Processing
Dataflow - A Unified Model for Batch and Streaming Data ProcessingDataflow - A Unified Model for Batch and Streaming Data Processing
Dataflow - A Unified Model for Batch and Streaming Data ProcessingDoiT International
 
Big Data Day LA 2016/ Big Data Track - Portable Stream and Batch Processing w...
Big Data Day LA 2016/ Big Data Track - Portable Stream and Batch Processing w...Big Data Day LA 2016/ Big Data Track - Portable Stream and Batch Processing w...
Big Data Day LA 2016/ Big Data Track - Portable Stream and Batch Processing w...Data Con LA
 
Streaming SQL Foundations: Why I ❤ Streams+Tables
Streaming SQL Foundations: Why I ❤ Streams+TablesStreaming SQL Foundations: Why I ❤ Streams+Tables
Streaming SQL Foundations: Why I ❤ Streams+TablesC4Media
 
Cloud Dataflow - A Unified Model for Batch and Streaming Data Processing
Cloud Dataflow - A Unified Model for Batch and Streaming Data ProcessingCloud Dataflow - A Unified Model for Batch and Streaming Data Processing
Cloud Dataflow - A Unified Model for Batch and Streaming Data ProcessingDoiT International
 
MongoDB for Time Series Data: Setting the Stage for Sensor Management
MongoDB for Time Series Data: Setting the Stage for Sensor ManagementMongoDB for Time Series Data: Setting the Stage for Sensor Management
MongoDB for Time Series Data: Setting the Stage for Sensor ManagementMongoDB
 
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Flink Forward
 
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case StudyMongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case StudyMongoDB
 
Foundations of streaming SQL: stream & table theory
Foundations of streaming SQL: stream & table theoryFoundations of streaming SQL: stream & table theory
Foundations of streaming SQL: stream & table theoryDataWorks Summit
 
Lifting the hood on spark streaming - StampedeCon 2015
Lifting the hood on spark streaming - StampedeCon 2015Lifting the hood on spark streaming - StampedeCon 2015
Lifting the hood on spark streaming - StampedeCon 2015StampedeCon
 
PEARC17: Visual exploration and analysis of time series earthquake data
PEARC17: Visual exploration and analysis of time series earthquake dataPEARC17: Visual exploration and analysis of time series earthquake data
PEARC17: Visual exploration and analysis of time series earthquake dataAmit Chourasia
 
MongoDB for Time Series Data
MongoDB for Time Series DataMongoDB for Time Series Data
MongoDB for Time Series DataMongoDB
 
Streaming SQL to unify batch and stream processing: Theory and practice with ...
Streaming SQL to unify batch and stream processing: Theory and practice with ...Streaming SQL to unify batch and stream processing: Theory and practice with ...
Streaming SQL to unify batch and stream processing: Theory and practice with ...Fabian Hueske
 
Have your cake and eat it too, further dispelling the myths of the lambda arc...
Have your cake and eat it too, further dispelling the myths of the lambda arc...Have your cake and eat it too, further dispelling the myths of the lambda arc...
Have your cake and eat it too, further dispelling the myths of the lambda arc...Dimos Raptis
 
Intro to Spark - for Denver Big Data Meetup
Intro to Spark - for Denver Big Data MeetupIntro to Spark - for Denver Big Data Meetup
Intro to Spark - for Denver Big Data MeetupGwen (Chen) Shapira
 
Re-Engineering PostgreSQL as a Time-Series Database
Re-Engineering PostgreSQL as a Time-Series DatabaseRe-Engineering PostgreSQL as a Time-Series Database
Re-Engineering PostgreSQL as a Time-Series DatabaseAll Things Open
 

Similaire à OrientDB - Time Series and Event Sequences - Codemotion Milan 2014 (20)

Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
 
Intel realtime analytics_spark
Intel realtime analytics_sparkIntel realtime analytics_spark
Intel realtime analytics_spark
 
Dataflow - A Unified Model for Batch and Streaming Data Processing
Dataflow - A Unified Model for Batch and Streaming Data ProcessingDataflow - A Unified Model for Batch and Streaming Data Processing
Dataflow - A Unified Model for Batch and Streaming Data Processing
 
Big Data Day LA 2016/ Big Data Track - Portable Stream and Batch Processing w...
Big Data Day LA 2016/ Big Data Track - Portable Stream and Batch Processing w...Big Data Day LA 2016/ Big Data Track - Portable Stream and Batch Processing w...
Big Data Day LA 2016/ Big Data Track - Portable Stream and Batch Processing w...
 
Streaming SQL Foundations: Why I ❤ Streams+Tables
Streaming SQL Foundations: Why I ❤ Streams+TablesStreaming SQL Foundations: Why I ❤ Streams+Tables
Streaming SQL Foundations: Why I ❤ Streams+Tables
 
Cloud Dataflow - A Unified Model for Batch and Streaming Data Processing
Cloud Dataflow - A Unified Model for Batch and Streaming Data ProcessingCloud Dataflow - A Unified Model for Batch and Streaming Data Processing
Cloud Dataflow - A Unified Model for Batch and Streaming Data Processing
 
MongoDB for Time Series Data: Setting the Stage for Sensor Management
MongoDB for Time Series Data: Setting the Stage for Sensor ManagementMongoDB for Time Series Data: Setting the Stage for Sensor Management
MongoDB for Time Series Data: Setting the Stage for Sensor Management
 
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
 
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case StudyMongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
 
So you think you can stream.pptx
So you think you can stream.pptxSo you think you can stream.pptx
So you think you can stream.pptx
 
cb streams - gavin pickin
cb streams - gavin pickincb streams - gavin pickin
cb streams - gavin pickin
 
Foundations of streaming SQL: stream & table theory
Foundations of streaming SQL: stream & table theoryFoundations of streaming SQL: stream & table theory
Foundations of streaming SQL: stream & table theory
 
Lifting the hood on spark streaming - StampedeCon 2015
Lifting the hood on spark streaming - StampedeCon 2015Lifting the hood on spark streaming - StampedeCon 2015
Lifting the hood on spark streaming - StampedeCon 2015
 
PEARC17: Visual exploration and analysis of time series earthquake data
PEARC17: Visual exploration and analysis of time series earthquake dataPEARC17: Visual exploration and analysis of time series earthquake data
PEARC17: Visual exploration and analysis of time series earthquake data
 
MongoDB for Time Series Data
MongoDB for Time Series DataMongoDB for Time Series Data
MongoDB for Time Series Data
 
MapReduce basics
MapReduce basicsMapReduce basics
MapReduce basics
 
Streaming SQL to unify batch and stream processing: Theory and practice with ...
Streaming SQL to unify batch and stream processing: Theory and practice with ...Streaming SQL to unify batch and stream processing: Theory and practice with ...
Streaming SQL to unify batch and stream processing: Theory and practice with ...
 
Have your cake and eat it too, further dispelling the myths of the lambda arc...
Have your cake and eat it too, further dispelling the myths of the lambda arc...Have your cake and eat it too, further dispelling the myths of the lambda arc...
Have your cake and eat it too, further dispelling the myths of the lambda arc...
 
Intro to Spark - for Denver Big Data Meetup
Intro to Spark - for Denver Big Data MeetupIntro to Spark - for Denver Big Data Meetup
Intro to Spark - for Denver Big Data Meetup
 
Re-Engineering PostgreSQL as a Time-Series Database
Re-Engineering PostgreSQL as a Time-Series DatabaseRe-Engineering PostgreSQL as a Time-Series Database
Re-Engineering PostgreSQL as a Time-Series Database
 

Plus de Luigi Dell'Aquila

GeeCON Prague 2016 - Geospatial Graphs made easy with OrientDB
GeeCON Prague 2016 - Geospatial Graphs made easy with OrientDBGeeCON Prague 2016 - Geospatial Graphs made easy with OrientDB
GeeCON Prague 2016 - Geospatial Graphs made easy with OrientDBLuigi Dell'Aquila
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016Luigi Dell'Aquila
 
Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016
Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016
Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016Luigi Dell'Aquila
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016Luigi Dell'Aquila
 
OrientDB - Voxxed Days Berlin 2016
OrientDB - Voxxed Days Berlin 2016OrientDB - Voxxed Days Berlin 2016
OrientDB - Voxxed Days Berlin 2016Luigi Dell'Aquila
 
OrientDB - Voxxed Days Berlin 2016
OrientDB - Voxxed Days Berlin 2016OrientDB - Voxxed Days Berlin 2016
OrientDB - Voxxed Days Berlin 2016Luigi Dell'Aquila
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015Luigi Dell'Aquila
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL
OrientDB - the 2nd generation  of  (Multi-Model) NoSQLOrientDB - the 2nd generation  of  (Multi-Model) NoSQL
OrientDB - the 2nd generation of (Multi-Model) NoSQLLuigi Dell'Aquila
 
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.ioLuigi Dell'Aquila
 
OrientDB - cloud barcamp Libero Cloud
OrientDB - cloud barcamp Libero CloudOrientDB - cloud barcamp Libero Cloud
OrientDB - cloud barcamp Libero CloudLuigi Dell'Aquila
 
Orient DB on the cloud - Cloud Party 2013
Orient DB on the cloud - Cloud Party 2013Orient DB on the cloud - Cloud Party 2013
Orient DB on the cloud - Cloud Party 2013Luigi Dell'Aquila
 

Plus de Luigi Dell'Aquila (13)

GeeCON Prague 2016 - Geospatial Graphs made easy with OrientDB
GeeCON Prague 2016 - Geospatial Graphs made easy with OrientDBGeeCON Prague 2016 - Geospatial Graphs made easy with OrientDB
GeeCON Prague 2016 - Geospatial Graphs made easy with OrientDB
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
 
Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016
Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016
Geospatial Graphs made easy with OrientDB - Codemotion Warsaw 2016
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
 
OrientDB - Voxxed Days Berlin 2016
OrientDB - Voxxed Days Berlin 2016OrientDB - Voxxed Days Berlin 2016
OrientDB - Voxxed Days Berlin 2016
 
OrientDB - Voxxed Days Berlin 2016
OrientDB - Voxxed Days Berlin 2016OrientDB - Voxxed Days Berlin 2016
OrientDB - Voxxed Days Berlin 2016
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL
OrientDB - the 2nd generation  of  (Multi-Model) NoSQLOrientDB - the 2nd generation  of  (Multi-Model) NoSQL
OrientDB - the 2nd generation of (Multi-Model) NoSQL
 
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
 
OrientDB meetup roma 2014
OrientDB meetup roma 2014OrientDB meetup roma 2014
OrientDB meetup roma 2014
 
OrientDB Codemotion 2014
OrientDB Codemotion 2014OrientDB Codemotion 2014
OrientDB Codemotion 2014
 
OrientDB - cloud barcamp Libero Cloud
OrientDB - cloud barcamp Libero CloudOrientDB - cloud barcamp Libero Cloud
OrientDB - cloud barcamp Libero Cloud
 
Orient DB on the cloud - Cloud Party 2013
Orient DB on the cloud - Cloud Party 2013Orient DB on the cloud - Cloud Party 2013
Orient DB on the cloud - Cloud Party 2013
 

Dernier

Bank Loan Approval Analysis: A Comprehensive Data Analysis Project
Bank Loan Approval Analysis: A Comprehensive Data Analysis ProjectBank Loan Approval Analysis: A Comprehensive Data Analysis Project
Bank Loan Approval Analysis: A Comprehensive Data Analysis ProjectBoston Institute of Analytics
 
Data Factory in Microsoft Fabric (MsBIP #82)
Data Factory in Microsoft Fabric (MsBIP #82)Data Factory in Microsoft Fabric (MsBIP #82)
Data Factory in Microsoft Fabric (MsBIP #82)Cathrine Wilhelmsen
 
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...Boston Institute of Analytics
 
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...Amil Baba Dawood bangali
 
Unveiling the Role of Social Media Suspect Investigators in Preventing Online...
Unveiling the Role of Social Media Suspect Investigators in Preventing Online...Unveiling the Role of Social Media Suspect Investigators in Preventing Online...
Unveiling the Role of Social Media Suspect Investigators in Preventing Online...Milind Agarwal
 
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default  Presentation : Data Analysis Project PPTPredictive Analysis for Loan Default  Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPTBoston Institute of Analytics
 
INTRODUCTION TO Natural language processing
INTRODUCTION TO Natural language processingINTRODUCTION TO Natural language processing
INTRODUCTION TO Natural language processingsocarem879
 
Learn How Data Science Changes Our World
Learn How Data Science Changes Our WorldLearn How Data Science Changes Our World
Learn How Data Science Changes Our WorldEduminds Learning
 
SMOTE and K-Fold Cross Validation-Presentation.pptx
SMOTE and K-Fold Cross Validation-Presentation.pptxSMOTE and K-Fold Cross Validation-Presentation.pptx
SMOTE and K-Fold Cross Validation-Presentation.pptxHaritikaChhatwal1
 
What To Do For World Nature Conservation Day by Slidesgo.pptx
What To Do For World Nature Conservation Day by Slidesgo.pptxWhat To Do For World Nature Conservation Day by Slidesgo.pptx
What To Do For World Nature Conservation Day by Slidesgo.pptxSimranPal17
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Seán Kennedy
 
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024Susanna-Assunta Sansone
 
convolutional neural network and its applications.pdf
convolutional neural network and its applications.pdfconvolutional neural network and its applications.pdf
convolutional neural network and its applications.pdfSubhamKumar3239
 
Student Profile Sample report on improving academic performance by uniting gr...
Student Profile Sample report on improving academic performance by uniting gr...Student Profile Sample report on improving academic performance by uniting gr...
Student Profile Sample report on improving academic performance by uniting gr...Seán Kennedy
 
Semantic Shed - Squashing and Squeezing.pptx
Semantic Shed - Squashing and Squeezing.pptxSemantic Shed - Squashing and Squeezing.pptx
Semantic Shed - Squashing and Squeezing.pptxMike Bennett
 
Digital Marketing Plan, how digital marketing works
Digital Marketing Plan, how digital marketing worksDigital Marketing Plan, how digital marketing works
Digital Marketing Plan, how digital marketing worksdeepakthakur548787
 
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...Dr Arash Najmaei ( Phd., MBA, BSc)
 
Cyber awareness ppt on the recorded data
Cyber awareness ppt on the recorded dataCyber awareness ppt on the recorded data
Cyber awareness ppt on the recorded dataTecnoIncentive
 
Decoding Patterns: Customer Churn Prediction Data Analysis Project
Decoding Patterns: Customer Churn Prediction Data Analysis ProjectDecoding Patterns: Customer Churn Prediction Data Analysis Project
Decoding Patterns: Customer Churn Prediction Data Analysis ProjectBoston Institute of Analytics
 
Advanced Machine Learning for Business Professionals
Advanced Machine Learning for Business ProfessionalsAdvanced Machine Learning for Business Professionals
Advanced Machine Learning for Business ProfessionalsVICTOR MAESTRE RAMIREZ
 

Dernier (20)

Bank Loan Approval Analysis: A Comprehensive Data Analysis Project
Bank Loan Approval Analysis: A Comprehensive Data Analysis ProjectBank Loan Approval Analysis: A Comprehensive Data Analysis Project
Bank Loan Approval Analysis: A Comprehensive Data Analysis Project
 
Data Factory in Microsoft Fabric (MsBIP #82)
Data Factory in Microsoft Fabric (MsBIP #82)Data Factory in Microsoft Fabric (MsBIP #82)
Data Factory in Microsoft Fabric (MsBIP #82)
 
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
 
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
 
Unveiling the Role of Social Media Suspect Investigators in Preventing Online...
Unveiling the Role of Social Media Suspect Investigators in Preventing Online...Unveiling the Role of Social Media Suspect Investigators in Preventing Online...
Unveiling the Role of Social Media Suspect Investigators in Preventing Online...
 
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default  Presentation : Data Analysis Project PPTPredictive Analysis for Loan Default  Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPT
 
INTRODUCTION TO Natural language processing
INTRODUCTION TO Natural language processingINTRODUCTION TO Natural language processing
INTRODUCTION TO Natural language processing
 
Learn How Data Science Changes Our World
Learn How Data Science Changes Our WorldLearn How Data Science Changes Our World
Learn How Data Science Changes Our World
 
SMOTE and K-Fold Cross Validation-Presentation.pptx
SMOTE and K-Fold Cross Validation-Presentation.pptxSMOTE and K-Fold Cross Validation-Presentation.pptx
SMOTE and K-Fold Cross Validation-Presentation.pptx
 
What To Do For World Nature Conservation Day by Slidesgo.pptx
What To Do For World Nature Conservation Day by Slidesgo.pptxWhat To Do For World Nature Conservation Day by Slidesgo.pptx
What To Do For World Nature Conservation Day by Slidesgo.pptx
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...
 
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
 
convolutional neural network and its applications.pdf
convolutional neural network and its applications.pdfconvolutional neural network and its applications.pdf
convolutional neural network and its applications.pdf
 
Student Profile Sample report on improving academic performance by uniting gr...
Student Profile Sample report on improving academic performance by uniting gr...Student Profile Sample report on improving academic performance by uniting gr...
Student Profile Sample report on improving academic performance by uniting gr...
 
Semantic Shed - Squashing and Squeezing.pptx
Semantic Shed - Squashing and Squeezing.pptxSemantic Shed - Squashing and Squeezing.pptx
Semantic Shed - Squashing and Squeezing.pptx
 
Digital Marketing Plan, how digital marketing works
Digital Marketing Plan, how digital marketing worksDigital Marketing Plan, how digital marketing works
Digital Marketing Plan, how digital marketing works
 
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
6 Tips for Interpretable Topic Models _ by Nicha Ruchirawat _ Towards Data Sc...
 
Cyber awareness ppt on the recorded data
Cyber awareness ppt on the recorded dataCyber awareness ppt on the recorded data
Cyber awareness ppt on the recorded data
 
Decoding Patterns: Customer Churn Prediction Data Analysis Project
Decoding Patterns: Customer Churn Prediction Data Analysis ProjectDecoding Patterns: Customer Churn Prediction Data Analysis Project
Decoding Patterns: Customer Churn Prediction Data Analysis Project
 
Advanced Machine Learning for Business Professionals
Advanced Machine Learning for Business ProfessionalsAdvanced Machine Learning for Business Professionals
Advanced Machine Learning for Business Professionals
 

OrientDB - Time Series and Event Sequences - Codemotion Milan 2014

  • 1. Time flows, my friend Managing event sequences and time series with a Document-Graph Database Codemotion Milan 2014 Luigi Dell’Aquila Orient Technologies LTD Twitter: @ldellaquila
  • 3. Time What…? Time series: A time series is a sequence of data points, typically consisting of successive measurements made over a time interval (Wikipedia)
  • 4. Time What…? Event sequences: • A set of events with a timestamp • A set of relationships “happened before/after” • Cause and effect relationships
  • 5. Time What…? Time as a dimension: • Direct: – Eg. begin and end of relationships (I’m a friend of John since…) • Calculated – Eg. Speed (distance/time)
  • 6. Time What…? Time as a constraint: • Query execution time!
  • 7. The problem: Fast and Effective
  • 8. Fast and Effective Fast write: Time doesn’t wait! Writes just arrive Fast read: a lot of data to be read in a short time Effective manipulation: complex operations like - Aggregation - Prediction - Analysis
  • 10. Current approaches 0. Relational approach: table Timestamp Value 2014:11:21 14:35:00 1321 2014:11:21 14:35:01 2444 2014:11:21 14:35:02 2135 2014:11:21 14:35:03 1833
  • 11. Current approaches 0. Relational approach: table HH MM SS Value 14 35 0 1321 14 35 1 2444 14 35 2 2135 14 35 3 1833
  • 12. Current approaches 0. Relational – Advantages • Simple • It can be used together with your application data (operational)
  • 13. Current approaches 0. Relational – Disadvantages • Slow read (relies on an index) • Slow insert (update the index…)
  • 14. Current approaches 1. Document Database • Collections of Documents instead of tables • Schemaless • Complex data structures
  • 15. Current approaches 1. Document approach: Minute Based { timestamp: “2014-11-21 12.05“ load: [10, 15, 3, … 30] //array of 60, one per second }
  • 16. Current approaches 1. Document approach: Hour Based { timestamp: “2014-11-21 12.00“ load: { 0: [10, 15, 3, … 30], //array of 60, one per second 1: [0, 12, 31, … 24], … 59: [10, 10, 1, … 16] } }
  • 17. Current approaches 1. Document approach – Advantages • Fast write: One insert x 60 updates • Fast fetch
  • 18. Current approaches 1. Document approach – Disadvantages • Fixed time windows • Single point per unit • How to pre-aggregate? • Relationships with the rest of the world? • Relationships between events?
  • 19. Current approaches 2. Graph Database • Nodes/Edges instead of tables • Index free adjacency • Fast traversal • Dynamic structure
  • 20. Current approaches 2. Graph approach: linked sequence e 1 next e e 2 next e next e 3 4 5 next (timestamp on vertex)
  • 21. Current approaches 2. Graph approach: linked sequence (tag based) e 1 e 2 nextTag1 e 3 nextTag2 e 4 nextTag1 e 5 nextTag1 nextTag2 [Tag1, Tag2] [Tag1] [Tag1, Tag2] [Tag1] [Tag2]
  • 22. Current approaches 2. Graph approach: Hierarchy e 1 e 2 e6 0 1 1 8 24 2 60 … … Days Hours Minutes Seconds … e 3
  • 23. Current approaches 2. Graph approach: mixed e 1 e 2 e6 0 1 1 8 24 2 60 … … Days Hours Minutes Seconds … e 3
  • 24. Current approaches 1. Graph approach – Advantages • Flexible • Events can be connected together in different ways • You can connect events to other entities • Fast traversal of dynamic time windows • Fast aggregation (based on hierarchy)
  • 25. Current approaches 1. Graph approach – Disadvantages • Slow writes (vertex + edge + maintenance) • Not so fast reads
  • 26. Can we mix different models and get all the advantages?
  • 27. Can we mix all this with the rest of application logic?
  • 29. • Document database (schema-free, complex properties) • Graph database (index-free adjacency, fast traversal) • SQL (extended) • Operational (schema - ACID) • OO concepts (Classes, inheritance, polymorphism) • REST/JSON interface • Native Javascript (extend query language, expose services, event hooks) • Distributed (Multi-master replica/sharding) architecture
  • 30. OrientDB First step: put them together 1 1 8 24 2 60 … Days Hours Minutes … { 0: 1000, 1: 1500. … 59: 96 }
  • 31. OrientDB First step: put them together 1 1 8 24 2 60 … Days Hours Minutes … { 0: 1000, 1: 1500. … 59: 96 } Graph Document <- IT’S A VERTEX TOO!!!
  • 32. OrientDB First step: put them together 1 8 24 Days … Hours { 0: { 0: 1000, 1: 1500, … 59: 210 } 1: { … } … 59: { … } } Graph Document
  • 33. Where should I stop? It depends on my domain and requirements.
  • 34. OrientDB Result: • Same insert speed of Document approach • But with flexibility of a Graph • (as a side effect of mixing models, documents can also contain “pointers” to other elements of app domain)
  • 35. OrientDB Second step: Pre-aggregate 1 1 8 24 2 60 … Days Hours Minutes … { 0: 1000, 1: 1500. … 59: 96 } Graph Document <- IT’S A VERTEX TOO!!!
  • 36. OrientDB Second step: Pre-aggregate 1 1 8 24 2 60 … Days Hours Minutes … { 0: 1000, 1: 1500. … 59: 96 } Graph sum() Document <- IT’S A VERTEX TOO!!!
  • 37. OrientDB Second step: Pre-aggregate 1 sum() 1 8 24 2 60 … Days Hours Minutes … { 0: 1000, 1: 1500. … 59: 96 } Graph sum() Document <- IT’S A VERTEX TOO!!!
  • 38. OrientDB How to aggregate Hooks: Server side triggers (Java or Javascript), executed when DB operations happen (eg. Insert or update) Java interface: Public RESULT onBeforeInsert(…); public void onAfterInsert(…); public RESULT onBeforeUpdate(…); public void onAfterUpdate(…);
  • 39. OrientDB Aggregation logic • Second 0 -> insert • Second 1 -> update • … • Second 57 -> update • Second 58 -> update • Second 59 -> update + aggregate – Write aggregate value on minute vertex • Minute == 59? Calculate aggregate on hour vertex
  • 40. OrientDB 1 1 8 24 2 60 … Days Hours Minutes … { 0: 1, 1: 12. … 59: 3 } sum = 1000 sum = 15000 sum = 300 1 2 incomplete complete sum = null sum = null
  • 41. OrientDB Query logic: • Traverse from root node to specified level (filtering based on vertex data) • Is there aggregate value? – Yes: return it – No: go one level down and do the same Aggregation on a level will be VERY fast if you have horizontal edges!
  • 42. OrientDB How to calculate aggregate values with a query Input params: - Root node (suppose it is #11:11) select sum(aggregateVal) from ( traverse out() from #11:11 while in().aggregateVal is null ) With the same logic you can query based on time windows
  • 43. OrientDB Third step: Complex domains 1 1 2 60 … Hours Minutes { 0: {val: 1000}, 1: {val: 1500}. … 59: { val: 96, eventTags: [tag1, tag2] … } } Graph Document <- Enrich the domain
  • 44. OrientDB Another use case: Event Categories and OO e 1 e 2 nextTag1 e 3 nextTag2 e 4 nextTag1 e 5 nextTag1 nextTag2 [Tag1, Tag2, Tag3] [Tag1] [Tag1, Tag2] [Tag1] [Tag2] nextTag3 e 3 [Tag3]
  • 45. OrientDB Another use case: Event Categories and OO Suppose tags are hierarchical categories (Classes for vertices and/or edges) nextTAG nextTagX nextTag3 nextTag1 nextTag2
  • 46. OrientDB Subset of events TRAVERSE out(‘nextTag1’) FROM <e1> e 1 e 2 nextTag1 e 4 nextTag1 e 5 nextTag1 [Tag1, Tag2, Tag3] [Tag1] [Tag1, Tag2] [Tag1]
  • 47. OrientDB Subset of events TRAVERSE out(‘nextTag2’) FROM <e1> e 1 nextTag1 nextTag2 e e 3 5 nextTag2 [Tag1, Tag2, Tag3] [Tag1, Tag2] [Tag2]
  • 48. OrientDB Subset of events (Polymorphic!!!) TRAVERSE out(‘nextTagX’) FROM <e1> e 1 e 2 nextTag1 e 3 nextTag2 e 4 nextTag1 e 5 nextTag1 nextTag2 [Tag1, Tag2, Tag3] [Tag1] [Tag1, Tag2] [Tag1] [Tag2]
  • 49. Connect all this with the rest of your application domain
  • 50. You’ll see, everything will get more complex: you will discover new time-related dimensions (speed, position…) and new needs (complex forecasting)
  • 52. Chase • Your target is running away • You have informers that track his moves (coordinates in a point of time) and give you additional (unstructured) information • You have a street map • You want to: – Catch him ASAP – Predict his moves – Be sure that he is inside an area
  • 53. Chase
  • 54. Chase
  • 55. Chase • Map is made of points and distances • You also have speed limits for streets point1 pointN Distance: 1Km Max speed: 70Km/h Distance: 2Km Max speed: 120Km/h Distance: 8Km Max speed: 90Km/h Map point Street
  • 56. Chase • Map is made of points and distances • You also have speed limits for streets • Distance / Speed = TIME!!!
  • 57. Chase You have a time series of your target’s moves { { Timestamp: 29/11/2014 17:15:00 LAT: 19,12223 LON: 42,134 } Timestamp: 29/11/2014 17:55:00 LAT: 19,12223 LON: 42,134 } Event Event seqence { Timestamp: 29/11/2014 17:55:00 LAT: 19,12223 LON: 42,134 }
  • 58. Chase You have a time series of your target’s moves 21/11/2014 2:35:00 PM 20/11/2014 1:20:00 PM Map point Street
  • 59. Chase You have a time series of your target’s moves 21/11/2014 14:35:00 20/11/2014 13:20:00 Event Map point Where Event seqence Street 29/11/2014 17:55:00
  • 60. Chase Vertices and edges are also documents So you can store complex information inside them { timestamp: 22213989487987, lat: xxxx, lon: yyy, informer: 15, additional: { speed: 120, description: “the target was in a car” car: { model: “Fiat 500”, licensePlate: “AA 123 BB” } } }
  • 61. Chase Now you can: • Predict his moves (eg. statistical methods, interpolation on lat/lon + time) • Calculate how far he can be (based on last position, avg speed and street data) • Reach him quickly (shortest path, Dijkstra) • … intelligence?
  • 62. Chase But to have all this you need: • An easy way for your informers to send time series events Hint: REST interface With OrientDB you can expose Javascript functions as REST services!
  • 63. Chase And you need: • An extended query language Eg. TRAVERSE out(“street”) FROM ( SELECT out(“point”) FROM #11:11 // my last event ) WHILE canBeReached($current, #11:11) (where he could be)
  • 64. Chase With OrientDB you can write function canBeReached(node, event) In Javascript and use it in your queries
  • 65. Chase It’s just a game, but think about: • Fraud detection • Traffic routing • Multi-dimensional analytics • Forecasting • …
  • 67. One model is not enough One of most common issues of my customers is: “I have a zoo of technologies in my application stack, and it’s getting worse every day” My answer is: Multi-Model DB
  • 68. One model is not enough One of most common issues of my customers is: “I have a zoo of technologies in my application stack, and it’s getting worse every day” My answer is: Multi-Model DB of course ;-)
  • 69. From: “choose the right data model for your use case” To: “Your application has multiple data models, you need all of them!”
  • 70. This is NoSQL 2.0!!!
  • 71. Thank you! @ldellaquila l.dellaquila@orientechnologies.com