欢迎使用 Parallel Graph Analytics (PGX)


PGX 是什么?

PGX 是一个快速、并行的内存中图形分析框架。使用 PGX,用户可以将图形加载到主内存中,非常高效地运行各种图形算法,浏览结果并将其导出到文件系统中。

 

PGX 1.2.0 新特性

我们在 PGX 新版本中增加了很棒的特性,如 PGQL(一种用于图模式匹配的查询语言)、一种新算法和若干 API,以帮助您基于图等内容构建一个推荐引擎。查看我们的新特性页面或阅读更详细的更改日志

 

我能用 PGX 做什么?

  • 应用图模式匹配:PGX 包括一种类似 SQL 的查询语言,根据子图的连接和/或属性进行模式匹配。匹配的子图可进行进一步的分析。

  • 运行并行、高性能的图形算法:PGX 提供多种常见图形算法的内置实现。用户只需调用相应的方法即可对他们的图数据集应用这些算法。

  • 运行自定义的图形算法:PGX 还能够执行自定义的(即用户提供的)图形算法。用户可以使用 Green-Marl DSL 编写自己的图形算法,然后将其提供给 PGX。使用并行化编译器将提供的 Green-Marl 程序转换为由 PGX 执行。

  • 变异图形:复杂的图形分析通常包括多个步骤,其中一些步骤需要图形变异操作。例如,您可能希望创建一个无向图,或者删除节点间重复的边。PGX 提供了此类操作快速、并行的内置实现。

  • 浏览并导出结果:一旦分析完成,用户就可以浏览分析的结果并将其导出到文件系统中。


PGX 有哪些主要优势?

  • 快速、并行的内存中执行:PGX 是一个快速、并行的内存中图形分析框架。PGX 采用轻型内存中数据结构,允许快速执行图形算法。而且,PGX 还通过运行并行化的图形算法来利用现代计算机系统的多个 CPU。请注意,不仅内置算法并行运行,自定义的图形算法在 DSL 编译器的帮助下也自动并行运行。

  • 丰富的内置算法:PGX 提供了多种常见图形算法的内置实现,包括计算各种中心性量度、找到最短路径、发现/评估集群和组件以及预测未来的边等。(注:OTN 公开发行版仅包含这些算法的一小部分。如果您想去除此限制,请参见文档或者联系我们。

  • 自定义算法易于实现、高效执行:PGX 采用 Green-Marl DSL 是因为自定义算法易于实现且可高效执行。用户可以在 Green-Marl 中使用高级的、图形特有的数据类型和运算符直观地编写自己的图形算法。PGX 通过并行运行给定的 Green-Marl 程序并将其映射到 PGX 内部 API 中,可以高效地执行给定的 Green-Marl 程序。

  • 交互式 Shell:PGX 提供了一个 shell 应用,供用户以交互的方式使用 PGX 特性。也就是说,用户只需启动 shell,从 shell 命令行键入命令,而不必为其分析创建一个完整的 Java 应用。

  • 作为 Web 服务部署:PGX 附带了一个 Web 应用,可以部署在 Weblogic、Jetty 或 Tomcat 等容器中。这让您可以在远程实例上使用您的交互式 shell 和其他 API。您可以在服务器级计算机上部署 PGX,并让多个客户端共享对这台计算机资源的访问。

  • Hadoop 支持:您可以使用 PGX 在 Hadoop 集群上分析图。您可以将 PGX 作为 Yarn 应用运行,并通过交互式 shell 或其他 API 进行连接。PGX 还支持从 HDFS 加载和存储图。


我如何使用 PGX?PGX API 什么样?

可以通过两种方式使用 PGX:

  1. 嵌入 Java 应用中:由于 PGX 作为一组 Java 类实现,用户可以将 PGX 作为一个库嵌入 Java 应用中。但是,用户需要负责相应地启动 PGX 才能调用 PGX 方法。

  2. 通过 shell 交互式使用:用户还可以通过 PGX shell 来使用 PGX,就像它是一个单独的应用。用户启动 PGX shell 之后,即可使用 shell 轻松地加载图形,调用算法以及浏览/导出结果。

  3. 寄存器使用:针对上述两个用例,您可以在本地或远程使用 PGX。在远程情况下,您需要在 Web 服务器上启动 PGX,为客户端提供要连接的主机名和端口。如果您在本地使用 PGX,它将只启动本地 PGX 实例,不会产生任何 HTTP 开销。

有关如何使用 PGX 的更多信息,请查看教程

 

PGX 的许可什么样?

这个 PGX 版本依据 OTN 许可发布。有关 OTN 版本及其限制的更多详细信息,请参见文档


我如何在自己的系统中安装 PGX?

请参见安装文档,其中解释了如何安装 PGX。