This document provides an overview of OrientDB, a multi-model database that combines features of document, graph, and other databases. It discusses data modeling and schema, querying and traversing graph data, full-text and spatial search, deployment scenarios, and APIs. Examples show creating classes and properties, inserting and querying graph data, and live reactive queries in OrientDB.
Swagger APIs for Humans and Robots (Gluecon)Tony Tam
Presentation to Gluecon 2014 about Swagger for API development and adoption of services. Reverb also announced the Swagger 2.0 Working Group, with Apigee as a founding member
XDC webApplication - Calculation of the Standard XDC for ENEL S.p.A. right. based on science
For the first time, companies are able to independently calculate their contribution to global warming. Our X-Degree Compatibility ("XDC") webApplication is an easy way to do so. Pioneering companies having used our XDC webApplication, are coming back with questions:
Is it possible to calculate my science-based climate target with the XDC webApplication?
What data do I need to be able to use the XDC webApplication?
How can I use the XDC webApplication for climate management?
On Tuesday, 22 January 2019 we used the XDC webApplication to determine the Standard XDC of the Italian utility company Enel S.p.A. Find out how we determined it.
The webinar was held by Hannah Helmke and Roman Herzog from right. based on science. #ReachClimateTargets
Using Dagger in a Clean Architecture projectFabio Collini
Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough?
In this talk we’ll see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code.
Swagger APIs for Humans and Robots (Gluecon)Tony Tam
Presentation to Gluecon 2014 about Swagger for API development and adoption of services. Reverb also announced the Swagger 2.0 Working Group, with Apigee as a founding member
XDC webApplication - Calculation of the Standard XDC for ENEL S.p.A. right. based on science
For the first time, companies are able to independently calculate their contribution to global warming. Our X-Degree Compatibility ("XDC") webApplication is an easy way to do so. Pioneering companies having used our XDC webApplication, are coming back with questions:
Is it possible to calculate my science-based climate target with the XDC webApplication?
What data do I need to be able to use the XDC webApplication?
How can I use the XDC webApplication for climate management?
On Tuesday, 22 January 2019 we used the XDC webApplication to determine the Standard XDC of the Italian utility company Enel S.p.A. Find out how we determined it.
The webinar was held by Hannah Helmke and Roman Herzog from right. based on science. #ReachClimateTargets
Using Dagger in a Clean Architecture projectFabio Collini
Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough?
In this talk we’ll see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code.
S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]日本マイクロソフト株式会社
日本マイクロソフト株式会社
セキュリティ技術本部 クラウドソリューションアーキテクト
村田 裕昭
ADFS と Azure AD の両方を利用されているお客様の多くは、認証基盤の統合を計画されているのではないでしょうか。単純な機能比較や既存のセキュリティポリシーの考え方から、既存の運用環境に対する最適解を導き出すことが難しい場面があると聞いています。自信をもって Azure AD を選択していただくために、ADFS から移行した後の認証基盤のあるべき姿を、代表的な活用シナリオと合わせてお伝えします。ADFS から脱却する必要性は理解しているものの、既存のアプリケーションを考慮しながらどのように IDaaS を構築すればよいか迷っている方へ最適なセッションです。
【Microsoft Japan Digital Daysについて】
Microsoft Japan Digital Days は、お客様が競争力を高め、市場の変化に迅速に対応し、より多くのことを達成することを目的とした、日本マイクロソフトがお届けする最大級のデジタル イベントです。4 日間にわたる本イベントでは、一人一人の生産性や想像力を高め、クラウド時代の組織をデザインするモダンワークの最新事例や、変化の波をうまく乗り切り、企業の持続的な発展に必要なビジネスレジリエンス経営を支えるテクノロジの最新機能および、企業の競争優位性に欠かせないクラウド戦略のビジョンなどデジタル時代に必要な情報をお届けいたしました。(2021年10月11日~14日開催)
Data Con LA 2022 - What's new with MongoDB 6.0 and AtlasData Con LA
Sig Narvaez, Executive Solution Architect at MongoDB
MongoDB is now a Developer Data Platform. Come learn what�s new in the 6.0 release and Atlas following all the recent announcements made at MongoDB World 2022. Topics will include
- Atlas Search which combines 3 systems into one (database, search engine, and sync mechanisms) letting you focus on your product's differentiation.
- Atlas Data Federation to seamlessly query, transform, and aggregate data from one or more MongoDB Atlas databases, Atlas Data Lake and AWS S3 buckets
- Queryable Encryption lets you run expressive queries on fully randomized encrypted data to meet the most stringent security requirements
- Relational Migrator which analyzes your existing relational schemas and helps you design a new MongoDB schema.
- And more!
Jump Start into Apache® Spark™ and DatabricksDatabricks
These are the slides from the Jump Start into Apache Spark and Databricks webinar on February 10th, 2016.
---
Spark is a fast, easy to use, and unified engine that allows you to solve many Data Sciences and Big Data (and many not-so-Big Data) scenarios easily. Spark comes packaged with higher-level libraries, including support for SQL queries, streaming data, machine learning, and graph processing. We will leverage Databricks to quickly and easily demonstrate, visualize, and debug our code samples; the notebooks will be available for you to download.
Functional, Type-safe, Testable Microservices with ZIO and gRPCNadav Samet
Many use cases for Scala involve developing and deploying microservices. Although once favored, HTTP microservices don’t have type-safe, documented definitions that can be safely evolved over time. gRPC was designed by Google to solve this problem, however current Scala gRPC libraries aren’t designed to work with modern effect systems like ZIO.
Enter ZIO gRPC, a new library created by Nadav Samet, the author of the popular ScalaPB library, which is the underlying technology behind all Scala gRPC libraries. ZIO gRPC allows companies to write purely functional, type-safe, and testable gRPC services and clients.
ZIO gRPC supports all types of RPCs (unary, client streaming, server streaming, and bidirectional), and fully uses ZIO typed errors for RPC error codes, ZIO interruption for canceling RPC calls, and ZIO environment for propagating RPC context; and supports ZLayer construction out of the box.
Learn how to create and ship type-safe, testable microservices as you watch Nadav live code a simple and boilerplate-free service in just a few minutes!
Distributed Queries in IDS: New features.Keshav Murthy
Learn about the latest function relating to distributed queries that was delivered in IBM Informix® Dynamic Server (IDS) 11 and 11.5. This talk will provide an overview of distributed queries, then will jump into a deep dive on the latest functions and how you can benefit from implementing distributed queries in your solutions.
Dove sono i tuoi vertici e di cosa stanno parlando?Codemotion
"Dove sono i tuoi vertici e di cosa stanno parlando?" by Roberto Franchini
OrientDB unisce la potenza di un database a grafo con la flessibilità di un document database creando il primo database multi-modello. Il talk esplora le funzionalità avanzate di ricerca geo-spaziale e full-text di OrientDB basate su Lucene. I due modelli di interrogazione, completamente integrati nel linguaggio SQL di OrientDB, aprono possibilità di analisi avanzate per dati geolocalizzati e testi non strutturati.
Structuring Apache Spark 2.0: SQL, DataFrames, Datasets And Streaming - by Mi...Databricks
“As Apache Spark becomes more widely adopted, we have focused on creating higher-level APIs that provide increased opportunities for automatic optimization. In this talk, I give an overview of some of the exciting new API’s available in Spark 2.0, namely Datasets and Structured Streaming. Together, these APIs are bringing the power of Catalyst, Spark SQL's query optimizer, to all users of Spark. I'll focus on specific examples of how developers can build their analyses more quickly and efficiently simply by providing Spark with more information about what they are trying to accomplish.” - Michael
Databricks Blog: "Deep Dive into Spark SQL’s Catalyst Optimizer"
https://databricks.com/blog/2015/04/13/deep-dive-into-spark-sqls-catalyst-optimizer.html
// About the Presenter //
Michael Armbrust is the lead developer of the Spark SQL project at Databricks. He received his PhD from UC Berkeley in 2013, and was advised by Michael Franklin, David Patterson, and Armando Fox. His thesis focused on building systems that allow developers to rapidly build scalable interactive applications, and specifically defined the notion of scale independence. His interests broadly include distributed systems, large-scale structured storage and query optimization.
Follow Michael on -
Twitter: https://twitter.com/michaelarmbrust
LinkedIn: https://www.linkedin.com/in/michaelarmbrust
S12_Azure AD 活用術!アプリケーション認証を ADFS から移行しましょう。 [Microsoft Japan Digital Days]日本マイクロソフト株式会社
日本マイクロソフト株式会社
セキュリティ技術本部 クラウドソリューションアーキテクト
村田 裕昭
ADFS と Azure AD の両方を利用されているお客様の多くは、認証基盤の統合を計画されているのではないでしょうか。単純な機能比較や既存のセキュリティポリシーの考え方から、既存の運用環境に対する最適解を導き出すことが難しい場面があると聞いています。自信をもって Azure AD を選択していただくために、ADFS から移行した後の認証基盤のあるべき姿を、代表的な活用シナリオと合わせてお伝えします。ADFS から脱却する必要性は理解しているものの、既存のアプリケーションを考慮しながらどのように IDaaS を構築すればよいか迷っている方へ最適なセッションです。
【Microsoft Japan Digital Daysについて】
Microsoft Japan Digital Days は、お客様が競争力を高め、市場の変化に迅速に対応し、より多くのことを達成することを目的とした、日本マイクロソフトがお届けする最大級のデジタル イベントです。4 日間にわたる本イベントでは、一人一人の生産性や想像力を高め、クラウド時代の組織をデザインするモダンワークの最新事例や、変化の波をうまく乗り切り、企業の持続的な発展に必要なビジネスレジリエンス経営を支えるテクノロジの最新機能および、企業の競争優位性に欠かせないクラウド戦略のビジョンなどデジタル時代に必要な情報をお届けいたしました。(2021年10月11日~14日開催)
Data Con LA 2022 - What's new with MongoDB 6.0 and AtlasData Con LA
Sig Narvaez, Executive Solution Architect at MongoDB
MongoDB is now a Developer Data Platform. Come learn what�s new in the 6.0 release and Atlas following all the recent announcements made at MongoDB World 2022. Topics will include
- Atlas Search which combines 3 systems into one (database, search engine, and sync mechanisms) letting you focus on your product's differentiation.
- Atlas Data Federation to seamlessly query, transform, and aggregate data from one or more MongoDB Atlas databases, Atlas Data Lake and AWS S3 buckets
- Queryable Encryption lets you run expressive queries on fully randomized encrypted data to meet the most stringent security requirements
- Relational Migrator which analyzes your existing relational schemas and helps you design a new MongoDB schema.
- And more!
Jump Start into Apache® Spark™ and DatabricksDatabricks
These are the slides from the Jump Start into Apache Spark and Databricks webinar on February 10th, 2016.
---
Spark is a fast, easy to use, and unified engine that allows you to solve many Data Sciences and Big Data (and many not-so-Big Data) scenarios easily. Spark comes packaged with higher-level libraries, including support for SQL queries, streaming data, machine learning, and graph processing. We will leverage Databricks to quickly and easily demonstrate, visualize, and debug our code samples; the notebooks will be available for you to download.
Functional, Type-safe, Testable Microservices with ZIO and gRPCNadav Samet
Many use cases for Scala involve developing and deploying microservices. Although once favored, HTTP microservices don’t have type-safe, documented definitions that can be safely evolved over time. gRPC was designed by Google to solve this problem, however current Scala gRPC libraries aren’t designed to work with modern effect systems like ZIO.
Enter ZIO gRPC, a new library created by Nadav Samet, the author of the popular ScalaPB library, which is the underlying technology behind all Scala gRPC libraries. ZIO gRPC allows companies to write purely functional, type-safe, and testable gRPC services and clients.
ZIO gRPC supports all types of RPCs (unary, client streaming, server streaming, and bidirectional), and fully uses ZIO typed errors for RPC error codes, ZIO interruption for canceling RPC calls, and ZIO environment for propagating RPC context; and supports ZLayer construction out of the box.
Learn how to create and ship type-safe, testable microservices as you watch Nadav live code a simple and boilerplate-free service in just a few minutes!
Distributed Queries in IDS: New features.Keshav Murthy
Learn about the latest function relating to distributed queries that was delivered in IBM Informix® Dynamic Server (IDS) 11 and 11.5. This talk will provide an overview of distributed queries, then will jump into a deep dive on the latest functions and how you can benefit from implementing distributed queries in your solutions.
Dove sono i tuoi vertici e di cosa stanno parlando?Codemotion
"Dove sono i tuoi vertici e di cosa stanno parlando?" by Roberto Franchini
OrientDB unisce la potenza di un database a grafo con la flessibilità di un document database creando il primo database multi-modello. Il talk esplora le funzionalità avanzate di ricerca geo-spaziale e full-text di OrientDB basate su Lucene. I due modelli di interrogazione, completamente integrati nel linguaggio SQL di OrientDB, aprono possibilità di analisi avanzate per dati geolocalizzati e testi non strutturati.
Structuring Apache Spark 2.0: SQL, DataFrames, Datasets And Streaming - by Mi...Databricks
“As Apache Spark becomes more widely adopted, we have focused on creating higher-level APIs that provide increased opportunities for automatic optimization. In this talk, I give an overview of some of the exciting new API’s available in Spark 2.0, namely Datasets and Structured Streaming. Together, these APIs are bringing the power of Catalyst, Spark SQL's query optimizer, to all users of Spark. I'll focus on specific examples of how developers can build their analyses more quickly and efficiently simply by providing Spark with more information about what they are trying to accomplish.” - Michael
Databricks Blog: "Deep Dive into Spark SQL’s Catalyst Optimizer"
https://databricks.com/blog/2015/04/13/deep-dive-into-spark-sqls-catalyst-optimizer.html
// About the Presenter //
Michael Armbrust is the lead developer of the Spark SQL project at Databricks. He received his PhD from UC Berkeley in 2013, and was advised by Michael Franklin, David Patterson, and Armando Fox. His thesis focused on building systems that allow developers to rapidly build scalable interactive applications, and specifically defined the notion of scale independence. His interests broadly include distributed systems, large-scale structured storage and query optimization.
Follow Michael on -
Twitter: https://twitter.com/michaelarmbrust
LinkedIn: https://www.linkedin.com/in/michaelarmbrust
Works with persistent graphs using OrientDB graphdevroom
This talk will present OrientDB open source project and its capability to handle persistent graphs in different ways. OrientDB presentation Java Graph Native API SQL+graph extensions HTTP API Blueprints API Gremlin usage Console tool Studio web tool
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
During this talk we'll navigate through a customer's journey as they migrate an existing MongoDB deployment to MongoDB Atlas. While the migration itself can be as simple as a few clicks, the prep/post effort requires due diligence to ensure a smooth transfer. We'll cover these steps in detail and provide best practices. In addition, we’ll provide an overview of what to consider when migrating other cloud data stores, traditional databases and MongoDB imitations to MongoDB Atlas.
Integration testing is hard, and often teams are tempted to do it in production. Testcontainers allows writing meaningful integration tests spawning Docker containers for databases, queue systems, kv-store, other services. The talk, a blend of slides and live code, will show how we are able to deploy without fear while integrating with a dozen of different datastores. Don't mock your database with fake data anymore, work with real data
Slides from my presentation at Better Software 2015.
Code generates business value when it runs not when we write it.
We must know how our code perform at runtime, how it interacts with the infrastructure, how our customers are using it to give them the opportunity to give use more money.
Set SLAs, measure them, reach them and move forward to increase the business value of our software.
Java application monitoring with Dropwizard Metrics and graphite Roberto Franchini
Java application monitoring with Dropwizard Metrics and graphite.
How to correlate system monitoring and application monitoring using graphite as backend for Collectd and application metrics.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
2. whoami(1)
More (and more) than 15 years of experience
Software craftsman
Pragmatic problem solver
Remote worker
Member of OrientDB team, tech lead for full-text & spatial indexes, maintainer of
JDBC driver and Docker images
JUG-Torino co-lead
Member of Toastmasters
3. Agenda
Managing relations with graph Database
Data modelling and schema
Query
Live queries (reactive)
Full text and spatial search
Deployment scenario
Twitter property graph and demo
4. Meet OrientDB
The First Ever Multi-Model
Database Combining Flexibility
of Documents with
Connectedness of Graphs
12. Frank Turin
#13:55 #15:99out = 22:11
in = #22:11
#22:11
(Edge)
(Vertex) (Vertex)
out = #13:55
in = #15:99
Connections use
persistent
pointers
Each element in the
Graph has own
immutable Record ID
Each element in the
Graph has own
immutable Record ID
Each element in the
Graph has its own
immutable Record ID
Lives
Since:1993
13. Vertices and Edges are Documents
`
{ “@rid”: “12:382”,
“@class”: “Customer”,
“name”: “Frank”,
“surname” : “Raggio”,
“phone” : “+39 33123212”,
“details”: {
“city”:”London",
“tags”:”millennial” }
}
Frank
Order
Makes
General purpose solution:
• JSON
• Schema-less
• Schema-full
• Schema-hybrid
• Nested documents
• Rich indexing and querying
• Developer friendly
17. SELECT expand( out() )
FROM #12:468
SELECT expand( out() )
FROM Customer
WHERE name = ‘Green’
This uses an index
to retrieve the
starting vertex
(#12:468) vertex
Traversing the Graph
Green
Order
2332
Order
8834
White
Soap
#12:468
#15:19345
#15:49602
#15:4334
19. SELECT expand( in().in() )
FROM #15:49602
SELECT expand( in().in() )
FROM Product
WHERE name = ‘White Soap’
Traversing the Graph
Green
Order
2332
Order
8834
White
Soap
#12:468
#15:19345
#15:49602
#15:4334
20. The Index-Free Adjacency
is O(1) means constant traversing time, no matter the
database size
vs
Index approach that is O(logN) means the traversal
speed is affected by the database size: the bigger it
is, the slower it is
22. Person
V E
Product Order
Customer Provider
Purchase
ProvidedBy
MadeOf
Polymorphic domain schema
All vertices
classes extend
the “V”
class
All edges
classes extend
the “E”
class
24. Schema
Property types
STRING, DATE, DATETIME, BYTE, BOOLEAN, SHORT, BINARY
Constraint
MANDATORY, NOTNULL, MIN, MAX, READONLY, REGEX
Indexes on on single property or multiple properties
UNIQUE, NOT UNIQUE, FULL TEXT (Lucene), SPATIAL (Lucene)
25. Schema
Create a class (table) with constraints
CREATE CLASS User EXTENDS V
CREATE PROPERTY User.userId LONG
CREATE PROPERTY User.description STRING
CREATE INDEX User.userId ON User(userId) UNIQUE
CREATE INDEX User.description
ON User(description) FULLTEXT ENGINE LUCENE
27. Query
OrientDB supports SQL as a query language with some differences
SELECT city, sum(salary) AS salary FROM Employee
GROUP BY city
HAVING salary > 1000
28. Query
Get all the outgoing vertices connected with edges with label (class) "Eats" and
"Favourited" from all the Restaurant vertices in Rome
SELECT out('Eats', 'Favorited')
FROM Restaurant
WHERE city = 'Rome'
29. Traverse
In a social network-like domain, a user profile is connected to friends through links.
TRAVERSE out("Friend")
FROM #10:1234 WHILE $depth <= 3
STRATEGY BREADTH_FIRST
30. Pattern Matching
Pattern Matching
MATCH
{class: Person, WHERE: (name = ‘Luigi’), AS: me}
-Friend->{}-Friend->{AS: foaf}, {AS: me}-Friend->{AS: foaf}
RETURN me.name AS myName, foaf.name AS foafName
Me
F
FoaF
Friend
Friend
Friend
32. Reactive Model
By using the reactive model, you don’t poll the database, but
rather you subscribe to changes and OrientDB will push
updates:
LIVE SELECT FROM Order
WHERE status = ‘approved’
Supported by Java and JS api natively
35. Search what: full text support
Based on Lucene
provides Java-based indexing and search technology, as well as
spellchecking, hit highlighting and advanced analysis/tokenization capabilities.
Configurable: analyzers, stopwords, query parser behaviour, index writer tuning
Features: term and phrase queries, numeric and date range queries
36. Multi-field search
CREATE CLASS City EXTENDS V
CREATE PROPERTY City.name STRING
CREATE PROPERTY City.description STRING
CREATE PROPERTY City.size INTEGER
CREATE INDEX City.name_description_size
ON City(name, description,size) FULLTEXT ENGINE LUCENE METADATA {...}
SELECT FROM City
WHERE
SEARCH_CLASS ("name:cas* AND description:piemonte AND size:[20000 TO 40000]" = true
37. Search where: spatial module
External module, just add the jar and restart the server
Lucene, Spatial4J, JTS
Geometry data (OrientDB additional types)
Point, Line, Polygon, Multiline, Multipolygon
Functions
follows The Open Geospatial Consortium OGC for extending SQL to
support spatial data.
Implements a subset of SQL-MM functions with ST prefix (Spatial Type)
38. Spatial search
Add location
CREATE class Restaurant
CREATE PROPERTY Restaurant.name STRING
CREATE PROPERTY Restaurant.location EMBEDDED OPoint
Insert
INSERT INTO Restaurant SET name = 'Dar Poeta',
location = {"@class": "OPoint","coordinates" : [12.4684635,41.8914114]}
39. Spatial search
WKT support
INSERT INTO Restaurant SET name = 'Dar Poeta',
location = St_GeomFromText("POINT (12.4684635 41.8914114)")
Create index
CREATE INDEX Restaurant.location ON Restaurant(location) SPATIAL ENGINE LUCENE
Search index
SELECT FROM Restaurant
WHERE ST_WITHIN(location, ST_Buffer(ST_GeomFromText( 'POINT(50 50)' ), 30)) = true
40. Function without index
SELECT ST_Intersects(ST_GeomFromText('POINT(0 0)'),
ST_GeomFromText('LINESTRING ( 2 0, 0 2 )'));
Result → (false)
SELECT ST_Disjoint(ST_GeomFromText('POINT(0 0)'),
ST_GeomFromText('LINESTRING ( 2 0, 0 2 )'));
Result → (true)
41. Java
orientDB = new OrientDB("remote:localhost", "root", "root", OrientDBConfig.defaultConfig());
pool = new ODatabasePool(orientDB, "demodb", "admin", "admin");
db = pool.acquire();
OResultSet result = db.query(
"SELECT from ArchaeologicalSites where search_fields(['Name'],'foro') = true");
result.vertexStream() .forEach(v-> System.out.println("v = " + v.toJSON()));
db.close();
pool.close();
orientDB.close();
43. Availability and Integrity
Atomic, Consistent, Isolated and Durable (ACID) multi-statement transactions
Master
Node
Master
Node
C
C C C
CC
C
Multi-master
Replication
49. Additional tools and features
CLI console
Sequences
Server side functions in SQL, Java and JS
ETL tool: csv, json, jdbc
Teleporter: RDBMS to OrientDB
Neo4j Importer
50. API & Standards
REST and HTTP/JSON support
Support for TinkerPop standard for Graph DB: Gremlin
language and Blueprints API
JDBC driver to connect any BI tool
Drivers in Java, Node.js, Python, PHP, .NET, Perl, C/C++,
Elixir and more
Spring Data
Spark connector(s) (community)
51. Demo time
Download and unpack the server from the OrientDB site
Launch the server
./bin/server.sh
Point your browser to
http://localhost:2480/
Play around!
52. Get Started for Free
OrientDB Community Edition is FREE for any
purpose (Apache 2 license)
Udemy Getting Started Training is ★★★★★
OrientDB Enterprise Edition if you want more
53. OrientDB
Multi-Model DBMS with a Graph-Engine
Open Source Apache2 license
Data Models are built into the core engine
Schema-less, Schema-full and Schema-mixed
Written in Java (runs on every platform)
Zero-config HA
54. Useful links
Main site http://orientdb.com/
Documentation http://orientdb.com/docs/
GameOfGraph http://gog.orientdb.com/
GitHub https://github.com/orientechnologies/orientdb
Twitter demo https://github.com/robfrank/orientdb-twitter
Geospatial demo https://github.com/luigidellaquila/geospatial-demo