介绍
现实生活中的图形应用程序具有不同的工作负载、编程接口和存储格式。GraphScope 是解决这些变化的一站式解决方案。然而,由于以下原因,挑战仍然存在:
- 需要各种部署模式,例如低延迟的离线分析管道、需要高吞吐量的在线服务或受益于异构硬件的学习任务。
- 包罗万象的解决方案可能不是最佳选择,因为它可能会导致资源和成本需求增加。
GraphScope Flex 是 GraphScope 的不断发展。它采用模块化设计,可减少资源和成本需求,同时提供无缝、用户友好的界面以实现灵活部署。目前,GraphScope Flex 正在积极开发中。
construct
GraphScope Flex 堆栈(如图所示)由多个组件组成,用户可以像乐高积木一样组合这些组件来自定义其图形计算部署。组件分为三层:
- 应用层,包括预构建的算法库和GNN模型,以及SDK和API;
- 执行层,由多个专门针对各自领域的引擎组成;
- 存储层,它建立了一个统一的接口来管理跨各种存储后端的图形数据。
如何建造
依赖关系
请使用script/install_deps.sh安装依赖项。或者,您可以手动安装所选组件所需的依赖项子集。
请参阅script/install_deps.sh以获取完整的依赖项列表。
construct
GraphScope Flex 附带了一个有用的脚本flexbuild,允许您使用特定组件构建自定义堆栈。flexbuild有一些参数,其中两个对于构建至关重要:
- 参数COMPONENTS指定您要选择的“乐高积木”。可用组件如上图所示或在本--help节中列出。
- flag--app指定您要构建的构建工件的应用程序类型。可用类型有db, olap, ldbcdriver, docker(WIP)。
通过选择和组合最适合您要求的组件,您可以使用脚本flexbuild为您的特定用例创建定制的 GraphScope Flex 部署。
请使用flexbuild --help以了解更多信息。
用户案例和示例
案例1:在线BI分析
BI 分析适用于在 WebUI 中交互式分析数据的分析师。虽然高并发性不太可能实现,但复杂查询的低延迟至关重要。
GraphScope Flex 将 Cypher 和 Gremlin 查询编译为统一的中间表示 (IR) ,并使用通用查询优化器和目录模块对其进行优化。优化后的 IR 被传递到Gaia Codegen并在Gaia上执行,Gaia 是一个分布式数据流引擎,可通过数据并行性减少查询延迟。通过统一的接口从基于可变 CSR 的持久存储中访问图形数据。
要构建此用例的工件,请运行以下命令:
./flexbuild cypher gaia cppsp mcsr --app db
# To be supported. Please try scripts for other cases.
案例2:针对高QPS查询
在某些业务场景中,例如推荐或搜索,图查询的速率极高,需要很高的吞吐量。在这些场景中,GraphScope Flex 可以使用不同的组件集进行部署。编译器生成优化的查询计划,Hiactor Codegen生成专为Hiactor定制的物理计划,Hiactor 是一种用于类似 OLTP 查询的高性能并发参与者框架。
要构建此用例的工件,请运行以下命令:
./flexbuild hiactor cppsp mcsr --app db
请注意,我们使用此命令构建的工件进行 LDBC SNB 基准测试。
案例 3:离线图形分析
GraphScope Flex 是一个用于执行图形分析的高效且用户友好的平台。它提供内置算法以及用于开发定制算法的接口。该运行时基于GRAPE,以片段为中心且可扩展,支持FLASH、PIE和Pregel等多种编程模型。使用Ingress组件可以轻松并行化或增量化顺序算法。为了实现高性能,在此堆栈中部署了内存中的图形存储。
要构建此用例的工件,请运行以下命令:
./flexbuild builtin grape-cpu --app olap
# or
./flexbuild builtin grape-gpu --app ldbcdriver
案例 4:对于图学习任务
GraphScope Flex的GNN框架支持工业场景中的十亿级图。它提供了 GNN 模型开发范例、示例模型,以及在TensorFlow或PyTorch作为训练后端之间进行选择的灵活性。此外,该框架采用解耦的采样和训练过程,可以独立扩展以获得最佳的端到端吞吐量,从而提供卓越的性能。
要构建此用例的工件,请运行以下命令:
./flexbuild gnnmodels graphlearn tensorflow vineyard --app gnn
项目地址:
https://github.com/alibaba/GraphScope/tree/main/flex
本文暂时没有评论,来添加一个吧(●'◡'●)