第二章 启航
一起来看了下,您需要安装什么,哪些工具是您需要的,有了这些工具您就可以充分的使用本书中所包括的各个例子。最重要的事情是您需要下载阿帕奇 TinkerPop 项目的小精灵控制台。如下各节中我们从头到尾一起来演练一下您需要下载的工具,以及如何安装启动它们。
2.1 阿帕奇 TinkerPop 是什么?
阿帕奇 TinkerPop 是一个图计算框架,它也是阿岶奇软件基金会的顶级项目。这个项目的主页的网址如下:http://tinkerpop.apache.org/
这个项目包含的组件如下:
小精灵
• 图遍历查询语言
小精灵控制台
• 一个可以与本地或远程图数据库交互的脚本控制台
• http://tinkerpop.apache.org/docs/current/reference/#gremlin-console
小精灵服务器
• 允许远程的图主机通过 HTTP 或 WEB Sockets 与之连接
• http://tinkerpop.apache.org/docs/current/reference/#gremlin-server
廷克图
• 一个小的内存图数据库,它主要用途是用于学习。
• http://tinkerpop.apache.org/docs/current/reference/#tinkergraph-gremlin
编程接口
• 用 Java 语言编写的一系列编程接口
• http://tinkerpop.apache.org/javadocs/current/full/
文档
• 用户手册、入门文件和编程 API 接口文档
• http://tinkerpop.apache.org/docs/current/
• http://tinkerpop.apache.org/docs/current/reference/
有用的单据
• 一系列的例子或者“单据”,它们展示了如何使用小精灵查询语言来完成常见的面向图数据的任务。
小精灵查询
• http://tinkerpop.apache.org/docs/current/recipes/
编程接口允许图数据库的提供者去建构已启动了 TinkerPop 的系统,也允许应用开发者们编写与这些系统对话的程序。
任何启用了 TinkerPop 的图数据库都可以使用小精灵 Gremlin 查询语言和相应的应用程序接口。我们也可以使用 TinkerPop API 去编写客户端程序,编程的语言如 Java 等,然后用用客户端与启用了 TinkerPop 的图数据库会话。本书的绝大多数内容,我们都是通过小精灵控制台在本地的图数据库上工作的。但是第六章中,我们将一起看一下小精灵服务器和其它一些启用了 TinkerPop3 的环境。阿岶奇 TinkerPop 的大部分内容都是采用 Java8 开发的,但是采用其它语言如 Groovy 和 Python 与之绑定也是可行的。TinkerPop 中的一些部分是用 Groovy 语言开发的,尤其是小精灵控制台。这样做带来的好处是:在通过控制台执行查询,或者通过 REST API 向小精灵服务器发送查询请求时,我们可以把 Groovy 语言和小精灵语言一起使用。这些内容会在本书中全面的详细论述。
本书各个例子中用到的查询已经在阿帕奇 TinkerPop3.3 版本中测试了,用到了廷克图,小精灵控制台,和其它一些支持 TinkerPop3 的图存储。
2.2 小精灵控制台
小精灵控制台是一个相当标准的交互式解释器(读到-求值-输出循环)Shell。它是基于 Groovy 控制台的,如果您已经使用过一些其它的控制台环境,例如 Scala, Python 或者 Ruby 的控制台,您会觉得得心应手。控制台提供了低开销(仅需几秒就启动)和低准入,您可以在自己本地的电脑上开始探索图数据库的乐趣。事实上,控制台可以与本地或者远程的图数据库一起工作,但是在本书中为了让内容尽可能的简单,我们重点关注的是本地的图数据库。
为了更好的跟随本入门向导,您需要安装小精灵控制台,或者访问支持 TinkerPop3/小精灵的图存储,例如廷克图 TinkerGraph 或者杰森图 JanusGraph
无论您使用哪种环境,如果您要在支持阿岶奇 TinkerPop 的图上工作,您就得在您的机器上安装小精灵控制台。
2.2.1. 下载、安装和启动控制台
您可以从阿帕奇 TinkerPop 官方网站下载小精灵控制台http://tinkerpop.apache.org/
只需要几分钟,您就可以安装并运行它。您只需下载 ZIP 文件,并解压它,您就准备就绪了。Tinker Pop3 需要安装 Java8 近斯的一个版本。笔者所有的测试都是在 JAVA8 1.8.0_131 这个版本上进试运行的。小精灵控制台在 1.8.0_45 之前的版本上是不能正常工作的。如果您还没有安装 JAVA8 的环境,您可以从官方网址找到 JAVA8 并下载安装它。在编写独立运行的 Java 和 Groovy 程序时用到的 JAR 包也需要下载的,这部分内容将在以后的讨论。
当您运行小精灵控制台时,您可以看到标语或者标识,也有类似的一些提示信息。别担心这些附加的提示消息,我们会在稍后聊到它们。
您也可以通过输入:help 命令得到可用的命令的列表。注意:这些控制台使用的命令都有冒号的前缀。这样就控制台就可以把它们做为特殊字符识别出来,它们与小精灵查询语言的命令和 Groovy 命令是不同的。
以上列出来的所有命令中,:clear,简写是:c,这个命令特别重要,要记住,如果控制台的表现有点奇怪,或者您发现被类似“……1>”这样的内容卡住了,请您键入“:clear”这样事情就重置了。
这面所述内容似乎不值一提,小精灵控制台本就是基于 Groovy 控制台的,您可以直接向控制台输入合法的 Groovy 代码。当然也可以通过它来体验图和小精灵查询语言,当然如果您原意,您也可以把它当做一个桌面的计算器。
以简洁的形式把查询结果显示出来,这件事小精灵控制台做不不错。 如果您是工作在支持 Tinker Pop3 的图数据库上,而不是在小精灵控制台上工作(例如您使用 HTTP REST API 与小精灵服务器会话),那么您的返回结果将是 JSON 文档格式的,您可能需要编写代码来解析它。我们将在本书的后续篇章中探讨这一话题。
如果您想要看到运行各种查询的输出结果,大量的这类例子,您可以在“复合查询和它们的结果”这一节中找到它们,这一节中我们尽可能多的探讨了各种各样的查询。
您在使用小精灵控制台的时候用到的最多的就是它的交互模式。其实您也可以通过命令行参数传入一个文件名,加上前导的字符 e ,小精灵控制台就会执行这个文件并退出。例如,如果您有一个名叫“mycode.groovy”的文件,您可以从 windows 系统的命令行或者终端 terminal 去执行它,执行的命令如下:
如果您想让控制台执行您的脚本,但是执行后不要立即退出,那么您要用-i 而不是-e.
您可以通过在控制台输入 gremlin --help 得到全部命令行选项。您可以得到类似下面内容的帮助信息:
如果您想查看您已安装的 TinkerPop 的版本的信息,您可以从小精灵控制台输入下面的信息:
有一件不太明显或者显著的事情,那就是 Gremlin 控制台在启动的时候,它代表您引用了大量的 Java 类和枚举类型。这样在控制台中书写查询就相当容易了。这部分内容我们会在“需要注意的导入的类和枚举”这一节中研究。一旦您开始用 Java 或者其它语言编写独立运行的程序,您就需要知道控制台以您的名义做了哪些事情。做为稍后内容的预热,您可以控制台中先输入:show imports,看看它会返回些什么?
2.2.2. 在控制台中把输出的结果保存到文件中
有时我们有必要把控制台的一部分或者全部的内容保存到文件中。您可以通过使用:record 命令开启或者关闭录制到文件功能。
在下面的例子中,我们将使用:record start mylog.txt 命令开启录制功能,它会强制把所有输入控制台的命令和它们的运行输出结果保存到一个名为 mylog.txt 的文件中,直到您输入了:record stop 命令。命令 g.V().count().next()只是统计图中有多少个顶点。我们会在下一节中一起详细学习精灵图遍历和查询语言。
我们来看一个 mylog.txt 文件的内容,目前为止它包含的内容如下:
在本书的后序章节中,各个例子的输出结果里笔者将不再显示 gremlin>提示符或者==>输出提示,只是为了少一点混乱。您可以假定每条命令都已在小精灵控制台中输入并测试过。
如果您想了解控制台本身更多的内容,您可以参阅 TinkerPop 官方的文档,或者操作一下控制台,查看一下它内置的帮助。
版权声明: 本文为 InfoQ 作者【Geek_古藤模根】的原创文章。
原文链接:【http://xie.infoq.cn/article/cf6d4ea2a5200d664ae705702】。文章转载请联系作者。
评论