OrientDB

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(图集)
(简介)
 
(未显示1个用户的31个中间版本)
第2行: 第2行:
  
 
OrientDB 是一个[[Java]]开发的开源(Apache v2)[[NoSQL]][[document database|文档]]和[[graph database|图形数据库]],也通过 [http://orientdb.com/docs/last/SQL.html OrientDB SQL 支持 SQL]。
 
OrientDB 是一个[[Java]]开发的开源(Apache v2)[[NoSQL]][[document database|文档]]和[[graph database|图形数据库]],也通过 [http://orientdb.com/docs/last/SQL.html OrientDB SQL 支持 SQL]。
 +
 +
==新闻==
 +
*[http://orientdb.com/orientdb-wins-infoworld-bossie-award/ OrientDB Wins InfoWorld Bossie Award] (2015.9.21)
 +
 +
==简介==
 +
allidus Software在2017年收购了OrientDB,SAP在2018年进而收购了Callidus。
  
 
==安装==
 
==安装==
第12行: 第18行:
  
 
==指南==
 
==指南==
./console.sh
+
启动OrentDB服务器 ./dserver.sh
  orientdb> CONNECT PLOCAL:../databases/GratefulDeadConcerts admin admin
+
./console.sh
 +
  orientdb> CONNECT PLOCAL:../databases/GratefulDeadConcerts admin admin 或
 +
orientdb> CONNECT REMOTE:127.0.0.1/GratefulDeadConcerts admin admin
 
  orientdb {db=GratefulDeadConcerts}> list classes
 
  orientdb {db=GratefulDeadConcerts}> list classes
 
  orientdb {db=GratefulDeadConcerts}> select from ouser
 
  orientdb {db=GratefulDeadConcerts}> select from ouser
第22行: 第30行:
 
  http://localhost:2491 // OrientDB Workbench, 设置Server, 端口:2480
 
  http://localhost:2491 // OrientDB Workbench, 设置Server, 端口:2480
 
  admin/admin
 
  admin/admin
 +
 +
==数据集==
 +
[http://orientdb.com/public-databases/ OrientDB公共数据集]
 +
 +
==SQL==
 +
*[http://docs.huihoo.com/orientdb/2.2.x/SQL.html SQL Reference] [https://github.com/orientechnologies/orientdb/blob/master/core/src/main/grammar/OrientSQL.jjt SQL语法]
 +
OrientDB数据库有四种记录(record)类型:
 +
*Document, JSON格式
 +
*RecordBytes, BLOB二进制
 +
*Vertex
 +
*Edge
 +
每当生成一条记录(record), 系统会自动分配一个唯一的标识:Record ID 或 RID,格式:#<cluster>:<position>
 +
 +
==对象模型==
 +
在 OrientDB 里,一个类(class)定义记录(record)的类型(type),ObjectDatabase 让 Java Objects (POJO classes) 到 文档 Records 的转换和绑定更透明、更简单。
 +
 +
*使用 Java 反射(Reflection) 注册类并且使用 [http://www.jboss.org/javassist Javassist Proxy] 管理 Object-to-Document 转换。
 +
*[http://orientdb.com/docs/last/Object-Database.html Object API] [http://orientdb.com/docs/last/Object-2-Record-Java-Binding.html Object Binding] [http://orientdb.com/docs/last/Java-Schema-Api.html Schema API]
 +
 +
{| class="wikitable"
 +
|-
 +
! Relational Model
 +
! Object Model
 +
! OrientDB Object Model
 +
|-
 +
| Table
 +
| Class
 +
| Class or Cluster
 +
|-
 +
| Row
 +
| Object
 +
| Document or Vertex
 +
|-
 +
| Column
 +
| Object property
 +
| Document field or Vertex/Edge property
 +
|-
 +
| Relationship
 +
| Pointer
 +
| Link
 +
|}
 +
一个简单的用户表
 +
create class user extends V
 +
create property user.image Binary
 +
create property user.name string
 +
 +
==键/值模型==
 +
{| class="wikitable"
 +
|-
 +
! Relational Model
 +
! Key/Value Model
 +
! OrientDB Key/Value Model
 +
|-
 +
| Table
 +
| Bucket
 +
| Class or Cluster
 +
|-
 +
| Row
 +
| Key/Value pair
 +
| Document
 +
|-
 +
| Column
 +
| not available
 +
| Document field or Vertex/Edge property
 +
|-
 +
| Relationship
 +
| not available
 +
| Link
 +
|}
 +
 +
==文档模型==
 +
 +
{| class="wikitable"
 +
|-
 +
! Relational Model
 +
! Document Model
 +
! OrientDB Document Model
 +
|-
 +
| Table
 +
| Collection
 +
| Class or Cluster
 +
|-
 +
| Row
 +
| Document
 +
| Document
 +
|-
 +
| Column
 +
| Key/value pair
 +
| Document field
 +
|-
 +
| Relationship
 +
| not available
 +
| Link
 +
|}
 +
 +
==图模型==
 +
{| class="wikitable"
 +
|-
 +
! Relational Model
 +
! Graph Model
 +
! OrientDB Graph Model
 +
|-
 +
| Table
 +
| Vertex and Edge Class
 +
| Class that extends "V" (for Vertex) and "E" (for Edges)
 +
|-
 +
| Row
 +
| Vertex
 +
| Vertex
 +
|-
 +
| Column
 +
| Vertex and Edge property
 +
| Vertex and Edge property
 +
|-
 +
| Relationship
 +
| Edge
 +
| Edge
 +
|}
 +
 +
*[[Gremlin]]
 +
*[http://orientdb.com/docs/last/Gremlin.html Gremlin API]
  
 
==对比==
 
==对比==
第37行: 第166行:
 
*[https://github.com/eduardoejp/clj-orient clj-orient] [https://github.com/eduardoejp/clj-blueprints clj-blueprints]
 
*[https://github.com/eduardoejp/clj-orient clj-orient] [https://github.com/eduardoejp/clj-blueprints clj-blueprints]
  
==图书==
+
==Android==
*[http://book.huihoo.com/gitbook/orientdb-manual/2.0/ OrientDB Manual]
+
*[https://github.com/wuman/orientdb-android OrientDB-Android]
 +
 
 +
==培训==
 +
*[https://www.udemy.com/user/orienttechnologies/ OrientDB @ Udemy]
  
 
==用户==
 
==用户==
 
*[[BaasBox]]
 
*[[BaasBox]]
 +
*[http://www.bloorresearch.com/blog/im-blog/dell-statistica/ Dell Statistica]
 +
*[https://www.cisco.com/ Cisco]
 +
*[https://www.accenture.com Accenture]
 +
*[https://home.kpmg.com/ KPMG]
 +
*[https://www.ericsson.com Ericsson]
 +
[http://orientdb.com/customers/ 更多用户>>>]
  
 
==图集==
 
==图集==
第53行: 第191行:
 
image:orientdb-storage-structure.png|存储结构
 
image:orientdb-storage-structure.png|存储结构
 
image:orientdb-transaction-remote.png|事务处理
 
image:orientdb-transaction-remote.png|事务处理
 +
image:orientdb-teleporter-workflow.png|Teleporter
 +
image:Graph-and-RDF-databases-2016.jpg|图数据库研究报告2016
 
</gallery>
 
</gallery>
  
第58行: 第198行:
 
*[http://orientdb.com OrientDB官网]
 
*[http://orientdb.com OrientDB官网]
 
*[https://github.com/orientechnologies/orientdb OrientDB @ GitHub]
 
*[https://github.com/orientechnologies/orientdb OrientDB @ GitHub]
 +
*[http://docs.huihoo.com/orientdb/ OrientDB文档]
 
*[https://github.com/weinberger/nosql-tests NoSQL benchmark tests for documents and graphs] [http://www.oschina.net/news/63333/performance-comparison-between-arangodb ArangoDB,MongoDB,Neo4j 和 OrientDB 性能比较]
 
*[https://github.com/weinberger/nosql-tests NoSQL benchmark tests for documents and graphs] [http://www.oschina.net/news/63333/performance-comparison-between-arangodb ArangoDB,MongoDB,Neo4j 和 OrientDB 性能比较]
  
第65行: 第206行:
 
[[category:database]]
 
[[category:database]]
 
[[category:java]]
 
[[category:java]]
 +
[[category:huihoo]]

2019年4月4日 (四) 09:06的最后版本

OrientDB-90x90.gif

OrientDB 是一个Java开发的开源(Apache v2)NoSQL文档图形数据库,也通过 OrientDB SQL 支持 SQL

目录

[编辑] 新闻

[编辑] 简介

allidus Software在2017年收购了OrientDB,SAP在2018年进而收购了Callidus。

[编辑] 安装

下载二进制或编译源码

$ git clone https://github.com/orientechnologies/orientdb
$ git checkout develop
$ cd orientdb
$ mvn clean install -DskipTests
$ ls -l distribution/target/

[编辑] 指南

启动OrentDB服务器 ./dserver.sh

./console.sh
orientdb> CONNECT PLOCAL:../databases/GratefulDeadConcerts admin admin 或 
orientdb> CONNECT REMOTE:127.0.0.1/GratefulDeadConcerts admin admin
orientdb {db=GratefulDeadConcerts}> list classes
orientdb {db=GratefulDeadConcerts}> select from ouser
orientdb {db=GratefulDeadConcerts}> info class ouser
orientdb {db=GratefulDeadConcerts}> select expand(classes) from metadata:schema
http://localhost:2480/ // OrientDB Studio, 若:OrientTokenHandler: true, enabled后,此帐号将无法登录 
root/orientdb
http://localhost:2491 // OrientDB Workbench, 设置Server, 端口:2480
admin/admin

[编辑] 数据集

OrientDB公共数据集

[编辑] SQL

OrientDB数据库有四种记录(record)类型:

  • Document, JSON格式
  • RecordBytes, BLOB二进制
  • Vertex
  • Edge

每当生成一条记录(record), 系统会自动分配一个唯一的标识:Record ID 或 RID,格式:#<cluster>:<position>

[编辑] 对象模型

在 OrientDB 里,一个类(class)定义记录(record)的类型(type),ObjectDatabase 让 Java Objects (POJO classes) 到 文档 Records 的转换和绑定更透明、更简单。

Relational Model Object Model OrientDB Object Model
Table Class Class or Cluster
Row Object Document or Vertex
Column Object property Document field or Vertex/Edge property
Relationship Pointer Link

一个简单的用户表

create class user extends V
create property user.image Binary
create property user.name string

[编辑] 键/值模型

Relational Model Key/Value Model OrientDB Key/Value Model
Table Bucket Class or Cluster
Row Key/Value pair Document
Column not available Document field or Vertex/Edge property
Relationship not available Link

[编辑] 文档模型

Relational Model Document Model OrientDB Document Model
Table Collection Class or Cluster
Row Document Document
Column Key/value pair Document field
Relationship not available Link

[编辑] 图模型

Relational Model Graph Model OrientDB Graph Model
Table Vertex and Edge Class Class that extends "V" (for Vertex) and "E" (for Edges)
Row Vertex Vertex
Column Vertex and Edge property Vertex and Edge property
Relationship Edge Edge

[编辑] 对比

[编辑] 驱动

通过三种方式支持不同的语言驱动程序

  • Native binary remote, 使用 binary protocol
  • HTTP REST/JSON, 使用 HTTP protocol
  • Java wrapped

一些语言驱动程序

[编辑] Android

[编辑] 培训

[编辑] 用户

更多用户>>>

[编辑] 图集

[编辑] 链接

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱