Presentation given at nosql east 2009 in Atlanta. Introduces the NOSQL space by offering a framework for categorization and discusses the benefits of graph databases. Oh, and also includes some tongue-in-cheek party poopers about sucky things in the NOSQL space.
Graphs for Finance - AML with Neo4j Graph Data Science Neo4j
This document discusses using graph data science and graph algorithms to detect fraud. It explains that graph data science uses relationships in data to power predictions. It provides examples of how graph algorithms like Louvain clustering, PageRank, connected components, and Jaccard similarity can be used to identify communities that frequently interact, measure influence, identify accounts sharing identifiers, and measure account similarity to detect fraud in applications like banking and financial services. The document also discusses using graph embeddings and feature engineering with graph networks to improve machine learning models for fraud detection by basing predictions on influential entities and their relationships.
How Graph Data Science can turbocharge your Knowledge GraphNeo4j
Knowledge Graphs are becoming mission-critical across many industries. More recently, we are witnessing the application of Graph Data Science to Knowledge Graphs, offering powerful outcomes. But how do we define Knowledge Graphs in industry and how can they be useful for your project? In this talk, we will illustrate the various methods and models of Graph Data Science being applied to Knowledge Graphs and how they allow you to find implicit relationships in your graph which are impossible to detect in any other way. You will learn how graph algorithms from PageRank to Embeddings drive ever deeper insights in your data.
Ready to leverage the power of a graph database to bring your application to the next level, but all the data is still stuck in a legacy relational database?
Fortunately, Neo4j offers several ways to quickly and efficiently import relational data into a suitable graph model. It's as simple as exporting the subset of the data you want to import and ingest it either with an initial loader in seconds or minutes or apply Cypher's power to put your relational data transactionally in the right places of your graph model.
In this webinar, Michael will also demonstrate a simple tool that can load relational data directly into Neo4j, automatically transforming it into a graph representation of your normalized entity-relationship model.
This document summarizes a presentation about the graph database Neo4j. The presentation included an agenda that covered graphs and their power, how graphs change data views, and real-time recommendations with graphs. It introduced the presenters and discussed how data relationships unlock value. It described how Neo4j allows modeling data as a graph to unlock this value through relationship-based queries, evolution of applications, and high performance at scale. Examples showed how Neo4j outperforms relational and NoSQL databases when relationships are important. The presentation concluded with examples of how Neo4j customers have benefited.
This document discusses how graphs and Neo4j can be used for various use cases in banking. It provides an agenda for the discussion including introductions to graphs and Neo4j, banking data overviews, and specific use cases like fraud detection, risk analysis, knowledge graphs, and customer 360 views. Examples are given for how graph databases could help with each use case, with a fraud detection demo. Additional potential uses include identity and access management and regulatory compliance.
EY: Why graph technology makes sense for fraud detection and customer 360 pro...Neo4j
This document discusses why graph technology is ideal for customer 360 and fraud detection projects in the insurance industry. It provides an overview of graph use cases in banking, insurance, and capital markets including for customer 360, fraud detection, and knowledge graphs. It then discusses challenges insurers face with siloed data and lack of a unified customer view. Implementing a customer graph allows linking diverse data sources to create a complete view of customers and their relationships to enable context-based decision making and analytics.
Graphs for Finance - AML with Neo4j Graph Data Science Neo4j
This document discusses using graph data science and graph algorithms to detect fraud. It explains that graph data science uses relationships in data to power predictions. It provides examples of how graph algorithms like Louvain clustering, PageRank, connected components, and Jaccard similarity can be used to identify communities that frequently interact, measure influence, identify accounts sharing identifiers, and measure account similarity to detect fraud in applications like banking and financial services. The document also discusses using graph embeddings and feature engineering with graph networks to improve machine learning models for fraud detection by basing predictions on influential entities and their relationships.
How Graph Data Science can turbocharge your Knowledge GraphNeo4j
Knowledge Graphs are becoming mission-critical across many industries. More recently, we are witnessing the application of Graph Data Science to Knowledge Graphs, offering powerful outcomes. But how do we define Knowledge Graphs in industry and how can they be useful for your project? In this talk, we will illustrate the various methods and models of Graph Data Science being applied to Knowledge Graphs and how they allow you to find implicit relationships in your graph which are impossible to detect in any other way. You will learn how graph algorithms from PageRank to Embeddings drive ever deeper insights in your data.
Ready to leverage the power of a graph database to bring your application to the next level, but all the data is still stuck in a legacy relational database?
Fortunately, Neo4j offers several ways to quickly and efficiently import relational data into a suitable graph model. It's as simple as exporting the subset of the data you want to import and ingest it either with an initial loader in seconds or minutes or apply Cypher's power to put your relational data transactionally in the right places of your graph model.
In this webinar, Michael will also demonstrate a simple tool that can load relational data directly into Neo4j, automatically transforming it into a graph representation of your normalized entity-relationship model.
This document summarizes a presentation about the graph database Neo4j. The presentation included an agenda that covered graphs and their power, how graphs change data views, and real-time recommendations with graphs. It introduced the presenters and discussed how data relationships unlock value. It described how Neo4j allows modeling data as a graph to unlock this value through relationship-based queries, evolution of applications, and high performance at scale. Examples showed how Neo4j outperforms relational and NoSQL databases when relationships are important. The presentation concluded with examples of how Neo4j customers have benefited.
This document discusses how graphs and Neo4j can be used for various use cases in banking. It provides an agenda for the discussion including introductions to graphs and Neo4j, banking data overviews, and specific use cases like fraud detection, risk analysis, knowledge graphs, and customer 360 views. Examples are given for how graph databases could help with each use case, with a fraud detection demo. Additional potential uses include identity and access management and regulatory compliance.
EY: Why graph technology makes sense for fraud detection and customer 360 pro...Neo4j
This document discusses why graph technology is ideal for customer 360 and fraud detection projects in the insurance industry. It provides an overview of graph use cases in banking, insurance, and capital markets including for customer 360, fraud detection, and knowledge graphs. It then discusses challenges insurers face with siloed data and lack of a unified customer view. Implementing a customer graph allows linking diverse data sources to create a complete view of customers and their relationships to enable context-based decision making and analytics.
The document outlines an agenda for a workshop on building a graph solution using a digital twin data set. It includes sections on logistics, introductions, explaining the use case of a digital twin for a rail network, modeling the graph database solution, building the solution, and a question and answer period. Key aspects covered include an overview of Neo4j's graph database capabilities, modeling the domain entities and relationships, and exploring sample data related to operational points, sections, and points of interest for a rail network digital twin use case.
The Data Platform for Today’s Intelligent ApplicationsNeo4j
The document discusses how graph technology and Neo4j's graph data platform are fueling data-driven transformations across industries by unlocking deeper insights from relationships within data. It notes that 75% of Fortune 1000 companies had suppliers impacted by the pandemic showing supply chain problems are really data problems. It then promotes Neo4j as the leader in the growing graph database market and discusses its capabilities and customers across industries like insurance, banking, automotive, retail, and telecommunications.
Relational databases were conceived to digitize paper forms and automate well-structured business processes, and still have their uses. But RDBMS cannot model or store data and its relationships without complexity, which means performance degrades with the increasing number and levels of data relationships and data size. Additionally, new types of data and data relationships require schema redesign that increases time to market.
A native graph database like Neo4j naturally stores, manages, analyzes, and uses data within the context of connections meaning Neo4j provides faster query performance and vastly improved flexibility in handling complex hierarchies than SQL.
Graph databases are a type of NoSQL database that is optimized for storing and querying connected data and relationships. A graph database represents data in graphs consisting of nodes and edges, where the nodes represent entities and the edges represent relationships between the entities. Graph databases are well-suited for applications that involve complex relationships and connected data, such as social networks, knowledge graphs, and recommendation systems. They allow for flexible querying of relationships and connections via graph traversal operations.
Neo4j GraphTalk Helsinki - Introduction and Graph Use CasesNeo4j
This document provides an introduction to graphs and Neo4j. It discusses that Neo4j is a native graph database that allows organizations to leverage connections in data in real-time to create value. It then provides information on Neo4j as a company and as a product, including that it is the world's leading graph database. The document goes on to define what graphs are from a data structure perspective and provides examples of famous graphs like social networks. It discusses why graph databases are useful compared to relational databases for representing complex, connected data and provides examples of use cases for Neo4j like recommendations, fraud detection, and network analysis.
EY + Neo4j: Why graph technology makes sense for fraud detection and customer...Neo4j
This document discusses how graph technology can help with fraud detection and customer 360 projects in the insurance industry. It notes that insurers today struggle with identity resolution, siloed data, and reactive policies. This leads to an inability to get a full customer view or recommend next best actions. Graph databases provide a unified customer view by linking different data sources and modeling relationships. This enables capabilities like predictive analytics, personalization, and improved fraud identification. The document outlines how to build a customer golden profile with a graph database and provides examples of insights that can be gained. It also discusses proving the value of the graph approach and making graphs a long-term, sustainable solution.
Knowledge Graphs - The Power of Graph-Based SearchNeo4j
1) Knowledge graphs are graphs that are enriched with data over time, resulting in graphs that capture more detail and context about real world entities and their relationships. This allows the information in the graph to be meaningfully searched.
2) In Neo4j, knowledge graphs are built by connecting diverse data across an enterprise using nodes, relationships, and properties. Tools like natural language processing and graph algorithms further enrich the data.
3) Cypher is Neo4j's graph query language that allows users to search for graph patterns and return relevant data and paths. This reveals why certain information was returned based on the context and structure of the knowledge graph.
In their webinar "Big Data Fabric 2.0 Drives Data Democratization" Ben Szekley, Cambridge Semantics’ SVP of Field Operations, and guest speaker, Forrester’s Noel Yuhanna, author of the Forrester report: “Big Data Fabric 2.0 Drives Data Democratization”, explored why data-driven businesses are making a big data fabric part of their data strategy to minimize data complexity, integrate siloed data, deliver real-time trusted insights, and to create new business opportunities. These are the slides from that webinar.
The document discusses knowledge graphs and their value for organizations. It notes that two-thirds of Neo4j customers have implemented knowledge graphs and that 88% of CXOs believe knowledge graphs will significantly improve business outcomes. Knowledge graphs are described as interconnected datasets enriched with meaning to enable complex decision-making. Examples of how knowledge graphs have helped companies with recommendations, fraud detection, and track and trace are provided.
Easily Identify Sources of Supply Chain GridlockNeo4j
Join us for this 20-minute webinar to hear from Nick Johnson, Product Marketing Manager for Graph Data Science, as he explains the fundamentals of Neo4j Graph Data Science and its applications in optimizing supply chain management. Discover how leveraging graph analytics can help you identify bottlenecks, reduce costs, and streamline your supply chain operations more efficiently.
Neo4j in Production: A look at Neo4j in the Real WorldNeo4j
This document summarizes a presentation about graph databases and Neo4j. It includes case studies of companies like Walmart and Adidas using Neo4j for real-time recommendations. It also discusses how graph databases are better suited than relational databases for recommendation systems because they can easily model relationships between users, products, and transactions. A demo is shown of using Cypher queries to build a recommendation engine in Neo4j by loading product, customer, and order data. The document concludes by providing resources for moving forward with Neo4j.
This document discusses using graph databases and graph modeling for supply chain management. It begins by explaining how supply chains are naturally connected networks that can be represented as graphs. It then outlines four key steps for innovating with connected data: data capture, data modeling and storage, processing and analytics, and applications and insights. Several examples are provided of how graph queries, algorithms and analytics could be applied to problems in supply chain management. The document promotes modeling the entities and relationships in a supply chain as a graph to allow for more sophisticated analysis that accounts for network effects and connections between entities. It positions graph databases as enabling more effective supply chain optimization and risk mitigation in the global economy.
Graph databases are well suited for complex, interconnected data. Neo4j is a graph database that represents data as nodes connected by relationships. It allows for complex queries and traversals of graph structures. Unlike relational databases, graph databases can directly model real world networks and relationships without needing to flatten the data.
The document provides an outline for a presentation on graph-based data models. It introduces some key concepts about graphs and how they are used to model real-world interconnected data. It discusses how early adopters of graph technologies grew by focusing on data relationships. The document also covers graph data structures, graph databases, and graph query languages like Cypher and Gremlin.
How Graph Algorithms Answer your Business Questions in Banking and BeyondNeo4j
This document provides an agenda and overview for a presentation on using graph algorithms in banking. The presentation introduces graphs and the Neo4j graph database, demonstrates sample banking data modeled as a graph, and reviews several graph algorithms that could be used for applications like fraud detection, including PageRank, weakly connected components, node similarity, and Louvain modularity. The document concludes with a demo and Q&A section.
Graph databases use graph structures to represent and store data, with nodes connected by edges. They are well-suited for interconnected data. Unlike relational databases, graph databases allow for flexible schemas and querying of relationships. Common uses of graph databases include social networks, knowledge graphs, and recommender systems.
This document discusses data mesh, a distributed data management approach for microservices. It outlines the challenges of implementing microservice architecture including data decoupling, sharing data across domains, and data consistency. It then introduces data mesh as a solution, describing how to build the necessary infrastructure using technologies like Kubernetes and YAML to quickly deploy data pipelines and provision data across services and applications in a distributed manner. The document provides examples of how data mesh can be used to improve legacy system integration, batch processing efficiency, multi-source data aggregation, and cross-cloud/environment integration.
Smarter Fraud Detection With Graph Data ScienceNeo4j
Join us for this 20-minute webinar to hear from Nick Johnson, Product Marketing Manager for Graph Data Science, to learn the basics of Neo4j Graph Data Science and how it can help you to identify fraudulent activities faster.
This document provides an overview of a Neo4j basic training session. The training will cover querying graph patterns with Cypher, designing and implementing a graph database model, and evolving existing graphs to support new requirements. Attendees will learn about graph modeling concepts like nodes, relationships, properties and labels. They will go through a modeling workflow example of developing a graph model to represent airport connectivity data from a CSV file and querying the resulting graph.
This document contains snippets from a Neo Technology conference presentation on graphs and graph databases. It discusses how graphs can be used to model real-world domains like social networks, telecommunications networks, financial networks, healthcare networks, and more. It also provides examples of how specific companies like Accenture are using graph databases and outlines Neo Technology's roadmap for improving the user experience of its graph database platform.
Max De Marzi gave an introduction to graph databases using Neo4j as an example. He discussed trends in big, connected data and how NoSQL databases like key-value stores, column families, and document databases address these trends. However, graph databases are optimized for interconnected data by modeling it as nodes and relationships. Neo4j is a graph database that uses a property graph data model and allows querying and traversal through its Cypher query language and Gremlin scripting language. It is well-suited for domains involving highly connected data like social networks.
The document outlines an agenda for a workshop on building a graph solution using a digital twin data set. It includes sections on logistics, introductions, explaining the use case of a digital twin for a rail network, modeling the graph database solution, building the solution, and a question and answer period. Key aspects covered include an overview of Neo4j's graph database capabilities, modeling the domain entities and relationships, and exploring sample data related to operational points, sections, and points of interest for a rail network digital twin use case.
The Data Platform for Today’s Intelligent ApplicationsNeo4j
The document discusses how graph technology and Neo4j's graph data platform are fueling data-driven transformations across industries by unlocking deeper insights from relationships within data. It notes that 75% of Fortune 1000 companies had suppliers impacted by the pandemic showing supply chain problems are really data problems. It then promotes Neo4j as the leader in the growing graph database market and discusses its capabilities and customers across industries like insurance, banking, automotive, retail, and telecommunications.
Relational databases were conceived to digitize paper forms and automate well-structured business processes, and still have their uses. But RDBMS cannot model or store data and its relationships without complexity, which means performance degrades with the increasing number and levels of data relationships and data size. Additionally, new types of data and data relationships require schema redesign that increases time to market.
A native graph database like Neo4j naturally stores, manages, analyzes, and uses data within the context of connections meaning Neo4j provides faster query performance and vastly improved flexibility in handling complex hierarchies than SQL.
Graph databases are a type of NoSQL database that is optimized for storing and querying connected data and relationships. A graph database represents data in graphs consisting of nodes and edges, where the nodes represent entities and the edges represent relationships between the entities. Graph databases are well-suited for applications that involve complex relationships and connected data, such as social networks, knowledge graphs, and recommendation systems. They allow for flexible querying of relationships and connections via graph traversal operations.
Neo4j GraphTalk Helsinki - Introduction and Graph Use CasesNeo4j
This document provides an introduction to graphs and Neo4j. It discusses that Neo4j is a native graph database that allows organizations to leverage connections in data in real-time to create value. It then provides information on Neo4j as a company and as a product, including that it is the world's leading graph database. The document goes on to define what graphs are from a data structure perspective and provides examples of famous graphs like social networks. It discusses why graph databases are useful compared to relational databases for representing complex, connected data and provides examples of use cases for Neo4j like recommendations, fraud detection, and network analysis.
EY + Neo4j: Why graph technology makes sense for fraud detection and customer...Neo4j
This document discusses how graph technology can help with fraud detection and customer 360 projects in the insurance industry. It notes that insurers today struggle with identity resolution, siloed data, and reactive policies. This leads to an inability to get a full customer view or recommend next best actions. Graph databases provide a unified customer view by linking different data sources and modeling relationships. This enables capabilities like predictive analytics, personalization, and improved fraud identification. The document outlines how to build a customer golden profile with a graph database and provides examples of insights that can be gained. It also discusses proving the value of the graph approach and making graphs a long-term, sustainable solution.
Knowledge Graphs - The Power of Graph-Based SearchNeo4j
1) Knowledge graphs are graphs that are enriched with data over time, resulting in graphs that capture more detail and context about real world entities and their relationships. This allows the information in the graph to be meaningfully searched.
2) In Neo4j, knowledge graphs are built by connecting diverse data across an enterprise using nodes, relationships, and properties. Tools like natural language processing and graph algorithms further enrich the data.
3) Cypher is Neo4j's graph query language that allows users to search for graph patterns and return relevant data and paths. This reveals why certain information was returned based on the context and structure of the knowledge graph.
In their webinar "Big Data Fabric 2.0 Drives Data Democratization" Ben Szekley, Cambridge Semantics’ SVP of Field Operations, and guest speaker, Forrester’s Noel Yuhanna, author of the Forrester report: “Big Data Fabric 2.0 Drives Data Democratization”, explored why data-driven businesses are making a big data fabric part of their data strategy to minimize data complexity, integrate siloed data, deliver real-time trusted insights, and to create new business opportunities. These are the slides from that webinar.
The document discusses knowledge graphs and their value for organizations. It notes that two-thirds of Neo4j customers have implemented knowledge graphs and that 88% of CXOs believe knowledge graphs will significantly improve business outcomes. Knowledge graphs are described as interconnected datasets enriched with meaning to enable complex decision-making. Examples of how knowledge graphs have helped companies with recommendations, fraud detection, and track and trace are provided.
Easily Identify Sources of Supply Chain GridlockNeo4j
Join us for this 20-minute webinar to hear from Nick Johnson, Product Marketing Manager for Graph Data Science, as he explains the fundamentals of Neo4j Graph Data Science and its applications in optimizing supply chain management. Discover how leveraging graph analytics can help you identify bottlenecks, reduce costs, and streamline your supply chain operations more efficiently.
Neo4j in Production: A look at Neo4j in the Real WorldNeo4j
This document summarizes a presentation about graph databases and Neo4j. It includes case studies of companies like Walmart and Adidas using Neo4j for real-time recommendations. It also discusses how graph databases are better suited than relational databases for recommendation systems because they can easily model relationships between users, products, and transactions. A demo is shown of using Cypher queries to build a recommendation engine in Neo4j by loading product, customer, and order data. The document concludes by providing resources for moving forward with Neo4j.
This document discusses using graph databases and graph modeling for supply chain management. It begins by explaining how supply chains are naturally connected networks that can be represented as graphs. It then outlines four key steps for innovating with connected data: data capture, data modeling and storage, processing and analytics, and applications and insights. Several examples are provided of how graph queries, algorithms and analytics could be applied to problems in supply chain management. The document promotes modeling the entities and relationships in a supply chain as a graph to allow for more sophisticated analysis that accounts for network effects and connections between entities. It positions graph databases as enabling more effective supply chain optimization and risk mitigation in the global economy.
Graph databases are well suited for complex, interconnected data. Neo4j is a graph database that represents data as nodes connected by relationships. It allows for complex queries and traversals of graph structures. Unlike relational databases, graph databases can directly model real world networks and relationships without needing to flatten the data.
The document provides an outline for a presentation on graph-based data models. It introduces some key concepts about graphs and how they are used to model real-world interconnected data. It discusses how early adopters of graph technologies grew by focusing on data relationships. The document also covers graph data structures, graph databases, and graph query languages like Cypher and Gremlin.
How Graph Algorithms Answer your Business Questions in Banking and BeyondNeo4j
This document provides an agenda and overview for a presentation on using graph algorithms in banking. The presentation introduces graphs and the Neo4j graph database, demonstrates sample banking data modeled as a graph, and reviews several graph algorithms that could be used for applications like fraud detection, including PageRank, weakly connected components, node similarity, and Louvain modularity. The document concludes with a demo and Q&A section.
Graph databases use graph structures to represent and store data, with nodes connected by edges. They are well-suited for interconnected data. Unlike relational databases, graph databases allow for flexible schemas and querying of relationships. Common uses of graph databases include social networks, knowledge graphs, and recommender systems.
This document discusses data mesh, a distributed data management approach for microservices. It outlines the challenges of implementing microservice architecture including data decoupling, sharing data across domains, and data consistency. It then introduces data mesh as a solution, describing how to build the necessary infrastructure using technologies like Kubernetes and YAML to quickly deploy data pipelines and provision data across services and applications in a distributed manner. The document provides examples of how data mesh can be used to improve legacy system integration, batch processing efficiency, multi-source data aggregation, and cross-cloud/environment integration.
Smarter Fraud Detection With Graph Data ScienceNeo4j
Join us for this 20-minute webinar to hear from Nick Johnson, Product Marketing Manager for Graph Data Science, to learn the basics of Neo4j Graph Data Science and how it can help you to identify fraudulent activities faster.
This document provides an overview of a Neo4j basic training session. The training will cover querying graph patterns with Cypher, designing and implementing a graph database model, and evolving existing graphs to support new requirements. Attendees will learn about graph modeling concepts like nodes, relationships, properties and labels. They will go through a modeling workflow example of developing a graph model to represent airport connectivity data from a CSV file and querying the resulting graph.
This document contains snippets from a Neo Technology conference presentation on graphs and graph databases. It discusses how graphs can be used to model real-world domains like social networks, telecommunications networks, financial networks, healthcare networks, and more. It also provides examples of how specific companies like Accenture are using graph databases and outlines Neo Technology's roadmap for improving the user experience of its graph database platform.
Max De Marzi gave an introduction to graph databases using Neo4j as an example. He discussed trends in big, connected data and how NoSQL databases like key-value stores, column families, and document databases address these trends. However, graph databases are optimized for interconnected data by modeling it as nodes and relationships. Neo4j is a graph database that uses a property graph data model and allows querying and traversal through its Cypher query language and Gremlin scripting language. It is well-suited for domains involving highly connected data like social networks.
The document discusses NoSQL databases, graph databases, and the graph database Neo4j. It defines NoSQL as "Not Only SQL" and explains that graph databases use nodes and relationships to represent data in a way that is more natural for graph-based queries than relational databases. The document then provides examples of how to create nodes and relationships and traverse the graph in Neo4j. It highlights Neo4j's abilities to scale to billions of nodes and relationships and be robust for production environments.
Graph Search: The Power of Connected DataCodemotion
Today’s complex data is big, variably-structured and densely connected. In this session we’ll look at how size, structure and connectedness have converged to change the way we work with data. We’ll then go on to look at some of the new opportunities for creating end-user value that have emerged in a world of connected data, illustrated with graph search examples implemented using the Neo4j graph database.
OrientDB vs Neo4j - and an introduction to NoSQL databasesCurtis Mosters
NoSQL databases are a good alternative to common SQL technologies. Here you get an introduction and comparison of SQL vs NoSQL. Furthermore we have a look on Graph databases and especially OrientDB vs Neo4j.
The document compares NoSQL and SQL databases. It notes that NoSQL databases are non-relational and have dynamic schemas that can accommodate unstructured data, while SQL databases are relational and have strict, predefined schemas. NoSQL databases offer more flexibility in data structure, but SQL databases provide better support for transactions and data integrity. The document also discusses differences in queries, scaling, and consistency between the two database types.
Dbta Webinar Realize Value of Big Data with graph 011713InfiniteGraph
The document discusses using graph technologies to analyze big data. It describes how graph databases can more effectively store and query relationships in data compared to traditional and NoSQL solutions. Examples are given of how graph analytics can be used for social network analysis, logistics, cybersecurity, and more. The document outlines how data can be modeled as a graph and analyzed to discover patterns and threats. Visual analytics are said to help with understanding complex graph relationships.
Graph Databases - Where Do We Do the Modeling Part?DATAVERSITY
Graph processing and graph databases have been with us for a while. However, since their physical implementations are the same for every database in production (Node connected to node, or triplets), there's a perception that data modeling (and data modelers) have no role on projects where graph databases are used.
This month we'll talk about where graph databases are a best fit in a modern data architecture and where data models add value.
Graph databases are used to represent graph structures with nodes, edges and properties. Neo4j, an open-source graph database is reliable and fast for managing and querying highly connected data. Will explore how to install and configure, create nodes and relationships, query with the Cypher Query Language, importing data and using Neo4j in concert with SQL Server... Providing answers and insight with visual diagrams about connected data that you have in your SQL Server Databases!
This document summarizes a presentation about graph databases and the Gremlin graph traversal language. It begins with introductions to property graphs, graph databases, and TinkerPop's Gremlin language. It then demonstrates various Gremlin traversal techniques like adding and updating vertices and edges, traversing relationships, filtering, and computing metrics. Later sections discuss linking graph data to the Linked Data cloud and envisioning a "Global Graph" of metadata on the internet.
An Introduction to NOSQL, Graph Databases and Neo4jDebanjan Mahata
Neo4j is a graph database that stores data in nodes and relationships. It allows for efficient querying of connected data through graph traversals. Key aspects include nodes that can contain properties, relationships that connect nodes and also contain properties, and the ability to navigate the graph through traversals. Neo4j provides APIs for common graph operations like creating and removing nodes/relationships, running traversals, and managing transactions. It is well suited for domains that involve connected, semi-structured data like social networks.
This document summarizes Cerved Group's use of Neo4j and graph databases. Cerved processes large amounts of data on companies and individuals to provide credit risk management, marketing, and other services. Neo4j allows Cerved to more efficiently analyze relationships between entities, such as beneficial owners of companies. Cerved's Graph4You platform makes some of this graph data accessible to customers and data scientists to explore use cases. Cerved sees graph databases and extracting additional insights from relationships in data as important to its future.
This tutorial will provide you with a basic understanding of graph database technology and the ability to quickly begin development of a graph database application. You will have the capability to recognize graph-based problems and present the benefits of using graph technology for problem resolution.
The tutorial will give you an understanding of:
• Graph theory - origins and concepts
• Benefits of graph databases
• Different types of graph databases
• Typical graph database API
• Programming basics
• Use cases
Bring your laptops for a hands-on opportunity to practice some sample codes. A basic understanding of Java programming is a recommended prerequisite to understand this course. This session is led by the InfiniteGraph technical team and the demonstration code will be drawn from InfiniteGraph examples, however the broader educational presentation is product-neutral and not a commercial presentation of their products.
To participate in the hands-on portion of the graph tutorial users must have:
• Java programming experience
• Java Developer Kit (JDK)
• Current InfiniteGraph installed on laptop. (To download visit www.objectivity.com/infinitegraph)
• HelloGraph test – Upon installing IG, run HelloGraph to test the install. (HelloGraph can be found online at http://wiki.infinitegraph.com/2.1/w/index.php?title=Download_Sample_Code)
Leon Guzenda was one of the founding members of Objectivity in 1988 and one of the original architects of Objectivity/DB. He currently works with Objectivity's major customers to help them effectively develop and deploy complex applications and systems that use the industry's highest-performing, most reliable DBMS technology, Objectivity/DB. He also liaises with technology partners and industry groups to help ensure that Objectivity/DB remains at the forefront of database and distributed computing technology. Leon has more than 35 years experience in the software industry. At Automation Technology Products, he managed the development of the ODBMS for the Cimplex solid modeling and numerical control system. Before that, he was Principal Project Director for International Computers Ltd. in the United Kingdom, delivering major projects for NATO and leading multinationals. He was also design and development manager for ICL's 2900 IDMS product. He spent the first 7 years of his career working in defense and government systems. Leon has a B.S. degree in Electronic Engineering from the University of Wales.
Graph Database Management Systems provide an effective
and efficient solution to data storage in current scenarios
where data are more and more connected, graph models are
widely used, and systems need to scale to large data sets.
In this framework, the conversion of the persistent layer of
an application from a relational to a graph data store can
be convenient but it is usually an hard task for database
administrators. In this paper we propose a methodology
to convert a relational to a graph database by exploiting
the schema and the constraints of the source. The approach
supports the translation of conjunctive SQL queries over the
source into graph traversal operations over the target. We
provide experimental results that show the feasibility of our
solution and the efficiency of query answering over the target
database.
Intro to Graph Databases Using Tinkerpop, TitanDB, and GremlinCaleb Jones
A quick overview of the history, motivation, and uses of graph modeling and graph databases in various industries. Covers a brief introduction to graph databases with an emphasis on the Tinkerpop stack and Gremlin query language. These concepts are then solidified through a hands-on lab modeling a blog engine using Titan and Gremlin.
See more at http://allthingsgraphed.com.
PFE :: Application de gestion des dus d'enseignementNassim Bahri
Mon mémoire de PFE pour le projet Conception et développement d'une
application de gestion des dus d'enseignement pour l'Ecole Supérieure d'Economie Numérique Manouba. Le but de cette application est de centraliser les données de l'école d'une part (les parcours, les unités d'enseignement,...) et de faciliter l'affectation des charges horaire d'enseignement d'un autre part. Ce projet à été réalisé en adoptant Scrum comme étant une méthodologie de conception et de gestion de projet.
Relational databases were conceived to digitize paper forms and automate well-structured business processes, and still have their uses. But RDBMS cannot model or store data and its relationships without complexity, which means performance degrades with the increasing number and levels of data relationships and data size. Additionally, new types of data and data relationships require schema redesign that increases time to market.
A native graph database like Neo4j naturally stores, manages, analyzes, and uses data within the context of connections meaning Neo4j provides faster query performance and vastly improved flexibility in handling complex hierarchies than SQL.
This webinar explains why companies are shifting away from RDBMS towards graphs to unlock the business value in their data relationships.
The document discusses the rise of graph databases and their benefits over traditional SQL databases. It notes four trends driving growth in data size, connectivity, semi-structured data, and decoupled architectures that have led to the rise of NoSQL databases including key-value, column-oriented, document, and graph databases. It provides an overview of the graph database model, which represents data as nodes and relationships, and an example using the graph database Neo4j.
This document discusses trends driving the emergence of NoSQL databases and provides an overview of NoSQL. The key trends include: (1) rapidly increasing data set sizes, (2) greater connectivity of data, and (3) more semi-structured and decentralized content. These trends have challenged the performance and architecture of traditional relational databases. NoSQL databases emerged in response and come in four main categories: key-value stores, BigTable clones, document databases, and graph databases. Each has a different data model suited to different types of use cases. Looking ahead, the best approach may be "polyglot persistence" using both SQL and NoSQL solutions.
Spring Data Graph is an integration library for the open source graph database Neo4j and has been around for over a year, evolving from its infancy as brainchild of Rod Johnson and Emil Eifrem. It supports transparent AspectJ based POJO to Graph Mapping, a Neo4jTemplate API and extensive support for Spring Data Repositories. It can work with an embedded graph database or with the standalone Neo4j Server.
The session starts with a short introduction to graph databases. Following that, the different approaches using Spring Data Graph are explored in the Cineasts.net web-app, a social movie database which is also the application of the tutorial in the Spring Data Graph Guidebook. The session will also cover creating a green-field project using the Spring Roo Addon for Spring Data Graph and deploying the App to CloudFoundry.
Neo4j - The Benefits of Graph Databases (OSCON 2009)Emil Eifrem
This document discusses the benefits of graph databases like Neo4j compared to relational databases. It notes that data is becoming more connected and semi-structured, and graph databases can better represent these types of connections. It provides examples of building a node space and traversing relationships in Neo4j using code snippets. It also discusses scaling Neo4j through replication and partitioning. In summary, graph databases like Neo4j are well-suited for complex, connected data and can provide better performance than relational databases for network and semantic queries.
This document discusses Grails integration with Neo4j graph databases. It begins with an introduction to graph databases and Neo4j. It then covers the Grails Neo4j plugin which allows using Neo4j as the persistence layer for Grails domain classes. Finally, it addresses some challenges in mapping the Grails domain model to the Neo4j nodespace and potential solutions.
Django and Neo4j - Domain modeling that kicks assTobias Lindaaker
Presentation about using Neo4j from Django presented at OSCON 2010, Portland OR.
Sample code is available at: https://svn.neo4j.org/components/neo4j.py/trunk/src/examples/python/djangosites/blog/
A presentation of the Neo4j graph database given at QCon SF 2008. It describes why relational databases are increasingly unfit for many applications today and why graphs may be a good fit. It also covers the fundamentals of how to program with Neo4j.
using Spring and MongoDB on Cloud FoundryJoshua Long
This talk introduces how to build MongoDB applications with Spring Data MongoDB on Cloud Foundry. Spring Data provides rich support for easily building applications that work on multiple data stores.
This document discusses collaborative filtering and recommender systems. It begins with an overview of non-relational databases and graph databases. It then discusses collaborative filtering, including calculating similarity scores between users or items, predicting ratings for unseen items, and making recommendations. Specific methods discussed include Euclidean distance, Pearson correlation, and user-based filtering. The goal of collaborative filtering is to increase sales, market share, and targeted advertising by making personalized recommendations to users.
This document provides an introduction to NoSQL databases. It discusses that NoSQL refers to non-relational databases that are not based on SQL and are focused on scalability. Some common types of NoSQL databases include column stores, key-value stores, document stores, graph databases, and XML databases. NoSQL databases are designed to handle large volumes of data across many servers and provide high availability with no single point of failure. Common uses of NoSQL databases include distributed systems like social networks where data is highly distributed and needs to be replicated across servers.
The document introduces MongoDB as an open source, high performance database that is a popular NoSQL option. It discusses how MongoDB stores data as JSON-like documents, supports dynamic schemas, and scales horizontally across commodity servers. MongoDB is seen as a good alternative to SQL databases for applications dealing with large volumes of diverse data that need to scale.
This document discusses trends driving the adoption of NoSQL databases, including increasing data size, connectivity of information, semi-structured data, and distributed application architectures. It describes four categories of NoSQL databases - aggregate-oriented, key-value stores, column family (BigTable), and document databases - and provides examples and comparisons of their pros and cons.
The document discusses the rise of NoSQL databases as an alternative to traditional relational databases. It provides a brief history of NoSQL, noting that new types of applications and data led developers to look for databases that offer more flexibility and scalability. It also describes the main types of NoSQL databases - key-value stores, graph stores, column stores, and document stores - and discusses some of the advantages of NoSQL databases like flexibility, scalability, availability and lower costs.
While mathematicians have used graph theory since the 18th century to solve problems, the software patterns for graph data are new to most developers. To enable "mass adoption" of graph technology, we need to establish the right abstractions, access APIs, and data models.
RDF triples, while of paramount importance in establishing RDF graph semantics, are a low-level abstraction, much like using assembly language. For practical and productive “graph programming” we need something different.
Similarly, existing declarative graph query languages (such as SPARQL and Cypher) are not always the best way to access graph data, and sometimes you need a simpler interface (e.g., GraphQL), or even a different approach altogether (e.g., imperative traversals such as with Gremlin).
Ora Lassila is a Principal Graph Technologist in the Amazon Neptune graph database group. He has a long experience with graphs, graph databases, ontologies, and knowledge representation. He was a co-author of the original RDF specification as well as a co-author of the seminal article on the Semantic Web.
Neo4j Spatial provides spatial/GIS capabilities for Neo4j, allowing it to store and query geospatial data. It aims to make GIS more accessible and allow for complex spatial mapping and analytics by connecting location data to other domain data stored in the graph. Features include support for OpenStreetMap data, dynamic layers, and topological queries and persistence of spatial relationships directly in the graph.
NoSQL & Big Data Analytics: History, Hype, OpportunitiesVishy Poosala
This document provides a high-level summary of NoSQL and Big Data:
1) It discusses the history of databases from COBOL to SQL and the development of NoSQL in response to the need to handle large, unstructured datasets.
2) It outlines some of the opportunities that NoSQL databases provide for storing and analyzing massive amounts of diverse data types.
3) It briefly mentions some examples of popular NoSQL databases like MongoDB, Cassandra, and DynamoDB that are well-suited for Big Data applications.
Similar to A NOSQL Overview And The Benefits Of Graph Databases (nosql east 2009) (20)
Startups in Sweden vs Startups in Silicon Valley, 2015 editionEmil Eifrem
Differences between running a startup in Sweden and a startup in Silicon Valley. Bonus: How Neo Technology (Neo4j) uses aspects of Scandinavian culture as a competitive advantage. Presented at the Nordic themed Monki Gräs in London, Jan of 2015.
Btw, we at Neo4j are hiring: http://neo4j.com/jobs/ :)
An Overview of the Emerging Graph Landscape (Oct 2013)Emil Eifrem
Recent years have seen an explosion of technologies for managing, processing and analyzing graphs, ranging from community projects like Apache Giraph, to vendor led products such as Neo4j and spin outs from established companies like Twitter’s FlockDB. The sheer number of technologies makes it difficult to keep track of these tools and what sets them apart, even for those of us who are active in the space!
But all graph technologies are not created equal. This session will provide a high level framework for making sense of the emerging graph landscape. It will describe the three dominant graph data models today, define top level categories like graph compute engines (Graphlab, Giraph, Pegasus, YarcData, etc) and graph databases (Neo4j, FlockDB, OrientDB, etc) and discuss common characteristics and important properties of each category.
Startups in Sweden vs Startups in Silicon ValleyEmil Eifrem
Differences between running a startup in Sweden and a startup in Silicon Valley. Presented at Stanford's "European Entrepreneurship & Innovation" (http://www.europeanentrepreneursatstanford.com) in Jan of 2012.
NOSQL part of the SpringOne 2GX 2010 keynoteEmil Eifrem
The document discusses Spring Data support for non-relational databases (NOSQL) to address challenges of proliferating and complex data not suitable for relational databases. It provides examples of using Spring Data with the Neo4j graph database to model complex domains like social networks by adding graph features to existing JPA data models and handling relationships as entities rather than raw database operations. A new Spring Roo add-on is presented for simplified Neo4j integration.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
This presentation provides valuable insights into effective cost-saving techniques on AWS. Learn how to optimize your AWS resources by rightsizing, increasing elasticity, picking the right storage class, and choosing the best pricing model. Additionally, discover essential governance mechanisms to ensure continuous cost efficiency. Whether you are new to AWS or an experienced user, this presentation provides clear and practical tips to help you reduce your cloud costs and get the most out of your budget.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/temporal-event-neural-networks-a-more-efficient-alternative-to-the-transformer-a-presentation-from-brainchip/
Chris Jones, Director of Product Management at BrainChip , presents the “Temporal Event Neural Networks: A More Efficient Alternative to the Transformer” tutorial at the May 2024 Embedded Vision Summit.
The expansion of AI services necessitates enhanced computational capabilities on edge devices. Temporal Event Neural Networks (TENNs), developed by BrainChip, represent a novel and highly efficient state-space network. TENNs demonstrate exceptional proficiency in handling multi-dimensional streaming data, facilitating advancements in object detection, action recognition, speech enhancement and language model/sequence generation. Through the utilization of polynomial-based continuous convolutions, TENNs streamline models, expedite training processes and significantly diminish memory requirements, achieving notable reductions of up to 50x in parameters and 5,000x in energy consumption compared to prevailing methodologies like transformers.
Integration with BrainChip’s Akida neuromorphic hardware IP further enhances TENNs’ capabilities, enabling the realization of highly capable, portable and passively cooled edge devices. This presentation delves into the technical innovations underlying TENNs, presents real-world benchmarks, and elucidates how this cutting-edge approach is positioned to revolutionize edge AI across diverse applications.
Trusted Execution Environment for Decentralized Process MiningLucaBarbaro3
Presentation of the paper "Trusted Execution Environment for Decentralized Process Mining" given during the CAiSE 2024 Conference in Cyprus on June 7, 2024.
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3Data Hops
Free A4 downloadable and printable Cyber Security, Social Engineering Safety and security Training Posters . Promote security awareness in the home or workplace. Lock them Out From training providers datahops.com
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
5. Trend 2: connectedness
Giant
Global
Information connectivity
Graph
(GGG)
Ontologies
RDF
Folksonomies
Tagging
User-
Wikis
generated
content
Blogs
RSS
Hypertext
Text
documents web 1.0 web 2.0 “web 3.0”
1990 2000 2010 2020
6. Trend 3: semi-structure
Individualization of content!
In the salary lists of the 1970s, all elements had
exactly one job
In the salary lists of the 2000s, we need 5 job
columns! Or 8? Or 15?
Trend accelerated by the decentralization of
content generation that is the hallmark of the age
of participation (“web 2.0”)
7. Aside: RDBMS performance
Relational database
Salary List
Performance
Majority of
Webapps
Social network
Semantic
}
Trading
custom
Data complexity
14. Four (emerging) NOSQL categories
Key-value stores
Based on DHTs / Amazon's Dynamo paper
Data model: (global) collection of K-V pairs
Example: Dynomite, Voldemort, Tokyo
BigTable clones
Based on Google's BigTable paper
Data model: big table, column families
Example: Hbase, Hypertable
15. Four (emerging) NOSQL categories
Document databases
Inspired by Lotus Notes
Data model: collections of K-V collections
Example: CouchDB, MongoDB
Graph databases
Inspired by Euler & graph theory
Data model: nodes, rels, K-V on both
Example: AllegroGraph, VertexDB, Neo4j
17. NOSQL data models
Size
Key-value stores
Bigtable clones
Document
databases
Graph databases
(This is still billions of
90% nodes & relationships)
of
use
cases
Complexity
19. The Graph DB model: representation
Core abstractions: name = “Emil”
age = 29
Nodes sex = “yes”
Relationships between nodes
1 2
Properties on both
type = KNOWS
time = 4 years 3
type = car
vendor = “SAAB”
model = “95 Aero”
20. Example: The Matrix
name = “The Architect”
name = “Morpheus”
rank = “Captain”
name = “Thomas Anderson”
occupation = “Total badass” 42
age = 29
disclosure = public
KNOWS KNOWS CODED_BY
1 KN O
7 3 WS
13
S
KN name = “Cypher”
KNOW
OW last name = “Reagan”
S
name = “Agent Smith”
disclosure = secret version = 1.0b
age = 3 days age = 6 months language = C++
2
name = “Trinity”
21. Code (1): Building a node space
NeoService neo = ... // Get factory
// Create Thomas 'Neo' Anderson
Node mrAnderson = neo.createNode();
mrAnderson.setProperty( "name", "Thomas Anderson" );
mrAnderson.setProperty( "age", 29 );
// Create Morpheus
Node morpheus = neo.createNode();
morpheus.setProperty( "name", "Morpheus" );
morpheus.setProperty( "rank", "Captain" );
morpheus.setProperty( "occupation", "Total bad ass" );
// Create a relationship representing that they know each other
mrAnderson.createRelationshipTo( morpheus, RelTypes.KNOWS );
// ...create Trinity, Cypher, Agent Smith, Architect similarly
22. Code (1): Building a node space
NeoService neo = ... // Get factory
Transaction tx = neo.beginTx();
// Create Thomas 'Neo' Anderson
Node mrAnderson = neo.createNode();
mrAnderson.setProperty( "name", "Thomas Anderson" );
mrAnderson.setProperty( "age", 29 );
// Create Morpheus
Node morpheus = neo.createNode();
morpheus.setProperty( "name", "Morpheus" );
morpheus.setProperty( "rank", "Captain" );
morpheus.setProperty( "occupation", "Total bad ass" );
// Create a relationship representing that they know each other
mrAnderson.createRelationshipTo( morpheus, RelTypes.KNOWS );
// ...create Trinity, Cypher, Agent Smith, Architect similarly
tx.commit();
23. Code (1b): Defining RelationshipTypes
// In package org.neo4j.api.core
public interface RelationshipType
{
String name();
}
// In package org.yourdomain.yourapp
// Example on how to roll dynamic RelationshipTypes
class MyDynamicRelType implements RelationshipType
{
private final String name;
MyDynamicRelType( String name ){ this.name = name; }
public String name() { return this.name; }
}
// Example on how to kick it, static-RelationshipType-like
enum MyStaticRelTypes implements RelationshipType
{
KNOWS,
WORKS_FOR,
}
26. The Graph DB model: traversal
Traverser framework for name = “Emil”
high-performance traversing age = 29
sex = “yes”
across the node space
1 2
type = KNOWS
time = 4 years 3
type = car
vendor = “SAAB”
model = “95 Aero”
27. Example: Mr Anderson’s friends
name = “The Architect”
name = “Morpheus”
rank = “Captain”
name = “Thomas Anderson”
occupation = “Total badass” 42
age = 29
disclosure = public
KNOWS KNOWS CODED_BY
1 KN O
7 3 WS
13
S
KN name = “Cypher”
KNOW
OW last name = “Reagan”
S
name = “Agent Smith”
disclosure = secret version = 1.0b
age = 3 days age = 6 months language = C++
2
name = “Trinity”
28. Code (2): Traversing a node space
// Instantiate a traverser that returns Mr Anderson's friends
Traverser friendsTraverser = mrAnderson.traverse(
Traverser.Order.BREADTH_FIRST,
StopEvaluator.END_OF_GRAPH,
ReturnableEvaluator.ALL_BUT_START_NODE,
RelTypes.KNOWS,
Direction.OUTGOING );
// Traverse the node space and print out the result
System.out.println( "Mr Anderson's friends:" );
for ( Node friend : friendsTraverser )
{
System.out.printf( "At depth %d => %s%n",
friendsTraverser.currentPosition().getDepth(),
friend.getProperty( "name" ) );
}
29. name = “The Architect”
name = “Morpheus”
rank = “Captain”
name = “Thomas Anderson”
occupation = “Total badass” 42
age = 29
disclosure = public
KNOWS KNOWS CODED_BY
1 KN O
7 3 WS
13
S
KN name = “Cypher”
KNOW
OW last name = “Reagan”
S
name = “Agent Smith”
disclosure = secret version = 1.0b
age = 3 days age = 6 months language = C++
2
name = “Trinity”
$ bin/start-neo-example
Mr Anderson's friends:
At depth 1 => Morpheus
friendsTraverser = mrAnderson.traverse(
Traverser.Order.BREADTH_FIRST, At depth 1 => Trinity
StopEvaluator.END_OF_GRAPH, At depth 2 => Cypher
ReturnableEvaluator.ALL_BUT_START_NODE,
RelTypes.KNOWS,
At depth 3 => Agent Smith
Direction.OUTGOING ); $
30. Example: Friends in love?
name = “The Architect”
name = “Morpheus”
rank = “Captain”
name = “Thomas Anderson”
occupation = “Total badass” 42
age = 29
disclosure = public
KNOWS KNOWS CODED_BY
1 7 3 KN O
WS
13
S
KN
KNOW
name = “Cypher”
OW last name = “Reagan”
S
name = “Agent Smith”
LO disclosure = secret version = 1.0b
VE age = 6 months language = C++
S
2
name = “Trinity”
31. Code (3a): Custom traverser
// Create a traverser that returns all “friends in love”
Traverser loveTraverser = mrAnderson.traverse(
Traverser.Order.BREADTH_FIRST,
StopEvaluator.END_OF_GRAPH,
new ReturnableEvaluator()
{
public boolean isReturnableNode( TraversalPosition pos )
{
return pos.currentNode().hasRelationship(
RelTypes.LOVES, Direction.OUTGOING );
}
},
RelTypes.KNOWS,
Direction.OUTGOING );
32. Code (3a): Custom traverser
// Traverse the node space and print out the result
System.out.println( "Who’s a lover?" );
for ( Node person : loveTraverser )
{
System.out.printf( "At depth %d => %s%n",
loveTraverser.currentPosition().getDepth(),
person.getProperty( "name" ) );
}
33. name = “The Architect”
name = “Morpheus”
rank = “Captain”
name = “Thomas Anderson”
occupation = “Total badass” 42
age = 29
disclosure = public
KNOWS KNOWS KN O CODED_BY
1 7 3 WS
13
S
KN
KNOW
name = “Cypher”
OW last name = “Reagan”
S
name = “Agent Smith”
LO disclosure = secret version = 1.0b
VE age = 6 months language = C++
S 2
name = “Trinity”
$ bin/start-neo-example
new ReturnableEvaluator()
Who’s a lover?
{
public boolean isReturnableNode(
TraversalPosition pos)
At depth 1 => Trinity
{ $
return pos.currentNode().
hasRelationship( RelTypes.LOVES,
Direction.OUTGOING );
}
},
34. Bonus code: domain model
How do you implement your domain model?
Use the delegator pattern, i.e. every domain entity
wraps a Neo4j primitive:
// In package org.yourdomain.yourapp
class PersonImpl implements Person
{
private final Node underlyingNode;
PersonImpl( Node node ){ this.underlyingNode = node; }
public String getName()
{
return this.underlyingNode.getProperty( "name" );
}
public void setName( String name )
{
this.underlyingNode.setProperty( "name", name );
}
}
35. Domain layer frameworks
Qi4j (www.qi4j.org)
Framework for doing DDD in pure Java5
Defines Entities / Associations / Properties
Sound familiar? Nodes / Rel’s / Properties!
Neo4j is an “EntityStore” backend
NeoWeaver (http://components.neo4j.org/neo-weaver)
Weaves Neo4j-backed persistence into domain
objects in runtime (dynamic proxy / cglib based)
Veeeery alpha
36. Neo4j system characteristics
Disk-based
Native graph storage engine with custom binary
on-disk format
Transactional
JTA/JTS, XA, 2PC, Tx recovery, deadlock
detection, MVCC, etc
Scales up (what's the x and the y?)
Several billions of nodes/rels/props on single JVM
Robust
6+ years in 24/7 production
37. Social network pathExists()
12
~1k persons
3
7 1 Avg 50 friends per
person
pathExists(a, b) limit
36
41 77 depth 4
5
Two backends
Eliminate disk IO so
warm up caches
38. Social network pathExists()
2
Emil
1 5
7
Mike Kevin
3 John
Marcus
9 4
Bruce Leigh
# persons query time
Relational database 1 000 2 000 ms
Graph database (Neo4j) 1 000 2 ms
Graph database (Neo4j) 1 000 000 2 ms
39.
40.
41. Pros & Cons compared to RDBMS
+ No O/R impedance mismatch (whiteboard friendly)
+ Can easily evolve schemas
+ Can represent semi-structured info
+ Can represent graphs/networks (with performance)
- Lacks in tool and framework support
- Few other implementations => potential lock in
- No support for ad-hoc queries
+
42. More consequences
Ability to capture semi-structured information
=> allowing individualization of content
No predefined schema
=> easier to evolve model
=> can capture ad-hoc relationships
Can capture non-normative relations
=> easy to model specific links to specific sets
All state is kept in transactional memory
=> improves application concurrency
43. The Neo4j ecosystem
Neo4j is an embedded database
Tiny teeny lil jar file
Component ecosystem
index-util
neo-meta
neo-utils
pattern-match
sparql-engine
...
See http://components.neo4j.org
44. Language bindings
Neo4j.py – bindings for Jython and CPython
http://components.neo4j.org/neo4j.py
Neo4jrb – bindings for JRuby (incl RESTful API)
http://wiki.neo4j.org/content/Ruby
Clojure
http://wiki.neo4j.org/content/Clojure
Scala (incl RESTful API)
http://wiki.neo4j.org/content/Scala
… .NET? Erlang?
48. Scale out – replication
Rolling out Neo4j HA before end-of-year
Side note: ppl roll it today w/ REST frontends & onlinebackup
Master-slave replication, 1st configuration
MySQL style... ish
Except all instances can write, synchronously
between writing slave & master (strong consistency)
Updates are asynchronously propagated to the
other slaves (eventual consistency)
This can handle billions of entities...
… but not 100B
49. Scale out – partitioning
Sharding possible today
… but you have to do manual work
… just as with MySQL
Great option: shard on top of resilient, scalable
OSS app server , see: www.codecauldron.org
Transparent partitioning? Neo4j 2.0
100B? Easy to say. Sliiiiightly harder to do.
Fundamentals: BASE & eventual consistency
Generic clustering algorithm as base case, but
give lots of knobs for developers
50. How ego are you? (aka other impls?)
Franz’ AllegroGraph (http://agraph.franz.com)
Proprietary, Lisp, RDF-oriented but real graphdb
FreeBase graphd (http://bit.ly/13VITB)
In-house at Metaweb
Kloudshare (http://kloudshare.com)
Graph database in the cloud, still stealth mode
Google Pregel (http://bit.ly/dP9IP)
We are oh-so-secret
Some academic papers from ~10 years ago
G = {V, E} #FAIL
51. Conclusion
Graphs && Neo4j => teh awesome!
Available NOW under AGPLv3 / commercial license
AGPLv3: “if you’re open source, we’re open source”
If you have proprietary software? Must buy a
commercial license
But up to 1M primitives it’s free for all uses!
Download
http://neo4j.org
Feedback
http://lists.neo4j.org
53. Poop 1
Key-value stores?
=> the awesome
… if you have 1000s of BILLIONS records OR you
don't care about programmer productivity
What if you had no variables at all in your programs
except a single globally accessible hashtable?
Would your software be maintainable?
54. Poop 2
In a not-suck architecture...
… the only thing that makes sense is to have an
embedded database.
55. Poop 3
Exposing your data model on the wire is bad.
Period.
Adding a couple of buzzwords doesn't make it less
bad.
If it was bad with SQL-over-sockets (hint: it was)
then – surprise! – it's still bad even tho you use
Hype-compliant(tm) JSON-over-REST.
We don't want to couple everything to a specific
data model again!
56. Poop 4
In-memory database
What the hell?
That's an oxymoron!
Up next: ascii-only JPEG
Up next: loopback-only web server
If you're not durable, you're a cache!
If you happen to asynchronously spill over to disk,
you're a cache that asynchronously spills over to
disk.