Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

安装和运行 适用于 Titan 的 DynamoDB 存储后端

适用于 Titan 的 DynamoDB 存储后端 在 GitHub 上作为 Apache Maven 项目提供,可在 Windows、Mac 或 Linux 计算机上运行。适用于 Titan 的 DynamoDB 存储后端 支持 Java 1.7(或更高版本)和 Apache Maven。要获取 Java,请转至 http://java.com/download/。要获取 Apache Maven,请转至 http://maven.apache.org/。按照以下步骤操作,将 适用于 Titan 的 DynamoDB 存储后端 安装到本地 Maven 存储库中并测试安装情况。

重要

本文档适用于 适用于 Titan 的 DynamoDB 存储后端 版本 1.0。有关早期版本的信息,请参阅适用于 Titan 0.4.4 的 README.md 文件适用于 Titan 0.5.4 的 README.md 文件

第一个示例使用 Marvel Universe Social Graph。此图形将漫画人物作为顶点,将这些人物所在的各个漫画作为边缘。有关 Marvel Universe Social Graph 的更多信息,请转至 Marvel Universe Social Graph 数据集网页

加载 Marvel Universe Social Graph 的子集

  1. 在您要在其中设置 Git 项目的文件夹内,运行以下命令以克隆 Git 项目。

    Copy
    git clone https://github.com/awslabs/dynamodb-titan-storage-backend.git

    注意

    此 Git 命令适用于 Titan 版本 1.0.0。有关适用于 Titan 0.4.4 的 Git 命令,请参阅适用于 Titan 0.4.4 的 README.md 文件。有关适用于 Titan 0.5.4 的 Git 命令,请参阅适用于 Titan 0.5.4 的 README.md 文件

  2. 更改到 dynamodb-titan-storage-backend 文件夹中,然后键入以下命令,使用 Maven 安装程序包。

    Copy
    mvn install

    在您安装 Maven 时,它会从 Maven 存储库中下载包括 Titan 程序包在内的其他依赖项。

  3. 打开另一个命令提示符窗口,然后键入以下命令,在计算机上启动 DynamoDB(用于测试图形数据库)。

    Copy
    mvn test -Pstart-dynamodb-local
  4. 在上一个命令提示符窗口中,键入以下命令,清除先前的 Elasticsearch 索引。

    Copy
    rm -rf /tmp/searchindex
  5. 键入以下命令,安装带 适用于 Titan 的 DynamoDB 存储后端 的 Gremlin Server。

    Copy
    src/test/resources/install-gremlin-server.sh
  6. 键入以下命令,将目录更改为 Gremlin Server 主目录。

    Copy
    cd server/dynamodb-titan100-storage-backend-1.0.0-hadoop1
  7. 键入以下命令,启动已配置为在本地设备上使用 DynamoDB 的 Gremlin Server。

    Copy
    bin/gremlin-server.sh ${PWD}/conf/gremlin-server/gremlin-server-local.yaml
  8. 在另一个命令提示符窗口中,将目录更改为 Gremlin Server 主目录。

    然后,键入以下命令启动 Gremlin shell。

    Copy
    bin/gremlin.sh
  9. 在 Gremlin shell 中,键入以下命令连接到 Gremlin Server。

    Copy
    :remote connect tinkerpop.server conf/remote.yaml

    注意

    冒号 (:) 是该命令必不可少的一部分。

  10. 键入以下命令,加载 Marvel Universe Social Graph 的前 100 行。

    Copy
    :> com.amazon.titan.example.MarvelGraphFactory.load(graph, 100, false)

    重要

    该命令开头的 :> 字符必不可少。它们向 shell 表明,这些命令在您在上个命令中连接到的 Gremlin Server 上运行。

    剩余步骤均使用这一语法。

    要增加测试行的数量并创建一个更大的图形,请提高第二个参数的值以使用 MarvelGraphFactory.load() 方法。

  11. 键入以下命令,打印武器是盾牌或钢爪的人物及其所在的漫画。

    Copy
    :> g.V().as('character').has('weapon', within('shield','claws')).out('appeared').as('comic-book').select('character','comic-book')
  12. 键入以下命令,打印武器不是盾牌或钢爪的人物及其所在的漫画。

    Copy
    :> g.V().as('character').has('weapon', without('shield','claws')).out('appeared').as('comic-book').select('character','comic-book')
  13. 键入以下命令,打印漫画 AVF 4 中的人物的分类表。

    Copy
    :> g.V().has('comic-book', 'AVF 4').in('appeared').values('character').order()
  14. 打印漫画 AVF 4 中使用的武器不是盾牌或钢爪的人物的分类表。

    Copy
    :> g.V().has('comic-book', 'AVF 4').in('appeared').has('weapon', without('shield','claws')).values('character').order()

加载 Graph of the Gods

Graph of the Gods 是内置在 Titan 中用于 Titan 文档的示例图形。此过程向您演示如何使用 适用于 Titan 的 DynamoDB 存储后端 加载 Graph of the Gods,因此您可以按照 Titan 入门文档中的教程进行操作。

  1. 按照 Marvel 图形部分中的步骤 1 到 9 操作。

  2. 键入以下命令,加载 Graph of the Gods。

    Copy
    :> com.thinkaurelius.titan.example.GraphOfTheGodsFactory.load(graph)
  3. 转至 Titan 入门文档,然后按照该设置流程的其余说明从 Global Graph Indices 部分开始操作。

    重要

    您需要为各项命令加上 :> 前缀,以便在 Gremlin Server 终端节点上远程执行这些命令。

    此外,您还必须在包含本地变量的遍历所在行的前面加上本地变量定义。

    例如,要远程运行遍历 g.V(hercules).out('father', 'mother').values('name'),您需要针对 Hercules 在其前面加上以下定义:

    Copy
    :> hercules = g.V(saturn).repeat(__.in('father')).times(2).next(); g.V(hercules).out('father', 'mother').values('name')

    但是,由于 saturn 也是本地变量,您还必须对其进行定义:

    Copy
    :> saturn = g.V().has('name', 'saturn').next(); hercules = g.V(saturn).repeat(__.in('father')).times(2).next(); g.V(hercules).out('father', 'mother').values('name')

之所以需要在前面加上这些定义,是因为本地变量的状态不会因每次远程执行脚本而发生转移,可在 Gremlin Server 启动时运行的脚本中定义的变量除外。有关更多信息,请参阅 Gremlin Server YAML 文件中的 scriptEngines/gremlin-groovy/scripts 列表元素。