NebulaGraph AI Suite
项目描述
NebulaGraph AI Suite,用4行代码在NebulaGraph上运行图算法
文档: https://github.com/wey-gu/nebulagraph-ai#documentation
源代码: https://github.com/wey-gu/nebulagraph-ai
NebulaGraph AI Suite for Python (ng_ai) 是一个强大的Python库,为数据科学家提供了在NebulaGraph中有效读取、写入、分析和计算数据的API。
支持单机引擎(NetworkX)或使用Spark的分布式计算环境,我们可以在少于10行代码的情况下,在统一且直观的API上对NebulaGraph进行图分析和算法操作。
5分钟快速开始
选项1:在您的桌面上尝试。使用NebulaGraph Docker扩展!
选项2:在Linux服务器上?请使用Nebula-Up 👇🏻
- 按照以下指南使用 Nebula-Up 设置环境。
- 使用 pip 在 Jupyter Notebook 中从 http://localhost:8888 安装 ng_ai(密码:
nebula
)。 - 打开演示笔记本并逐个运行单元格。
- 查看API 参考
安装
pip install ng_ai
用法
从 nGQL 调用
在文档中查看更多细节
RETURN ng_ai("pagerank", ["follow"], ["degree"], "spark",
{space: "basketballplayer", max_iter: 10}, {write_mode: "insert"})
Spark 引擎示例
另请参阅:examples/spark_engine.ipynb
在 NebulaGraph 上运行算法
from ng_ai import NebulaReader
# read data with spark engine, scan mode
reader = NebulaReader(engine="spark")
reader.scan(edge="follow", props="degree")
df = reader.read()
# run pagerank algorithm
pr_result = df.algo.pagerank(reset_prob=0.15, max_iter=10)
写回 NebulaGraph
from ng_ai import NebulaWriter
from ng_ai.config import NebulaGraphConfig
config = NebulaGraphConfig()
properties = {"louvain": "cluster_id"}
writer = NebulaWriter(
data=df_result, sink="nebulagraph_vertex", config=config, engine="spark")
writer.set_options(
tag="louvain", vid_field="_id", properties=properties,
batch_size=256, write_mode="insert",)
writer.write()
然后我们可以在 NebulaGraph 中查询结果
MATCH (v:louvain)
RETURN id(v), v.louvain.cluster_id LIMIT 10;
NebulaGraph 引擎示例
基本上与 Spark 引擎相同,但使用 engine="nebula"
,请参考示例或文档以获取更多详细信息。
- reader = NebulaReader(engine="spark")
+ reader = NebulaReader(engine="nebula")
文档
工作原理
ng_ai 是不同引擎的统一抽象层,当前实现基于 Spark、NetworkX、DGL 和 NebulaGraph,但很容易扩展到 Flink、GraphScope、PyG 等其他引擎。
┌───────────────────────────────────────────────────┐
│ Spark Cluster │
│ .─────. .─────. .─────. .─────. │
│ ; : ; : ; : ; : │
┌─▶│ : ; : ; : ; : ; │
│ │ ╲ ╱ ╲ ╱ ╲ ╱ ╲ ╱ │
│ │ `───' `───' `───' `───' │
Algo Spark │
Engine└───────────────────────────────────────────────────┘
│ ┌────────────────────────────────────────────────────┬──────────┐
└──┤ │ │
│ NebulaGraph AI Suite(ngai) │ ngai-api │◀─┐
│ │ │ │
│ └──────────┤ │
│ ┌────────┐ ┌──────┐ ┌────────┐ ┌─────┐ │ │
│ │ Reader │ │ Algo │ │ Writer │ │ GNN │ │ │
┌───────▶│ └────────┘ └──────┘ └────────┘ └─────┘ │ │
│ │ │ │ │ │ │ │
│ │ ├────────────┴───┬────────┴─────┐ └──────┐ │ │
│ │ ▼ ▼ ▼ ▼ │ │
│ │ ┌─────────────┐ ┌──────────────┐ ┌──────────┐┌──────────┐ │ │
│ ┌──┤ │ SparkEngine │ │ NebulaEngine │ │ NetworkX ││ DGLEngine│ │ │
│ │ │ └─────────────┘ └──────────────┘ └──────────┘└──────────┘ │ │
│ │ └──────────┬────────────────────────────────────────────────────┘ │
│ │ │ Spark │
│ │ └────────Reader ────────────┐ │
│ Spark Query Mode │ │
│ Reader │ │
│Scan Mode ▼ ┌─────────┐
│ │ ┌───────────────────────────────────────────────────┬─────────┤ ngai-udf│◀─────────────┐
│ │ │ │ └─────────┤ │
│ │ │ NebulaGraph Graph Engine Nebula-GraphD │ ngai-GraphD │ │
│ │ ├──────────────────────────────┬────────────────────┼───────────────────┘ │
│ │ │ │ │ │
│ │ │ NebulaGraph Storage Engine │ │ │
│ │ │ │ │ │
│ └─▶│ Nebula-StorageD │ Nebula-Metad │ │
│ │ │ │ │
│ └──────────────────────────────┴────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ RETURN ng_ai("pagerank", ["follow"], ["degree"], "spark", {space:"basketballplayer"}) │──┘
│ └───────────────────────────────────────────────────────────────────────────────────────┘
│ ┌─────────────────────────────────────────────────────────────┐
│ │ from ng_ai import NebulaReader │
│ │ │
│ │ # read data with spark engine, scan mode │
│ │ reader = NebulaReader(engine="spark") │
│ │ reader.scan(edge="follow", props="degree") │
└──│ df = reader.read() │
│ │
│ # run pagerank algorithm │
│ pr_result = df.algo.pagerank(reset_prob=0.15, max_iter=10) │
│ │
└─────────────────────────────────────────────────────────────┘
Spark 引擎先决条件
- Spark 2.4,3.0(尚未测试)
- NebulaGraph 3.4+
- NebulaGraph Spark Connector 3.4+
- NebulaGraph 算法 3.1+
NebulaGraph 引擎先决条件
贡献
有关详细信息,请参阅HACKING.md。
许可证
本项目受 Apache License 2.0 条款的约束。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。
源分布
构建分布
ng-ai-0.2.10.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 880a4ae1edc7d5b2c6692b3a9e4a0ef5de4164b7a7a982afb8ce2dd6fe698ffd |
|
MD5 | bd19a100cfb5561f1b02606d30daa140 |
|
BLAKE2b-256 | d63be34468802894470f152e62a657dc3b5536456a2d6788b9f9b2bbefa97d91 |