SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Tuesday




          BIGDATA.BE
28.08
8 Things I like about Datomic
     + something about temporal graph databases




       www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
About me
                                           Who am I ...
                                           ➡ Working as an it lead / software architect @ Janssen Diagnostics
                                                  • Dealing with big scientific data sets
                                                  • Hands-on expertise in Big Data and NoSQL technologies




                                           ➡ Founder of datablend
                                                  • Provide Big Data and NoSQL consultancy
    Davy Suvee                                    • Share practical knowledge and Big Data use cases via blog
      @DSUVEE




           www.datablend.be   info@datablend.be       0499/05.00.89     Diepestraat 23 - heist-op-den-berg
1 - Data Immutability
                               entity                      attribute                                    value



Datom                                      [ 10 ‘:name’ ‘datablend’ ]



            www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
1 - Data Immutability
                               entity                      attribute                                    value



Datom                                      [ 10 ‘:name’ ‘datablend’ ]
                                                                                       ‘dataother’

            www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
1 - Data Immutability
                               entity                      attribute                                    value



Datom                                      [ 10 ‘:name’ ‘datablend‘ tx1 ]
                                           [ 10 ‘:name’ ‘DATAOTHER‘ tx2 ]
                                                                                          defines time


            www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
2 - Schema-Less                         kind of ...



Util.map(":db/id", Peer.tempid(":db.part/db"),
         ":db/ident", ":name",
         ":db/valueType", ":db.type/string",
         ":db/cardinality", ":db.cardinality/one",
         ":db/doc", "The name of an entity",
         ":db.install/_attribute", ":db.part/db"));

                                                                                                              attribute definition

                  www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
3 - Everything is a Datom

[ 10 ‘:name’ ‘datablend‘ ]
[ 10 ‘:tel’ ‘01234566789‘ ]                               [ 99 ‘:db/ident’ ‘:name’ ]
                                                          [ 99 ‘:db/valueType’ ‘:db.type/string’ ]
[ 11 ‘:name’ ‘Davy Suvee‘ ]                               [ 99 ‘:db/cardinality’ ‘:db.cardinality/one’ ]
[ 11 ‘:knows’ ‘java‘ ]                                    [ 99 ‘:db/doc’ ‘The name of an entity’ ]
[ 11 ‘:knows’ ‘NoSQL‘ ]                                   [ 99 ‘:db.install/_attribute’ ‘:db.part/db’ ]
[ 11 ‘:founded’ 10 ]


                        www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
3 - Everything Is A Datom
                                                                                          transaction

             [ 10 ‘:name’ ‘datablend‘ 251]




         www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
3 - Everything Is A Datom
                                                                                           transaction

              [ 10 ‘:name’ ‘datablend‘ 251]

       [ 251 ‘:db/txInstant’ ‘35454920495’ ] timestamp




          www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
3 - Everything Is A Datom
                                                                                           transaction

              [ 10 ‘:name’ ‘datablend‘ 251]

       [ 251 ‘:db/txInstant’ ‘35454920495’ ] timestamp

                [ 251 ‘:source’ ‘:external’ ] meta-data
                 [ 251 ‘:url’ ‘bigdata.be’ ]


          www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
4 - Datalog                                 logic programming for your datoms


[ 10 ‘:name’ ‘datablend‘ ]
[ 10 ‘:tel’ ‘01234566789‘ ]
                                                               [:find ?entity ?name
[ 11 ‘:name’ ‘Davy Suvee‘ ]                                     :where [?entity :name ?name]]
[ 11 ‘:knows’ ‘java‘ ]
[ 11 ‘:knows’ ‘NoSQL‘ ]                                                            (10 ‘datablend‘)
[ 11 ‘:founded’ 10 ]                                                               (11 ‘Davy Suvee‘)



                        www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
4 - Datalog                                 logic programming for your datoms


[ 10 ‘:name’ ‘datablend‘ ]
[ 10 ‘:tel’ ‘01234566789‘ ]
                                                               [:find ?name
[ 11 ‘:name’ ‘Davy Suvee‘ ]                                     :where [?person :name ?name]
                                                                       [?person :knows ‘java’]]
[ 11 ‘:knows’ ‘java‘ ]
[ 11 ‘:knows’ ‘NoSQL‘ ]
[ 11 ‘:founded’ 10 ]                                                                (‘Davy Suvee‘)




                        www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
4 - Datalog                                 logic programming for your datoms


[ 10 ‘:name’ ‘datablend‘ ]
[ 10 ‘:tel’ ‘01234566789‘ ]                                    [:find ?name
                                                                :where [?com :name ?name]
[ 11 ‘:name’ ‘Davy Suvee‘ ]                                            [?person :knows ‘java’]
[ 11 ‘:knows’ ‘java‘ ]                                                 [?person :founded ?com]]
[ 11 ‘:knows’ ‘NoSQL‘ ]
[ 11 ‘:founded’ 10 ]                                                                           (‘datablend‘)



                        www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
4 - Datalog                             ... and as everything is a datom ...


[:find ?attribute
 :where [?attribute :db/valueType :db.type/string]]




            www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
4 - Datalog                             ... and as everything is a datom ...


[:find ?attribute
 :where [?attribute :db/valueType :db.type/string]]



      [:find ?entity ?url
       :where [?entity :name “datablend” ?tx]
              [?tx :source :external]
              [?tx :url ?url]]




            www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
5 - Power your queries
[:find ?tech
 :where [_ :knows ?tech]                                            any valid Java expression
        [(.startsWith ?tech “J”)]]




                     www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
5 - Power your queries
[:find ?tech
 :where [_ :knows ?tech]                                            any valid Java expression
        [(.startsWith ?tech “J”)]]




[[(ancestor ?person ?ancestor) [?person :person/parent ?ancestor]]
 [(ancestor ?person ?ancestor) [?person :person/parent ?parent]
                               (ancestor ?parent ?ancestor)]]]

                                                                     recursive rules

                     www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
6 - Travel through time
                                                                                [ 10 ‘:name’ ‘datablend‘ tx 1 ]
                                                                                [ 10 ‘:name’ ‘DATAOTHER‘ tx2 ]
String query = “[:find ?name
                 :where [10 :name ?name]]”;



Peer.q(query, conn.db());                                                                                   (‘dataother’)




                     www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
6 - Travel through time
                                                                                [ 10 ‘:name’ ‘datablend‘ tx 1 ]
                                                                                [ 10 ‘:name’ ‘DATAOTHER‘ tx2 ]
String query = “[:find ?name
                 :where [10 :name ?name]]”;



Peer.q(query, conn.db());                                                                                   (‘dataother’)

Peer.q(query, conn.db().asOf(tx1));                                                                         (‘datablend’)




                     www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
6 - Travel through time
                                                                                  [ 10 ‘:name’ ‘datablend‘ tx 1 ]
                                                                                  [ 10 ‘:name’ ‘DATAOTHER‘ tx2 ]
String query = “[:find ?name
                 :where [10 :name ?name]]”;



Peer.q(query, conn.db());                                                                                     (‘dataother’)

Peer.q(query, conn.db().asOf(tx1));                                                                           (‘datablend’)

Peer.q(query, conn.db().with(futuretx));                                                                           (‘datamix’)

              [ 10 ‘:name’ ‘datamix‘ ]

                       www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
7 - Scalability reversed




         www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
8 - Pluggable data stores

➡ In memory (dev mode)
➡ SQL Database
➡ DYNAMO DB
➡ INFINISPAN


➡ Switch transparently and migration tools available


                   www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
FluxGraph:
Tinkerpop on top of Datomic
     (http://github.com/datablend/blueprints)



        www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
FluxGraph
➡ Blueprints implementation on top of Datomic




                     www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
FluxGraph
➡ Blueprints implementation on top of Datomic


➡ Graph Time Travel
       public void setTime(Date checkpoint);




                      www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
FluxGraph
➡ Blueprints implementation on top of Datomic


➡ Graph Time Travel
        public void setTime(Date checkpoint);


➡ Time-scoped iteration of vertices and edges
        public Vertex getPreviousVersion();
        public Iterable<Edge> getNextVersions();
        public Iterable<Edge> getNextVersions(Filter filter);

                      www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
Time-aware social graph




        www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
GraphConnect


       “The use of Temporal Graph Databases to
        ease the analysis of longitudinal patient
        data”


       www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg
Questions?
Contact us


Follow us                                                                                                            E-MAIL
twitter.com/data_blend                                                                                               info@datablend.be
www.datablend.be




                         www.datablend.be   info@datablend.be   0499/05.00.89   Diepestraat 23 - heist-op-den-berg

Contenu connexe

Similaire à 8 Things about Temporal Graph Databases

Play With Theschwartz
Play With TheschwartzPlay With Theschwartz
Play With TheschwartzHideo Kimura
 
DSD-INT 2015 - Datacubes understanding big eo data better - Peter baumann
DSD-INT 2015 - Datacubes understanding big eo data better - Peter baumannDSD-INT 2015 - Datacubes understanding big eo data better - Peter baumann
DSD-INT 2015 - Datacubes understanding big eo data better - Peter baumannDeltares
 
Rewriting the Drupal Theme layer
Rewriting the Drupal Theme layerRewriting the Drupal Theme layer
Rewriting the Drupal Theme layerc4rl
 
Scala in hulu's data platform
Scala in hulu's data platformScala in hulu's data platform
Scala in hulu's data platformPrasan Samtani
 
All Things Open 2016 -- Database Programming for Newbies
All Things Open 2016 -- Database Programming for NewbiesAll Things Open 2016 -- Database Programming for Newbies
All Things Open 2016 -- Database Programming for NewbiesDave Stokes
 
Webinar: The Anatomy of the Cloudant Data Layer
Webinar: The Anatomy of the Cloudant Data LayerWebinar: The Anatomy of the Cloudant Data Layer
Webinar: The Anatomy of the Cloudant Data LayerIBM Cloud Data Services
 
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...NETWAYS
 
Web it support and consulting - link many files in ms access
Web it support and consulting - link many files in ms accessWeb it support and consulting - link many files in ms access
Web it support and consulting - link many files in ms accessDirk Cludts
 
5 docker data_etl and visualization_hands_on
5 docker data_etl and visualization_hands_on5 docker data_etl and visualization_hands_on
5 docker data_etl and visualization_hands_onFEG
 
Reactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and RxReactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and RxSumant Tambe
 
テスト用のプレゼンテーション
テスト用のプレゼンテーションテスト用のプレゼンテーション
テスト用のプレゼンテーションgooseboi
 
Blunt Umbrellas Website Showcase
Blunt Umbrellas Website ShowcaseBlunt Umbrellas Website Showcase
Blunt Umbrellas Website ShowcaseGareth Hall
 
MongoDB and PHP ZendCon 2011
MongoDB and PHP ZendCon 2011MongoDB and PHP ZendCon 2011
MongoDB and PHP ZendCon 2011Steven Francia
 
Trivadis TechEvent 2016 Polybase challenges Hive relational access to non-rel...
Trivadis TechEvent 2016 Polybase challenges Hive relational access to non-rel...Trivadis TechEvent 2016 Polybase challenges Hive relational access to non-rel...
Trivadis TechEvent 2016 Polybase challenges Hive relational access to non-rel...Trivadis
 
Robert Sander: CloudStack and Terraform
Robert Sander: CloudStack and TerraformRobert Sander: CloudStack and Terraform
Robert Sander: CloudStack and TerraformShapeBlue
 
MongoDB, PHP and the cloud - php cloud summit 2011
MongoDB, PHP and the cloud - php cloud summit 2011MongoDB, PHP and the cloud - php cloud summit 2011
MongoDB, PHP and the cloud - php cloud summit 2011Steven Francia
 

Similaire à 8 Things about Temporal Graph Databases (17)

Play With Theschwartz
Play With TheschwartzPlay With Theschwartz
Play With Theschwartz
 
DSD-INT 2015 - Datacubes understanding big eo data better - Peter baumann
DSD-INT 2015 - Datacubes understanding big eo data better - Peter baumannDSD-INT 2015 - Datacubes understanding big eo data better - Peter baumann
DSD-INT 2015 - Datacubes understanding big eo data better - Peter baumann
 
Rewriting the Drupal Theme layer
Rewriting the Drupal Theme layerRewriting the Drupal Theme layer
Rewriting the Drupal Theme layer
 
Scala in hulu's data platform
Scala in hulu's data platformScala in hulu's data platform
Scala in hulu's data platform
 
All Things Open 2016 -- Database Programming for Newbies
All Things Open 2016 -- Database Programming for NewbiesAll Things Open 2016 -- Database Programming for Newbies
All Things Open 2016 -- Database Programming for Newbies
 
Webinar: The Anatomy of the Cloudant Data Layer
Webinar: The Anatomy of the Cloudant Data LayerWebinar: The Anatomy of the Cloudant Data Layer
Webinar: The Anatomy of the Cloudant Data Layer
 
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
 
Web it support and consulting - link many files in ms access
Web it support and consulting - link many files in ms accessWeb it support and consulting - link many files in ms access
Web it support and consulting - link many files in ms access
 
5 docker data_etl and visualization_hands_on
5 docker data_etl and visualization_hands_on5 docker data_etl and visualization_hands_on
5 docker data_etl and visualization_hands_on
 
SQLBits XI - ETL with Hadoop
SQLBits XI - ETL with HadoopSQLBits XI - ETL with Hadoop
SQLBits XI - ETL with Hadoop
 
Reactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and RxReactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and Rx
 
テスト用のプレゼンテーション
テスト用のプレゼンテーションテスト用のプレゼンテーション
テスト用のプレゼンテーション
 
Blunt Umbrellas Website Showcase
Blunt Umbrellas Website ShowcaseBlunt Umbrellas Website Showcase
Blunt Umbrellas Website Showcase
 
MongoDB and PHP ZendCon 2011
MongoDB and PHP ZendCon 2011MongoDB and PHP ZendCon 2011
MongoDB and PHP ZendCon 2011
 
Trivadis TechEvent 2016 Polybase challenges Hive relational access to non-rel...
Trivadis TechEvent 2016 Polybase challenges Hive relational access to non-rel...Trivadis TechEvent 2016 Polybase challenges Hive relational access to non-rel...
Trivadis TechEvent 2016 Polybase challenges Hive relational access to non-rel...
 
Robert Sander: CloudStack and Terraform
Robert Sander: CloudStack and TerraformRobert Sander: CloudStack and Terraform
Robert Sander: CloudStack and Terraform
 
MongoDB, PHP and the cloud - php cloud summit 2011
MongoDB, PHP and the cloud - php cloud summit 2011MongoDB, PHP and the cloud - php cloud summit 2011
MongoDB, PHP and the cloud - php cloud summit 2011
 

Plus de datablend

MongoDB Analytics
MongoDB AnalyticsMongoDB Analytics
MongoDB Analyticsdatablend
 
Coalition cocktail - hack the elections
Coalition cocktail - hack the electionsCoalition cocktail - hack the elections
Coalition cocktail - hack the electionsdatablend
 
The Power of Graphs to Analyze Biological Data
The Power of Graphs to Analyze Biological DataThe Power of Graphs to Analyze Biological Data
The Power of Graphs to Analyze Biological Datadatablend
 
Introduction to Graph Databases @ SAI
Introduction to Graph Databases @ SAIIntroduction to Graph Databases @ SAI
Introduction to Graph Databases @ SAIdatablend
 
FluxGraph @ GraphDevRoom
FluxGraph @ GraphDevRoomFluxGraph @ GraphDevRoom
FluxGraph @ GraphDevRoomdatablend
 
The power of graphs to analyze biological data
The power of graphs to analyze biological dataThe power of graphs to analyze biological data
The power of graphs to analyze biological datadatablend
 
FluxGraph: a time-machine for your graphs
FluxGraph: a time-machine for your graphsFluxGraph: a time-machine for your graphs
FluxGraph: a time-machine for your graphsdatablend
 

Plus de datablend (7)

MongoDB Analytics
MongoDB AnalyticsMongoDB Analytics
MongoDB Analytics
 
Coalition cocktail - hack the elections
Coalition cocktail - hack the electionsCoalition cocktail - hack the elections
Coalition cocktail - hack the elections
 
The Power of Graphs to Analyze Biological Data
The Power of Graphs to Analyze Biological DataThe Power of Graphs to Analyze Biological Data
The Power of Graphs to Analyze Biological Data
 
Introduction to Graph Databases @ SAI
Introduction to Graph Databases @ SAIIntroduction to Graph Databases @ SAI
Introduction to Graph Databases @ SAI
 
FluxGraph @ GraphDevRoom
FluxGraph @ GraphDevRoomFluxGraph @ GraphDevRoom
FluxGraph @ GraphDevRoom
 
The power of graphs to analyze biological data
The power of graphs to analyze biological dataThe power of graphs to analyze biological data
The power of graphs to analyze biological data
 
FluxGraph: a time-machine for your graphs
FluxGraph: a time-machine for your graphsFluxGraph: a time-machine for your graphs
FluxGraph: a time-machine for your graphs
 

Dernier

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Dernier (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

8 Things about Temporal Graph Databases

  • 1. Tuesday BIGDATA.BE 28.08
  • 2. 8 Things I like about Datomic + something about temporal graph databases www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 3. About me Who am I ... ➡ Working as an it lead / software architect @ Janssen Diagnostics • Dealing with big scientific data sets • Hands-on expertise in Big Data and NoSQL technologies ➡ Founder of datablend • Provide Big Data and NoSQL consultancy Davy Suvee • Share practical knowledge and Big Data use cases via blog @DSUVEE www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 4. 1 - Data Immutability entity attribute value Datom [ 10 ‘:name’ ‘datablend’ ] www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 5. 1 - Data Immutability entity attribute value Datom [ 10 ‘:name’ ‘datablend’ ] ‘dataother’ www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 6. 1 - Data Immutability entity attribute value Datom [ 10 ‘:name’ ‘datablend‘ tx1 ] [ 10 ‘:name’ ‘DATAOTHER‘ tx2 ] defines time www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 7. 2 - Schema-Less kind of ... Util.map(":db/id", Peer.tempid(":db.part/db"),          ":db/ident", ":name",          ":db/valueType", ":db.type/string",          ":db/cardinality", ":db.cardinality/one",          ":db/doc", "The name of an entity",          ":db.install/_attribute", ":db.part/db")); attribute definition www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 8. 3 - Everything is a Datom [ 10 ‘:name’ ‘datablend‘ ] [ 10 ‘:tel’ ‘01234566789‘ ] [ 99 ‘:db/ident’ ‘:name’ ] [ 99 ‘:db/valueType’ ‘:db.type/string’ ] [ 11 ‘:name’ ‘Davy Suvee‘ ] [ 99 ‘:db/cardinality’ ‘:db.cardinality/one’ ] [ 11 ‘:knows’ ‘java‘ ] [ 99 ‘:db/doc’ ‘The name of an entity’ ] [ 11 ‘:knows’ ‘NoSQL‘ ] [ 99 ‘:db.install/_attribute’ ‘:db.part/db’ ] [ 11 ‘:founded’ 10 ] www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 9. 3 - Everything Is A Datom transaction [ 10 ‘:name’ ‘datablend‘ 251] www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 10. 3 - Everything Is A Datom transaction [ 10 ‘:name’ ‘datablend‘ 251] [ 251 ‘:db/txInstant’ ‘35454920495’ ] timestamp www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 11. 3 - Everything Is A Datom transaction [ 10 ‘:name’ ‘datablend‘ 251] [ 251 ‘:db/txInstant’ ‘35454920495’ ] timestamp [ 251 ‘:source’ ‘:external’ ] meta-data [ 251 ‘:url’ ‘bigdata.be’ ] www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 12. 4 - Datalog logic programming for your datoms [ 10 ‘:name’ ‘datablend‘ ] [ 10 ‘:tel’ ‘01234566789‘ ] [:find ?entity ?name [ 11 ‘:name’ ‘Davy Suvee‘ ] :where [?entity :name ?name]] [ 11 ‘:knows’ ‘java‘ ] [ 11 ‘:knows’ ‘NoSQL‘ ] (10 ‘datablend‘) [ 11 ‘:founded’ 10 ] (11 ‘Davy Suvee‘) www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 13. 4 - Datalog logic programming for your datoms [ 10 ‘:name’ ‘datablend‘ ] [ 10 ‘:tel’ ‘01234566789‘ ] [:find ?name [ 11 ‘:name’ ‘Davy Suvee‘ ] :where [?person :name ?name] [?person :knows ‘java’]] [ 11 ‘:knows’ ‘java‘ ] [ 11 ‘:knows’ ‘NoSQL‘ ] [ 11 ‘:founded’ 10 ] (‘Davy Suvee‘) www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 14. 4 - Datalog logic programming for your datoms [ 10 ‘:name’ ‘datablend‘ ] [ 10 ‘:tel’ ‘01234566789‘ ] [:find ?name :where [?com :name ?name] [ 11 ‘:name’ ‘Davy Suvee‘ ] [?person :knows ‘java’] [ 11 ‘:knows’ ‘java‘ ] [?person :founded ?com]] [ 11 ‘:knows’ ‘NoSQL‘ ] [ 11 ‘:founded’ 10 ] (‘datablend‘) www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 15. 4 - Datalog ... and as everything is a datom ... [:find ?attribute :where [?attribute :db/valueType :db.type/string]] www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 16. 4 - Datalog ... and as everything is a datom ... [:find ?attribute :where [?attribute :db/valueType :db.type/string]] [:find ?entity ?url :where [?entity :name “datablend” ?tx] [?tx :source :external] [?tx :url ?url]] www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 17. 5 - Power your queries [:find ?tech :where [_ :knows ?tech] any valid Java expression [(.startsWith ?tech “J”)]] www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 18. 5 - Power your queries [:find ?tech :where [_ :knows ?tech] any valid Java expression [(.startsWith ?tech “J”)]] [[(ancestor ?person ?ancestor) [?person :person/parent ?ancestor]] [(ancestor ?person ?ancestor) [?person :person/parent ?parent]                                (ancestor ?parent ?ancestor)]]] recursive rules www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 19. 6 - Travel through time [ 10 ‘:name’ ‘datablend‘ tx 1 ] [ 10 ‘:name’ ‘DATAOTHER‘ tx2 ] String query = “[:find ?name :where [10 :name ?name]]”; Peer.q(query, conn.db()); (‘dataother’) www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 20. 6 - Travel through time [ 10 ‘:name’ ‘datablend‘ tx 1 ] [ 10 ‘:name’ ‘DATAOTHER‘ tx2 ] String query = “[:find ?name :where [10 :name ?name]]”; Peer.q(query, conn.db()); (‘dataother’) Peer.q(query, conn.db().asOf(tx1)); (‘datablend’) www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 21. 6 - Travel through time [ 10 ‘:name’ ‘datablend‘ tx 1 ] [ 10 ‘:name’ ‘DATAOTHER‘ tx2 ] String query = “[:find ?name :where [10 :name ?name]]”; Peer.q(query, conn.db()); (‘dataother’) Peer.q(query, conn.db().asOf(tx1)); (‘datablend’) Peer.q(query, conn.db().with(futuretx)); (‘datamix’) [ 10 ‘:name’ ‘datamix‘ ] www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 22. 7 - Scalability reversed www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 23. 8 - Pluggable data stores ➡ In memory (dev mode) ➡ SQL Database ➡ DYNAMO DB ➡ INFINISPAN ➡ Switch transparently and migration tools available www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 24. FluxGraph: Tinkerpop on top of Datomic (http://github.com/datablend/blueprints) www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 25. FluxGraph ➡ Blueprints implementation on top of Datomic www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 26. FluxGraph ➡ Blueprints implementation on top of Datomic ➡ Graph Time Travel public void setTime(Date checkpoint); www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 27. FluxGraph ➡ Blueprints implementation on top of Datomic ➡ Graph Time Travel public void setTime(Date checkpoint); ➡ Time-scoped iteration of vertices and edges public Vertex getPreviousVersion(); public Iterable<Edge> getNextVersions(); public Iterable<Edge> getNextVersions(Filter filter); www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 28. Time-aware social graph www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 29. GraphConnect “The use of Temporal Graph Databases to ease the analysis of longitudinal patient data” www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg
  • 31. Contact us Follow us E-MAIL twitter.com/data_blend info@datablend.be www.datablend.be www.datablend.be info@datablend.be 0499/05.00.89 Diepestraat 23 - heist-op-den-berg