OrientDB - 快速指南


OrientDB - 概述

OrientDB 是一个开源 NoSQL 数据库管理系统。NoSQL 数据库提供了一种存储和检索非关系或非关系数据的机制,这些数据是指除表格数据之外的数据,例如文档数据或图形数据。NoSQL 数据库越来越多地用于大数据和实时 Web 应用程序。NoSQL 系统有时也被称为“Not Only SQL”,以强调它们可以支持类似 SQL 的查询语言。

OrientDB也属于NoSQL家族。OrientDB 是第二代分布式图形数据库,具有文档在一个产品中的灵活性,并具有开源的 Apache 2 许可证。在 OrientDB 之前,市场上已有多种 NoSQL 数据库,其中之一就是 MongoDB。

MongoDB 与 OrientDB

MongoDB 和 OrientDB 包含许多共同的功能,但引擎有根本的不同。MongoDB 是纯文档数据库,OrientDB 是带有图形引擎的混合文档数据库。

特征 MongoDB 东方数据库
人际关系 使用 RDBMS JOINS 创建实体之间的关系。它的运行成本很高,并且随着数据库规模的增加而无法扩展。 像关系数据库一样嵌入和连接文档。它使用来自图形数据库世界的直接、超快速的链接。
获取计划 昂贵的 JOIN 操作。 轻松返回带有互连文档的完整图表。
交易 不支持ACID事务,但支持Atomics操作。 支持 ACID 事务以及Atomics操作。
查询语言 有自己的基于 JSON 的语言。 查询语言是建立在 SQL 之上的。
索引 所有索引均使用 B-Tree 算法。 支持三种不同的索引算法,使用户可以获得最佳的性能。
存储引擎 使用内存映射技术。 使用存储引擎名称 LOCAL 和 PLOCAL。

OrientDB 是第一个多模型开源 NoSQL DBMS,它将图形的强大功能和文档的灵活性结合到可扩展的高性能操作数据库中。

OrientDB - 安装

OrientDB 安装文件有两个版本 -

  • 社区版- OrientDB 社区版由 Apache 在 0.2 许可证下作为开源发布

  • 企业版- OrientDB企业版作为专有软件发布,它是在社区版的基础上构建的。它作为社区版的扩展。

由于OrientDB社区版是开源的,本章介绍了OrientDB社区版的安装过程。

先决条件

社区版和企业版都可以在任何实现 Java 虚拟机 (JVM) 的操作系统上运行。OrientDB需要1.7或更高版本的Java。

使用以下步骤下载 OrientDB 并将其安装到您的系统中。

第 1 步 - 下载 OrientDB 二进制安装文件

OrientDB 附带内置安装文件,用于在您的系统上安装数据库。它为不同的操作系统提供不同的预编译二进制包(tarred 或zipped 包)。您可以从下载 OrientDB链接下载 OrientDB 文件。

下图为OrientDB的下载页面。您可以通过单击合适的操作系统图标来下载压缩或 tar 格式的文件。

OrientDB下载页面

下载后,您将在“下载”文件夹中获得二进制包。

步骤 2 - 提取并安装 OrientDB

以下是针对不同操作系统提取和安装 OrientDB 的过程。

在Linux中

下载后,您将在下载文件夹中获得orientdb-community-2.1.9.tar.gz文件。您可以使用以下命令来提取压缩文件。

$ tar –zxvf orientdb-community-2.1.9.tar.gz 

您可以使用以下命令将所有 OrientDB 库文件从orientdbcommunity-2.1.9 移动到 /opt/orientdb/目录。这里我们使用超级用户命令(sudo),因此您必须提供超级用户密码才能执行以下命令。

$ sudo mv orientdb-community-2.1.9 /opt/orientdb

您可以使用以下命令来注册orientdb命令和 Orient 服务器。

$ export ORIENTDB_HoME = /opt/orientdb 
$ export PATH = $PATH:$ORIENTDB_HOME/bin

在 Windows 中

  • 下载后,您将在下载文件夹中获得orientdb-community-2.1.9.zip文件。使用 zip 提取器提取 zip 文件。

  • 将解压的文件夹移动到C:\目录中。

  • 使用以下给定值创建两个环境变量 ORIENTDB_HOME 和 PATH 变量。

ORIENT_HOME = C:\orientdb-community-2.1.9 
PATH = C:\orientdb-community-2.1.9\bin

步骤 3 - 将 OrientDB 服务器配置为服务

通过执行上述步骤,您可以使用桌面版的 OrientDB。您可以使用以下步骤将 OrientDB 数据库服务器作为服务启动。该过程有所不同,具体取决于您的操作系统。

在Linux中

OrientDB 提供了一个名为orientdb.sh的脚本文件来将数据库作为守护进程运行。您可以在 OrientDB 安装目录的 bin/目录中找到它,即 $ORIENTDB_HOME/bin/orientdb.sh。

在运行脚本文件之前,您必须编辑orientdb.sh文件来定义两个变量。第一个是ORIENTDB_DIR,它定义安装目录 ( /opt/orientdb ) 的路径,第二个是ORIENTDB_USER,它定义要运行 OrientDB 的用户名,如下所示。

ORIENTDB_DIR = "/opt/orientdb" 
ORIENTDB_USER = "<username you want to run OrientDB>" 

使用以下命令将orientdb.sh文件复制到/etc/init.d/目录中以初始化并运行脚本。这里我们使用超级用户命令(sudo),因此您必须提供超级用户密码才能执行以下命令。

$ sudo cp $ORIENTDB_HOME/bin/orientdb.sh /etc/init.d/orientdb

使用以下命令将console.sh文件从OrientDB安装目录$ORIENTDB_HOME/bin复制到系统bin目录/usr/bin以访问Orient DB的控制台。

$ sudo cp $ ORIENTDB_HOME/bin/console.sh /usr/bin/orientdb

使用以下命令将 ORIENTDB 数据库服务器作为服务启动。在这里,您必须提供在 orientdb.sh 文件中提到的相应用户的密码才能启动服务器。

$ service orientdb start

使用以下命令了解 OrientDB 服务器守护程序正在哪个 PID 上运行。

$ service orientdb status

使用以下命令停止 OrientDB 服务器守护程序。在这里,您必须提供相应用户的密码,您在 orientdb.sh 文件中提到该密码以停止服务器。

$ service orientdb stop

在 Windows 中

OrientDB 是一个服务器应用程序,因此在开始关闭 Java 虚拟机进程之前它必须执行多项任务。如果你想手动关闭OrientDB服务器,那么你必须执行shutdown.bat文件。但是,当系统突然关闭而不执行上述脚本时,服务器实例无法正确停止。由操作系统通过一组指定信号控制的程序在Windows中称为服务。

我们必须使用Apache Common Daemon,它允许 Windows 用户将 Java 应用程序包装为 Windows 服务。以下是下载和注册 Apache 通用守护进程的过程。

  • 单击以下链接获取适用于 Windows 的 Apache Common Daemons

  • 点击common-daemon-1.0.15-bin-windows进行下载。

  • 解压common-daemon-1.0.15-bin-windows目录。解压后,您将在目录中找到prunsrv.exeprunmgr.exe文件。在那些 -

    • prunsrv.exe文件是一个服务应用程序,用于将应用程序作为服务运行。

    • prunmgr.exe文件是用于监视和配置 Windows 服务的应用程序。

  • 转到OrientDB安装文件夹→创建一个新目录并将其命名为service。

  • 复制prunsrv.exeprunmgr.exe将其粘贴到服务目录中。

  • 为了将 OrientDB 配置为 Windows 服务,您必须执行一个使用 prusrv.exe 作为 Windows 服务的简短脚本。

  • 在定义 Windows 服务之前,您必须根据服务名称重命名 prunsrv 和 prunmgr。例如分别为 OrientDBGraph 和 OrientDBGraphw。这里的 OrientDBGraph 是服务的名称。

  • 将以下脚本复制到名为installService.bat的文件中,并将其放入%ORIENTDB_HOME%\service\目录中。

:: OrientDB Windows Service Installation 
@echo off 
rem Remove surrounding quotes from the first parameter 
set str=%~1 
rem Check JVM DLL location parameter 
if "%str%" == "" goto missingJVM 
set JVM_DLL=%str% 
rem Remove surrounding quotes from the second parameter 
set str=%~2 
rem Check OrientDB Home location parameter 
if "%str%" == "" goto missingOrientDBHome 
set ORIENTDB_HOME=%str%  


set CONFIG_FILE=%ORIENTDB_HOME%/config/orientdb-server-config.xml 
set LOG_FILE = %ORIENTDB_HOME%/config/orientdb-server-log.properties 
set LOG_CONSOLE_LEVEL = info 
set LOG_FILE_LEVEL = fine 
set WWW_PATH = %ORIENTDB_HOME%/www 
set ORIENTDB_ENCODING = UTF8 
set ORIENTDB_SETTINGS = -Dprofiler.enabled = true 
-Dcache.level1.enabled = false Dcache.level2.strategy = 1 
set JAVA_OPTS_SCRIPT = -XX:+HeapDumpOnOutOfMemoryError

  
rem Install service 
OrientDBGraphX.X.X.exe //IS --DisplayName="OrientDB GraphEd X.X.X" ^ 
--Description = "OrientDB Graph Edition, aka GraphEd, contains OrientDB server
integrated with the latest release of the TinkerPop Open Source technology 
stack supporting property graph data model." ^ 

--StartClass = com.orientechnologies.orient.server.OServerMain 
-StopClass = com.orientechnologies.orient.server.OServerShutdownMain ^
 
--Classpath = "%ORIENTDB_HOME%\lib\*" --JvmOptions 
"Dfile.Encoding = %ORIENTDB_ENCODING%; Djava.util.logging.config.file = "%LOG_FILE%";
Dorientdb.config.file = "%CONFIG_FILE%"; -Dorientdb.www.path = "%WWW_PATH%";
Dlog.console.level = %LOG_CONSOLE_LEVEL%; -Dlog.file.level = %LOG_FILE_LEVEL%;
Dorientdb.build.number = "@BUILD@"; -DORIENTDB_HOME = %ORIENTDB_HOME%" ^ 

--StartMode = jvm --StartPath = "%ORIENTDB_HOME%\bin" --StopMode = jvm 
-StopPath = "%ORIENTDB_HOME%\bin" --Jvm = "%JVM_DLL%" 
-LogPath = "%ORIENTDB_HOME%\log" --Startup = auto  

EXIT /B  

:missingJVM 
echo Insert the JVM DLL location 
goto printUsage 
 
:missingOrientDBHome 
echo Insert the OrientDB Home
goto printUsage 
 
:printUsage 
echo usage: 
echo     installService JVM_DLL_location OrientDB_Home 
EXIT /B 

该脚本需要两个参数 -

  • jvm.dll 的位置,例如 C:\ProgramFiles\java\jdk1.8.0_66\jre\bin\server\jvm.dll

  • OrientDB安装位置例如C:\orientdb-community-2.1.9

  • 当您执行 OrientDBGraph.exe 文件(原始 prunsrv)并双击它时,就会安装该服务。

  • 使用以下命令将服务安装到 Windows 中。

> Cd %ORIENTDB_HOME%\service 
> installService.bat "C:\Program Files\Java\jdk1.8.0_66\jre\bin\server
   \jvm.dll" C:\orientdb-community-2.1.9 

打开任务管理器服务,你会发现下面的截图,里面有注册的服务名。

任务管理器

步骤 4 - 验证 OrientDB 安装

此步骤使用以下步骤验证 OrientDB 数据库服务器安装。

  • 运行服务器。
  • 运行控制台。
  • 经营工作室。

根据操作系统,这是唯一的。

在Linux中

按照给定的过程验证 Linux 中的 OrientDB 安装。

运行服务器- 您可以使用以下命令来启动服务器。

$ cd $ORIENTDB_HOME/bin 
$ ./server.sh 

或者您可以使用以下命令将 OrientDB 服务器作为 UNIX 守护程序启动。

$ service orientdb start 

如果安装成功,您将收到以下输出。

          .                                           
          .`        `                                  
          ,      `:.                                   
         `,`    ,:`                                    
         .,.   :,,                                     
         .,,  ,,,                                      
    .    .,.:::::  ````                                 :::::::::     :::::::::    
    ,`   .::,,,,::.,,,,,,`;;                      .:    ::::::::::    :::    :::   
    `,.  ::,,,,,,,:.,,.`  `                       .:    :::      :::  :::     :::  
     ,,:,:,,,,,,,,::.   `        `         ``     .:    :::      :::  :::     :::  
      ,,:.,,,,,,,,,: `::, ,,   ::,::`   : :,::`  ::::   :::      :::  :::    :::   
       ,:,,,,,,,,,,::,:   ,,  :.    :   ::    :   .:    :::      :::  :::::::      
        :,,,,,,,,,,:,::   ,,  :      :  :     :   .:    :::      :::  :::::::::    
  `     :,,,,,,,,,,:,::,  ,, .::::::::  :     :   .:    :::      :::  :::     :::  
  `,...,,:,,,,,,,,,: .:,. ,, ,,         :     :   .:    :::      :::  :::     ::: 
    .,,,,::,,,,,,,:  `: , ,,  :     `   :     :   .:    :::      :::  :::     :::  
      ...,::,,,,::.. `:  .,,  :,    :   :     :   .:    :::::::::::   :::     :::  
           ,::::,,,. `:   ,,   :::::    :     :   .:    :::::::::     ::::::::::   
           ,,:` `,,.                                   
          ,,,    .,`                                   
         ,,.     `,                                          GRAPH DATABASE   
       ``        `.                                                           
                 ``                                          orientdb.com 
                 `    
				 
2016-01-20 19:17:21:547 INFO  OrientDB auto-config DISKCACHE = 1, 
   649MB (heap = 494MB os = 4, 192MB disk = 199, 595MB) [orientechnologies] 
2016-01-20 19:17:21:816 INFO  Loading configuration from:
   /opt/orientdb/config/orientdb-server-config.xml... [OServerConfigurationLoaderXml] 
2016-01-20 19:17:22:213 INFO  OrientDB Server v2.1.9-SNAPSHOT 
   (build 2.1.x@r; 2016-01-07 10:51:24+0000) is starting up... [OServer] 
2016-01-20 19:17:22:220 INFO  Databases directory: /opt/orientdb/databases [OServer] 
2016-01-20 19:17:22:361 INFO  Port 0.0.0.0:2424 busy, 
   trying the next available... [OServerNetworkListener] 
2016-01-20 19:17:22:362 INFO  Listening binary connections on 0.0.0.0:2425 
   (protocol v.32, socket = default) [OServerNetworkListener] 
... 
2016-01-20 19:17:22:614 INFO  Installing Script interpreter. WARN:
   authenticated clients can execute any kind of code into the server 
   by using the following allowed languages: 
   [sql] [OServerSideScriptInterpreter] 
2016-01-20 19:17:22:615 INFO  OrientDB Server v2.1.9-SNAPSHOT 
   (build 2.1.x@r; 2016-01-07 10:51:24+0000) is active. [OServer] 

运行控制台- 您可以使用以下命令在控制台下运行 OrientDB。

$ orientdb

如果安装成功,您将收到以下输出。

OrientDB console v.2.1.9-SNAPSHOT (build 2.1.x@r; 2016-01-07 10:51:24+0000) www.orientdb.com 
Type 'help' to display all the supported commands. 
Installing extensions for GREMLIN language v.2.6.0 
 
orientdb>

运行 Studio - 启动服务器后,您可以在浏览器上使用以下 URL ( http://localhost:2480/ )。您将得到以下屏幕截图。

运行工作室

在 Windows 中

按照给定的过程验证 Windows 中的 OrientDB 安装。

运行服务器- 您可以使用以下命令来启动服务器。

> cd %ORIENTDB_HOME%\bin 
> ./server.bat

如果安装成功,您将收到以下输出。

          .                                           
          .`        `                                  
          ,      `:.                                   
         `,`    ,:`                                    
         .,.   :,,    
		 .,,  ,,,                                      
    .    .,.:::::  ````                                 :::::::::     :::::::::    
    ,`   .::,,,,::.,,,,,,`;;                      .:    ::::::::::    :::    :::   
    `,.  ::,,,,,,,:.,,.`  `                       .:    :::      :::  :::     :::  
     ,,:,:,,,,,,,,::.   `        `         ``     .:    :::      :::  :::     :::  
      ,,:.,,,,,,,,,: `::, ,,   ::,::`   : :,::`  ::::   :::      :::  :::    :::   
       ,:,,,,,,,,,,::,:   ,,  :.    :   ::    :   .:    :::      :::  :::::::      
        :,,,,,,,,,,:,::   ,,  :      :  :     :   .:    :::      :::  :::::::::    
  `     :,,,,,,,,,,:,::,  ,, .::::::::  :     :   .:    :::      :::  :::     :::  
  `,...,,:,,,,,,,,,: .:,. ,, ,,         :     :   .:    :::      :::  :::     :::  
    .,,,,::,,,,,,,:  `: , ,,  :     `   :     :   .:    :::      :::  :::     :::  
      ...,::,,,,::.. `:  .,,  :,    :   :     :   .:    :::::::::::   :::     :::  
           ,::::,,,. `:   ,,   :::::    :     :   .:    :::::::::     ::::::::::   
           ,,:` `,,.                                   
          ,,,    .,`                                   
         ,,.     `,                                          GRAPH DATABASE   
       ``        `.                                                           
                 ``                                          orientdb.com 
                 `            
				 
2016-01-20 19:17:21:547 INFO  OrientDB auto-config DISKCACHE = 1,649MB 
   (heap = 494MB os = 4, 192MB disk = 199, 595MB) [orientechnologies] 
2016-01-20 19:17:21:816 INFO  Loading configuration from: 
   /opt/orientdb/config/orientdb-server-config.xml... 
   [OServerConfigurationLoaderXml] 
... 
2016-01-20 19:17:22:615 INFO  OrientDB Server v2.1.9-SNAPSHOT 
   (build 2.1.x@r; 2016-01-07 10:51:24+0000) is active. [OServer] 

运行控制台- 您可以使用以下命令在控制台下运行 OrientDB。

> %ORIENTDB_HOME%\bin\console.bat 

如果安装成功,您将收到以下输出。

OrientDB console v.2.1.9-SNAPSHOT (build 2.1.x@r; 2016-01-07 10:51:24+0000) www.orientdb.com 
Type 'help' to display all the supported commands. 
Installing extensions for GREMLIN language v.2.6.0 
 
orientdb\>

运行 Studio - 启动服务器后,您可以在浏览器上使用以下 URL ( http://localhost:2480/ )。您将得到以下屏幕截图。

运行工作室

OrientDB - 基本概念

OrientDB的主要特点是支持多模型对象,即支持Document、Graph、Key/Value和Real Object等不同模型。它包含一个单独的 API 来支持所有这四种模型。

文档模型

术语文档模型属于NoSQL数据库。这意味着数据存储在文档中,文档组称为集合。从技术上讲,文档是指一组键/值对,也称为字段或属性。

OrientDB 使用类、簇和链接等概念来存储、分组和分析文档。

下表说明了关系模型、文档模型和 OrientDB 文档模型之间的比较 -

关系模型文档模型OrientDB文档模型
桌子收藏类或簇
文档文档
柱子键/值对文档字段
关系无法使用关联

图模型

图数据结构是一种数据模型,可以以由边(弧)互连的顶点(节点)的形式存储数据。OrientDB图数据库的思想来自于属性图。顶点和边是图模型的主要工件。它们包含一些属性,可以使它们看起来类似于文档。

下表显示了图模型、关系数据模型和 OrientDB 图模型之间的比较。

关系模型图模型OrientDB图模型
桌子顶点和边类扩展“V”(对于顶点)和“E”(对于边)的类
顶点顶点
柱子顶点和边属性顶点和边属性
关系边缘边缘

键/值模型

键/值模型意味着数据可以以键/值对的形式存储,其中值可以是简单类型和复杂类型。它可以支持文档和图形元素作为值。

下表展示了关系模型、键/值模型和OrientDB键/值模型之间的比较。

关系模型键/值模型OrientDB键/值模型
桌子类或簇
键/值对文档
柱子无法使用文档字段或顶点/边属性
关系无法使用关联

对象模型

该模型已被面向对象编程继承,并支持类型之间的继承(子类型扩展超类型)、引用基类时的多态性以及编程语言中使用的对象的直接绑定

下表说明了关系模型、对象模型和 OrientDB 对象模型之间的比较。

关系模型对象模型OrientDB对象模型
桌子班级类或簇
目的文档或顶点
柱子对象属性文档字段或顶点/边属性
关系指针关联

在详细介绍之前,最好了解一下与 OrientDB 相关的基本术语。以下是一些重要的术语。

记录

您可以从数据库加载和存储在数据库中的最小单位。记录可以以四种类型存储。

  • 文档
  • 记录字节数
  • 顶点
  • 边缘

记录ID

当OrientDB生成一条记录时,数据库服务器自动为该记录分配一个单元标识符,称为RecordID(RID)。RID 类似于#<cluster>:<position>。<cluster>表示簇标识号,<position>表示记录在簇中的绝对位置。

文件

文档是 OrientDB 中最灵活的记录类型。文档是软类型的,由具有已定义约束的模式类定义,但您也可以插入没有任何模式的文档,即它也支持无模式模式。

可以通过 JSON 格式导出和导入轻松处理文档。例如,请查看以下 JSON 示例文档。它定义了文档详细信息。

{ 
   "id"        : "1201", 
   "name"      : "Jay", 
   "job"       : "Developer", 
   "creations" : [ 
      { 
         "name"    : "Amiga", 
         "company" : "Commodore Inc." 
      }, 
		
      { 
         "name"    : "Amiga 500", 
         "company" : "Commodore Inc." 
      } 
   ] 
} 

记录字节数

记录类型与 RDBMS 中的 BLOB 类型相同。OrientDB 可以加载和存储文档记录类型以及二进制数据。

顶点

OrientDB数据库不仅是文档数据库,也是图数据库。使用Vertex和Edge等新概念以图的形式存储数据。在图数据库中,最基本的数据单元是节点,在OrientDB中称为顶点。顶点存储数据库的信息。

边缘

有一种单独的记录类型称为“边”,它将一个顶点连接到另一个顶点。边是双向的,只能连接两个顶点。OrientDB中有两种类型的边,一种是常规的,另一种是轻量级的。

班级

类是一种数据模型,是从面向对象编程范例中得出的概念。基于传统的文档数据库模型,数据以集合的形式存储,而在关系数据库模型中数据以表的形式存储。OrientDB 遵循文档 API 和 OPPS 范例。作为一个概念,OrientDB 中的类与关系数据库中的表具有最密切的关系,但(与表不同)类可以是无模式、全模式或混合模式。类可以从其他类继承,创建类树。每个类都有自己的一个或多个簇(如果未定义,则默认创建)。

簇是一个重要的概念,用于存储记录、文档或顶点。简单来说,Cluster就是存储一组记录的地方。默认情况下,OrientDB 将为每个类创建一个集群。一个类的所有记录都存储在与该类同名的同一个簇中。您最多可以在数据库中创建 32,767(2^15-1) 个集群。

CREATE 类是用于创建具有特定名称的集群的命令。创建集群后,您可以通过在创建任何数据模型期间指定名称来使用集群来保存记录。

人际关系

OrientDB支持两种关系:引用关系和嵌入关系。引用关系意味着它存储到关系的目标对象的直接链接。嵌入关系意味着它将关系存储在嵌入它的记录中。这种关系比参考关系更强。

数据库

数据库是访问真实存储的接口。IT 人员了解查询、模式、元数据、索引等高级概念。OrientDB还提供多种数据库类型。有关这些类型的更多信息,请参阅数据库类型。

OrientDB - 数据类型

OrientDB 本身支持多种数据类型。以下是完整的表格。

先生。没有。类型描述
1 布尔值

仅处理 True 或 False 值。

Java 类型:java.lang.Boolean

最小值:0

最大:1

2 整数

32 位有符号整数。

Java 类型:java.lang.Interger

最小值:-2,147,483,648

最大:+2,147,483,647

3 短的

小 16 位有符号整数。

Java 类型:java.lang.short

最小值:-32,768

最大:32,767

4 长的

大 64 位有符号整数。

Java 类型:java.lang.Long

最小值:-2 63

最大值:+2 63 -1

5 漂浮

小数。

Java 类型:java.lang.Float

:2 -149

最大: (2-2 -23 )*2, 127

6 双倍的

高精度的十进制数。

Java 类型:Java.lang.Double。

最小值:2 -1074

最大:(2-2 -52 )*2 1023

7 约会时间

任何精度高达毫秒的日期。

Java 类型:java.util.Date

8 细绳

任何作为字母数字字符序列的字符串。

Java 类型:java.lang.String

9 二进制

可以包含任何值作为字节数组。

Java 类型:字节[]

最小值:0

最大:2,147,483,647

10 嵌入式

该记录包含在所有者内部。包含的记录没有 RecordId。

Java 类型:ORecord

11 嵌入列表

记录包含在所有者内部。所包含的记录没有 RecordId,只能通过导航所有者记录来访问。

Java 类型:列表<对象>

最小值:0

最大:41,000,000 件

12 嵌入式套装

记录包含在所有者内部。所包含的记录没有 RecordId,只能通过导航所有者记录来访问。

Java 类型:set<对象>

最小值:0

最大:41,000,000 件

13 嵌入地图

记录作为条目的值包含在所有者内部,而键只能是字符串。所包含的记录没有 RecordId,只能通过导航所有者 Record 来访问。

Java 类型:Map<String, ORecord>

最小值:0

最大:41,000,000 件

14 关联

链接到另一条记录。这是一种常见的一对一关系

Java 类型:ORID、<? 扩展 ORecord>

最小值:1

最大:32767:2^63-1

15 链接列表

到其他记录的链接。这是一种常见的一对多关系,其中仅存储 RecordId。

Java 类型:列表 <? 扩展 ORecord>

最小值:0

最大:41,000,000 件

16 链接集

到其他记录的链接。这是一种常见的一对多关系。

Java 类型:Set<? 扩展 ORecord>

最小值:0

最大:41,000,000 件

17 号 链接地图

链接到其他记录作为条目的值,而键只能是字符串。这是一种常见的一对多关系。仅存储 RecordId。

Java 类型:Map<String, ? 扩展记录>

最小值:0

最大:41,000,000 件

18 字节

单字节。用于存储小型 8 位有符号整数。

Java 类型:java.lang.Byte

最小值:-128

最大:+127

19 短暂的 任何未存储在数据库中的值。
20 日期

任意日期,如年、月、日。

Java 类型:java.util.Date

21 风俗

用于存储提供 Marshall 和 Unmarshall 方法的自定义类型。

Java 类型:OSerializedStream

最小值:0

最大值:x

22 十进制

不进行四舍五入的十进制数。

Java 类型:java.math.BigDecimal

23 链接包

作为特定 RidBag 的 RecordId 列表。

Java 类型:ORidBag

24 任何

不确定类型,用于指定混合类型的集合,并且为null。

在接下来的章节中,将讨论如何在 OrientDB 中使用这些数据类型。

OrientDB - 控制台模式

OrientDB 控制台是一个 Java 应用程序,用于针对 OrientDB 数据库和服务器实例工作。OrientDB 支持多种控制台模式。

互动模式

这是默认模式。只需执行以下脚本bin/console.sh(或MS Windows 系统中的bin/console.bat )即可启动控制台。确保有执行权限。

OrientDB console v.1.6.6 www.orientechnologies.com 
Type 'help' to display all the commands supported.
  
orientdb>

完成后,控制台就准备好接受命令。

批处理模式

要以批处理模式执行命令,请运行以下bin/console.sh(或MS Windows 系统中的bin/console.bat)脚本,传递所有用分号“;”分隔的命令。

orientdb> console.bat "connect remote:localhost/demo;select * from profile"

或者调用控制台脚本,以文本格式传递文件名,其中包含要执行的命令列表。命令必须用分号“;”分隔。

例子

Command.txt 包含要通过 OrientDB 控制台执行的命令列表。以下命令接受 command.txt 文件中的一批命令。

orientdb> console.bat commands.txt 

在批处理模式下,您可以通过将“ignoreErrors”变量设置为 true 来忽略错误,让脚本继续执行。

orientdb> set ignoreErrors true

启用回声

当您在管道中运行控制台命令时,您将需要显示它们。通过在开始时将其设置为属性来启用命令的“回显”。以下是在 OrientDB 控制台中启用 echo 属性的语法。

orientdb> set echo true

OrientDB - 创建数据库

OrientDB 数据库的 SQL 参考提供了多个用于创建、更改和删除数据库的命令。

以下语句是创建数据库命令的基本语法。

CREATE DATABASE <database-url> [<user> <password> <storage-type> [<db-type>]]

以下是有关上述语法中的选项的详细信息。

<database-url> - 定义数据库的 URL。URL 包含两部分,一是<mode>,二是<path>。

<mode> - 定义模式,即本地模式或远程模式。

<path> - 定义数据库的路径。

<user> - 定义要连接到数据库的用户。

<password> - 定义连接数据库的密码。

<storage-type> - 定义存储类型。您可以在 PLOCAL 和 MEMORY 之间进行选择。

例子

您可以使用以下命令创建名为 demo 的本地数据库。

Orientdb> CREATE DATABASE PLOCAL:/opt/orientdb/databses/demo

如果数据库创建成功,您将得到以下输出。

Database created successfully. 
Current database is: plocal: /opt/orientdb/databases/demo

orientdb {db = demo}>

OrientDB - 更改数据库

数据库是重要的数据模型之一,具有不同的属性,您可以根据需要进行修改。

以下语句是 Alter Database 命令的基本语法。

ALTER DATABASE <attribute-name> <attribute-value> 

其中<attribute-name>定义要修改的属性,<attributevalue>定义要为该属性设置的值。

下表定义了用于更改数据库的受支持属性的列表。

先生。属性名称描述
1 地位 定义数据库在不同属性之间的状态。
2 输入 设置导入状态。
3 默认簇ID 使用 ID 设置默认集群。默认为 2。
4 日期格式 将特定日期格式设置为默认值。默认情况下为“yyyy-MM-dd”。
5 日期时间格式 将特定日期时间格式设置为默认值。默认情况下为“yyyy-MM-dd HH:mm:ss”。
6 时区 设置特定时区。默认情况下,它是 Java 虚拟机 (JVM) 的默认时区。
7 地区国家 设置默认区域设置国家/地区。默认情况下,它是 JVM 的默认语言环境国家/地区。例如:“GB”。
8 本地语言 设置默认区域设置语言。默认情况下,它是 JVM 的默认区域设置语言。例如:“en”。
9 字符集 设置字符集的类型。默认情况下,它是 JVM 的默认字符集。例如:“utf8”。
10 集群选择 设置用于选择集群的默认策略。这些策略是随着类的创建而创建的。支持的策略有默认、循环和平衡。
11 最小簇 设置创建新类时自动创建的最小簇数。默认情况下为 1。
12 风俗 设置自定义属性。
13 验证 禁用或启用整个数据库的验证。

例子

从OrientDB-2.2版本开始,添加了新的SQL解析器,在某些情况下不允许使用常规语法。因此,在某些情况下我们必须禁用新的 SQL 解析器(StrictSQL)。您可以使用以下 Alter database 命令禁用 StrictSQL 解析器。

orientdb> ALTER DATABASE custom strictSQL = false 

如果命令执行成功,您将得到以下输出。

Database updated successfully

OrientDB - 备份数据库

与 RDBMS 一样,OrientDB 也支持备份和恢复操作。执行备份操作时,会使用ZIP算法将当前数据库的所有文件压缩成zip格式。通过启用自动备份服务器插件,可以自动使用此功能(备份)。

备份数据库或导出数据库是相同的,但是根据过程我们必须知道何时使用备份以及何时使用导出。

在进行备份时,它将创建数据库的一致副本,所有进一步的写入操作都将被锁定并等待完成备份过程。在此操作中,它将创建一个只读备份文件。

如果在备份时需要并发读写操作,则必须选择导出数据库而不是备份数据库。导出不会锁定数据库并允许在导出过程中并发写入。

以下语句是数据库备份的基本语法。

./backup.sh <dburl> <user> <password> <destination> [<type>]

以下是有关上述语法中的选项的详细信息。

<dburl> - 数据库位于本地或远程位置的数据库 URL。

<user> - 指定运行备份的用户名。

<password> - 提供特定用户的密码。

<destination> - 目标文件位置,说明存储备份 zip 文件的位置。

<type> - 可选的备份类型。它有两个选项之一。

  • 默认值 - 在备份期间锁定数据库。

  • LVM - 在后台使用 LVM 写时复制快照。

例子

将位于本地文件系统 /opt/orientdb/databases/demo 中的数据库演示备份到名为 example-demo.zip 的文件中,并位于当前目录中。

您可以使用以下命令来备份数据库演示。

$ backup.sh plocal: opt/orientdb/database/demo admin admin ./backup-demo.zip 

使用控制台

您可以使用 OrientDB 控制台执行相同的操作。在备份特定数据库之前,您必须首先连接到该数据库。您可以使用以下命令连接到名为 demo 的数据库。

orientdb> CONNECT PLOCAL:/opt/orientdb/databases/demo admin admin 

连接后,您可以使用以下命令将数据库备份到当前目录中名为“backup-demo.zip”的文件中。

orientdb {db=demo}> BACKUP DATABASE ./backup-demo.zip 

如果此命令成功执行,您将收到一些成功通知以及以下消息。

Backup executed in 0.30 seconds 

OrientDB - 恢复数据库

与RDBMS一样,OrientDB也支持恢复操作。只有从控制台模式才能成功执行此操作。

以下语句是恢复操作的基本语法。

orientdb> RESTORE DATABSE <url of the backup zip file>

例子

您必须仅从控制台模式执行此操作。因此,首先您必须使用以下 OrientDB 命令启动 OrientDB 控制台。

$ orientdb

然后,连接到相应的数据库以恢复备份。您可以使用以下命令连接到名为 demo 的数据库。

orientdb> CONNECT PLOCAL:/opt/orientdb/databases/demo admin admin

连接成功后,您可以使用以下命令从“backup-demo.zip”文件恢复备份。执行之前,请确保 backup-demo.zip 文件位于当前目录中。

Orientdb {db = demo}> RESTORE DATABASE backup-demo.zip

如果此命令成功执行,您将收到一些成功通知以及以下消息。

Database restored in 0.26 seconds 

OrientDB - 连接数据库

本章介绍如何从 OrientDB 命令行连接到特定数据库。它打开一个数据库。

以下语句是 Connect 命令的基本语法。

CONNECT <database-url> <user> <password>

以下是有关上述语法中的选项的详细信息。

<database-url> - 定义数据库的 URL。URL 包含两部分,第一部分是<mode>,第二部分是<path>。

<mode> - 定义模式,即本地模式或远程模式。

<path> - 定义数据库的路径。

<user> - 定义要连接到数据库的用户。

<password> - 定义连接数据库的密码。

例子

我们已经在前面的章节中创建了一个名为“demo”的数据库。在此示例中,我们将使用用户 admin 进行连接。

您可以使用以下命令连接到演示数据库。

orientdb> CONNECT PLOCAL:/opt/orientdb/databases/demo admin admin

如果连接成功,您将得到以下输出 -

Connecting to database [plocal:/opt/orientdb/databases/demo] with user 'admin'…OK 
Orientdb {db = demo}>

OrientDB - 断开数据库连接

本章介绍如何从 OrientDB 命令行断开与特定数据库的连接。它关闭当前打开的数据库。

以下语句是 Disconnect 命令的基本语法。

DISCONNECT

注意- 您只能在连接到特定数据库后才能使用此命令,并且它只会关闭当前正在运行的数据库。

例子

在此示例中,我们将使用我们在上一章中创建的名为“demo”的相同数据库。我们将断开与演示数据库的连接。

您可以使用以下命令来断开数据库连接。

orientdb {db = demo}> DISCONNECT

如果成功断开连接,您将得到以下输出 -

Disconnecting to database [plocal:/opt/orientdb/databases/demo] with user 'admin'…OK 
orientdb>

OrientDB - 信息数据库

本章介绍如何从 OrientDB 命令行获取特定数据库的信息。

以下语句是 Info 命令的基本语法。

info

注意- 您只能在连接到特定数据库后才能使用此命令,并且它将仅检索当前正在运行的数据库的信息。

例子

在此示例中,我们将使用我们在上一章中创建的名为“demo”的相同数据库。我们将从演示数据库中检索基本信息。

您可以使用以下命令来断开数据库连接。

orientdb {db = demo}> info

如果成功断开连接,您将得到以下输出。

Current database: demo (url = plocal:/opt/orientdb/databases/demo)
  
DATABASE PROPERTIES 
--------------------------------+---------------------------------------------+ 
 NAME                           | VALUE                                       | 
--------------------------------+---------------------------------------------+ 
 Name                           | null                                        | 
 Version                        | 14                                          | 
 Conflict Strategy              | version                                     | 
 Date format                    | yyyy-MM-dd                                  | 
 Datetime format                | yyyy-MM-dd HH:mm:ss                         | 
 Timezone                       | Asia/Kolkata                                | 
 Locale Country                 | IN                                          | 
 Locale Language                | en                                          | 
 Charset                        | UTF-8                                       | 
 Schema RID                     | #0:1                                        | 
 Index Manager RID              | #0:2                                        | 
 Dictionary RID                 | null                                        | 
--------------------------------+---------------------------------------------+

DATABASE CUSTOM PROPERTIES: 
 +-------------------------------+--------------------------------------------+ 
 | NAME                          | VALUE                                      | 
 +-------------------------------+--------------------------------------------+ 
 | strictSql                     | true                                       | 
 +-------------------------------+--------------------------------------------+  
CLUSTERS (collections) 
---------------------------------+-------+-------------------+----------------+ 
 NAME                            | ID    | CONFLICT STRATEGY | RECORDS        | 
---------------------------------+-------+-------------------+----------------+ 

OrientDB - 列表数据库

本章介绍如何从 OrientDB 命令行获取实例中所有数据库的列表。

以下语句是 info 命令的基本语法。

LIST DATABASES

- 仅在连接到本地或远程服务器后才能使用此命令。

例子

在检索数据库列表之前,我们必须通过远程服务器连接到本地主机服务器。需要提醒的是,连接localhost实例的用户名和密码分别为guest和guest,在orintdb/config/orientdb-server-config.xml文件中配置。

您可以使用以下命令连接到本地主机数据库服务器实例。

orientdb> connect remote:localhost guest 

它会询问密码。根据 guest 的配置文件密码也是 guest。如果连接成功,您将得到以下输出。

Connecting to remote Server instance [remote:localhost] with user 'guest'...OK 
orientdb {server = remote:localhost/}>

连接到本地主机数据库服务器后,您可以使用以下命令列出数据库。

orientdb {server = remote:localhost/}> list databases

如果成功执行,您将得到以下输出 -

Found 6 databases: 
* demo (plocal) 
* s2 (plocal) 
* s1 (plocal) 
* GratefulDeadConcerts (plocal) 
* s3 (plocal) 
* sample (plocal) 
orientdb {server = remote:localhost/}>

OrientDB - 冻结数据库

每当您想要使数据库状态为静态时,这意味着数据库不响应任何读写操作的状态。简单地说,数据库处于冻结状态。

在本章中,您可以学习如何从 OrientDB 命令行冻结数据库。

以下语句是冻结数据库命令的基本语法。

FREEZE DATABASE

注意- 仅在连接到远程或本地数据库中的特定数据库后才能使用此命令。

例子

在此示例中,我们将使用我们在上一章中创建的名为“demo”的相同数据库。我们将从 CLI 冻结该数据库。

您可以使用以下命令来冻结数据库。

Orientdb {db = demo}> FREEZE DATABASE

如果成功执行,您将得到以下输出。

Database 'demo' was frozen successfully

OrientDB - 发布数据库

在本章中,您可以学习如何通过OrientDB命令行将数据库从冻结状态释放。

以下语句是Release数据库命令的基本语法。

RELEASE DATABASE

注意- 仅在连接到处于冻结状态的特定数据库后才能使用此命令。

例子

在此示例中,我们将使用我们在上一章中创建的名为“demo”的相同数据库。我们将释放上一章中冻结的数据库。

您可以使用以下命令来释放数据库。

Orientdb {db = demo}> RELEASE DATABASE

如果成功执行,您将得到以下输出。

Database 'demo' was release successfully 

OrientDB - 配置数据库

在本章中,您可以学习如何通过OrientDB命令行显示特定数据库的配置。该命令适用于本地和远程数据库。

配置信息包含默认缓存是否启用、缓存的大小、负载因子值、映射的最大内存、节点页面大小、池的最小和最大大小等。

以下语句是 config database 命令的基本语法。

CONFIG

注意- 仅在连接到特定数据库后才能使用此命令。

例子

在此示例中,我们将使用我们在上一章中创建的名为“demo”的相同数据库。

您可以使用以下命令来显示演示数据库的配置。

Orientdb {db = demo}> CONFIG

如果成功执行,您将得到以下输出。

LOCAL SERVER CONFIGURATION: 
+---------------------------------------+-------------------------+ 
| NAME                                  | VALUE                   | 
+---------------------------------------+-------------------------+ 
| environment.dumpCfgAtStartup          | false                   | 
| environment.concurrent                | true                    | 
| environment.allowJVMShutdown          | true                    | 
| script.pool.maxSize                   | 20                      | 
| memory.useUnsafe                      | true                    | 
| memory.directMemory.safeMode          | true                    | 
| memory.directMemory.trackMode         | false                   | 
|………………………………..                         |                         | 
| storage.lowestFreeListBound           | 16                      | 
| network.binary.debug                  | false                   | 
| network.http.maxLength                | 1000000                 | 
| network.http.charset                  | utf-8                   | 
| network.http.jsonResponseError        | true                    | 
| network.http.json                     | false                   | 
| tx.log.fileType                       | classic                 | 
| tx.log.synch                          | false                   | 
| tx.autoRetry                          | 1                       | 
| client.channel.minPool                | 1                       | 
| storage.keepOpen                      | true                    | 
| cache.local.enabled                   | true                    | 
+---------------------------------------+-------------------------+ 
orientdb {db = demo}>

在上面的配置参数列表中,如果您想更改任何参数值,则可以使用 config set 和 get 命令轻松地从命令行完成此操作。

配置集

您可以使用CONFIG SET命令更新配置变量值。

以下语句是 config set 命令的基本语法。

CONFIG SET <config-variable> <config-value>

注意- 仅在连接到特定数据库后才能使用此命令。

例子

在此示例中,我们将使用我们在上一章中创建的名为“demo”的相同数据库。我们将 'tx.autoRetry' 变量值修改为 5。

您可以使用以下命令来设置演示数据库的配置。

orientdb {db = demo}> CONFIG SET tx.autoRetry 5 

如果成功执行,您将得到以下输出。

Local configuration value changed correctly

配置获取

您可以使用CONFIG GET命令显示配置变量值。

以下语句是 config get 命令的基本语法。

CONFIG GET <config-variable> 

注意- 仅在连接到特定数据库后才能使用此命令。

例子

在此示例中,我们将使用我们在上一章中创建的名为“demo”的相同数据库。我们将尝试检索“tx.autoRetry”变量值。

您可以使用以下命令来显示演示数据库的配置。

orientdb {db = demo}> CONFIG GET tx.autoRetry

如果成功执行,您将得到以下输出。

Local configuration: tx.autoRetry = 5 

OrientDB - 导出数据库

与 RDBMS 一样,OrientDB 也提供导出和导入数据库等功能。OrientDB使用JSON格式导出数据。默认情况下,导出命令使用 GZIP 算法来压缩文件。

导出数据库时,它不会锁定数据库,这意味着您可以对其执行并发读取和写入操作。这还意味着由于并发的读写操作,您可以创建该数据的精确副本。

在本章中,您可以学习如何从 OrientDB 命令行导出数据库。

以下语句是导出数据库命令的基本语法。

EXPORT DATABASE <output file>

注意- 仅在连接到特定数据库后才能使用此命令。

例子

在此示例中,我们将使用我们在上一章中创建的名为“demo”的相同数据库。您可以使用以下命令将数据库导出到名为“export-demo”的文件。

orientdb {db = demo}> EXPORT DATABASE ./export-demo.export

如果成功执行,它将根据操作系统创建一个名为“export-demo.zip”或“exportdemo.gz”的文件,您将得到以下输出。

Exporting current database to: DATABASE /home/linuxtp/Desktop/demo.export in 
GZipped JSON format ...  

Started export of database 'demo' to /home/linuxtp/Desktop/demo.export.gz... 
Exporting database info...OK 
Exporting clusters...OK (12 clusters) 
Exporting schema...OK (11 classes) 
Exporting records... 
- Cluster 'internal