Orient DB on the cloud - Cloud Party 2013

Preview:

DESCRIPTION

OrientDB, graph/document database, portato sulla piattaforma cloud di Amazon

Citation preview

Orient DB on the Cloud

Un approccio pratico

Gabriele De Carli - @Gabber_84 Luigi Dell’Aquila - @ldellaquila

Cos’è Orient DB?

• NoSQL*

• Document/Graph Database

• REST/JSON

• Scalable

• Multi Platform

• ACID Transaction

Il modello dei dati

• Database

• Cluster

• Class - Inheritance• Vertex/Edge• Document

• Schema• Schemaful• Schemaless• Schema-mixed

Interfacce di interrogazione

• HTTP REST

• Native• Java• Scala• JavaScript• PHP• C• Ruby• .NET• Python• Node.js• Clojure

• Tinkerpop Blueprints compliant

NoSQL ma…

SQL!

Esempi

CREATE CLASS PERSON;

INSERT INTO PERSON (NAME, SURNAME) VALUES (“MARIO”, “ROSSI”);

SELECT * FROM PERSON WHERE SURNAME = “ROSSI”;

SELECT NAME, SURNAME, ADDRESS.CITY.REGION.COUNTRY FROM PERSON WHERE SURNAME = “ROSSI” AND ADDRESS.CITY.REGION.COUTRY.CONTINENT.NAME = “EUROPE”;

CREATE CLASS PERSON EXTENDS V;

CREATE CLASS FRIEND EXTENDS E;

CREATE VERTEX PERSON SET NAME = “MARIO”, SURNAME = “ROSSI”

CREATE VERTEX PERSON SET NAME = “MARCO”, SURNAME = “VERDI”

CREATE EDGE FRIEND FROM #10:1 TO #10:2

CREATE EDGE FRIEND FROM (SELECT FROM PERSON WHERE SURNAME = “ROSSI”) TO (SELECT FROM PERSON WHERE SURNAME = “VERDI”)

Esempi

SELECT FROM CITY WHERE COUNTRY.NAME.substring(1,3).toUpperCase() = “TAL”

SELECT FROM AGENDA WHERE EMAIL MATCHES '\bA-Z0-9._%+-?+@A-Z0-9.-?+\.A-Z?{2,4}\b’

SELECT MAX(INCOMING) AS MAX_INCOMING, MAX(COST) AS MAX_COST FROM BALANCE

In più (in ordine sparso)

• Supporto Transazionale

• Javascript nativo

• Funzioni

• TinkerPop - Gremlin

• Java Object API

• Local/remote/embedded mode

• Veloce! 150.000 record/secondo (flat, no index)

Replication (high availability)

Replication

HAZELCAST

Replication

HAZELCAST HAZELCASTmulticast

Replication

HAZELCAST HAZELCAST

HAZELCAST

Multi Master

Replication

HAZELCAST HAZELCASTmulticast

AWS

Replication

HAZELCAST HAZELCAST

HAZELCAST

Amazon

Elastic Load

Balancing+

Auto Scaling

Replication

• ~ 0 config

• Multi Master

• Load Balancing, Auto Scaling

• Fault Tolerant

HOW-TO 1/7

• Orient DB >= 1.6.0-SNAPSHOT

• Istanziare una macchina su EC2 (Micro è OK)

• Installare Orient DB (distributed) sulla macchina come servizio e configurare Hazelcast per usare AWS

• Creare una AMI dall’istanza

HOW-TO 2/7

Amazon key pairs

HOW-TO 3/7

Amazon security group

HOW-TO 4/7

Amazon New Instance (T1 Micro)

HOW-TO 5/7

Amazon New Instance (T1 Micro)

HOW-TO 6/7

Orient/bin/orientdb.sh (+ link simbolico in /etc/rcX.d/)

HOW-TO 7/7

Orient/config/hazelcast.xml

DEMO

Java (Graph API)

Java (Graph API)

JavaScript

Risorse

Libri

Recommended