欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/Agda, C++/Erlang/Lisp
OrientDB
来自开放百科 - 灰狐
(版本间的差异)
小 |
小 (→简介) |
||
(未显示1个用户的40个中间版本) | |||
第1行: | 第1行: | ||
[[Image:OrientDB-90x90.gif|right]] | [[Image:OrientDB-90x90.gif|right]] | ||
− | OrientDB 是一个[[Java]]开发的开源(Apache v2)[[NoSQL]] | + | 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。 | ||
==安装== | ==安装== | ||
+ | [http://orientdb.com/download/ 下载二进制]或编译源码 | ||
+ | $ git clone https://github.com/orientechnologies/orientdb | ||
+ | $ git checkout develop | ||
+ | $ cd orientdb | ||
+ | $ mvn clean install -DskipTests | ||
+ | $ ls -l distribution/target/ | ||
==指南== | ==指南== | ||
− | ./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 | ||
orientdb {db=GratefulDeadConcerts}> info class ouser | orientdb {db=GratefulDeadConcerts}> info class ouser | ||
orientdb {db=GratefulDeadConcerts}> select expand(classes) from metadata:schema | orientdb {db=GratefulDeadConcerts}> select expand(classes) from metadata:schema | ||
− | http://localhost:2480/ // OrientDB Studio | + | http://localhost:2480/ // OrientDB Studio, 若:OrientTokenHandler: true, enabled后,此帐号将无法登录 |
root/orientdb | root/orientdb | ||
+ | http://localhost:2491 // OrientDB Workbench, 设置Server, 端口:2480 | ||
+ | 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] | ||
==对比== | ==对比== | ||
第19行: | 第156行: | ||
*[http://orientdb.com/orientdb-vs-neo4j/ OrientDB vs Neo4j] | *[http://orientdb.com/orientdb-vs-neo4j/ OrientDB vs Neo4j] | ||
− | == | + | ==驱动== |
− | *[http:// | + | [http://orientdb.com/docs/last/Programming-Language-Bindings.html 通过三种方式支持不同的语言驱动程序] |
+ | *Native binary remote, 使用 binary protocol | ||
+ | *HTTP REST/JSON, 使用 HTTP protocol | ||
+ | *Java wrapped | ||
+ | 一些语言驱动程序 | ||
+ | *[http://orientdb.com/docs/last/Java-API.html Java API] | ||
+ | *[http://orientdb.com/docs/last/Scala-Language.html Scala API] | ||
+ | *[https://github.com/eduardoejp/clj-orient clj-orient] [https://github.com/eduardoejp/clj-blueprints clj-blueprints] | ||
+ | |||
+ | ==Android== | ||
+ | *[https://github.com/wuman/orientdb-android OrientDB-Android] | ||
+ | |||
+ | ==培训== | ||
+ | *[https://www.udemy.com/user/orienttechnologies/ OrientDB @ Udemy] | ||
+ | |||
+ | ==用户== | ||
+ | *[[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/ 更多用户>>>] | ||
==图集== | ==图集== | ||
第28行: | 第187行: | ||
image:orientdb-api-stack.png|API Stack | image:orientdb-api-stack.png|API Stack | ||
image:orientdb-security-user-role.png|安全 | image:orientdb-security-user-role.png|安全 | ||
+ | image:orientdb-roles-permissions.png|角色权限 | ||
+ | image:orientdb-distributed-sharding-class.png|分布式分区 | ||
+ | image:orientdb-storage-structure.png|存储结构 | ||
+ | image:orientdb-transaction-remote.png|事务处理 | ||
+ | image:orientdb-teleporter-workflow.png|Teleporter | ||
+ | image:Graph-and-RDF-databases-2016.jpg|图数据库研究报告2016 | ||
</gallery> | </gallery> | ||
第33行: | 第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 性能比较] | ||
第40行: | 第206行: | ||
[[category:database]] | [[category:database]] | ||
[[category:java]] | [[category:java]] | ||
+ | [[category:huihoo]] |
2019年4月4日 (四) 09:06的最后版本
OrientDB 是一个Java开发的开源(Apache v2)NoSQL文档和图形数据库,也通过 OrientDB SQL 支持 SQL。
目录 |
[编辑] 新闻
- OrientDB Wins InfoWorld Bossie Award (2015.9.21)
[编辑] 简介
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
[编辑] 数据集
[编辑] 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) 注册类并且使用 Javassist Proxy 管理 Object-to-Document 转换。
- Object API Object Binding Schema API
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
[编辑] 培训
[编辑] 用户
[编辑] 图集
[编辑] 链接
分享您的观点