diff --git a/docs/README.md b/docs/README.md index 09b2d71d82c..210242ea0d4 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,12 +1,12 @@ # Nebula Graph 是什么 -**Nebula Graph** 是一款开源的图数据库,擅长处理千亿个点和万亿条边的超大规模数据集。 +Nebula Graph 是一款开源的图数据库,擅长处理千亿个点和万亿条边的超大规模数据集。 -下图为 **Nebula Graph** 产品架构图: +下图为 Nebula Graph 产品架构图: -![image](https://docs-cdn.nebula-graph.com.cn/README/Nebula-Arch.png) +![image](figs/ng-ug-005.png) -与其他图数据库产品相比,**Nebula Graph** 具有如下优势: +与其他图数据库产品相比,Nebula Graph 具有如下优势: * 全对称分布式架构 * 存储与计算分离 @@ -24,9 +24,9 @@ ## [快速使用](manual-CN/1.overview/2.quick-start/1.get-started.md) -请查看[快速使用手册](manual-CN/1.overview/2.quick-start/1.get-started.md),开始使用 **Nebula Graph**。 +请查看[快速使用手册](manual-CN/1.overview/2.quick-start/1.get-started.md),开始使用 Nebula Graph。 -在开始使用 **Nebula Graph** 之前,必须通过[编译源码](manual-CN/3.build-develop-and-administration/1.build/1.build-source-code.md),[rpm/deb 包](manual-CN/3.build-develop-and-administration/2.install/1.install-with-rpm-deb.md) 或者 [docker compose](https://github.com/vesoft-inc/nebula-docker-compose/blob/master/README_zh-CN.md) 方式安装 **Nebula Graph**。您也可以观看[视频](https://space.bilibili.com/472621355)学习如何安装 **Nebula Graph**。 +在开始使用 Nebula Graph 之前,必须通过[编译源码](manual-CN/3.build-develop-and-administration/1.build/1.build-source-code.md),[rpm/deb 包](manual-CN/3.build-develop-and-administration/2.install/1.install-with-rpm-deb.md) 或者 [docker compose](https://github.com/vesoft-inc/nebula-docker-compose/blob/master/README_zh-CN.md) 方式安装 Nebula Graph。您也可以观看[视频](https://space.bilibili.com/472621355)学习如何安装 Nebula Graph。 如果您遇到任何问题,请前往 Nebula Graph [官方论坛](https://discuss.nebula-graph.com.cn) 提问。 @@ -42,7 +42,7 @@ ## 产品路线图 -**Nebula Graph** 产品规划路线图请参见 [roadmap](https://github.com/vesoft-inc/nebula/wiki/Nebula-Graph-Roadmap-2020)。 +Nebula Graph 产品规划路线图请参见 [roadmap](https://github.com/vesoft-inc/nebula/wiki/Nebula-Graph-Roadmap-2020)。 ## 可视化工具:Nebula Graph Studio @@ -56,13 +56,13 @@ ## 许可证 -**Nebula Graph** 使用 [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) 许可证,您可以免费下载,修改以及部署源代码。您还可以将 **Nebula Graph** 作为后端服务部署以支持您的 SaaS 部署。 +Nebula Graph 使用 [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) 许可证,您可以免费下载,修改以及部署源代码。您还可以将 Nebula Graph 作为后端服务部署以支持您的 SaaS 部署。 -为防止云供应商从项目赢利而不回馈,**Nebula Graph** 在项目中添加了 [Commons Clause 1.0](https://commonsclause.com/) 条款。如上所述,**Nebula Graph** 是一个完全开源的项目,欢迎您就许可模式提出建议,帮助 **Nebula Graph** 社区更好地发展。 +为防止云供应商从项目赢利而不回馈,Nebula Graph 在项目中添加了 [Commons Clause 1.0](https://commonsclause.com/) 条款。如上所述,Nebula Graph 是一个完全开源的项目,欢迎您就许可模式提出建议,帮助 Nebula Graph 社区更好地发展。 ## 如何贡献 -**Nebula Graph** 是一个完全开源的项目,欢迎开源爱好者通过以下方式参与到 **Nebula Graph** 社区: +Nebula Graph 是一个完全开源的项目,欢迎开源爱好者通过以下方式参与到 Nebula Graph 社区: * 从标记为 [good first issues](https://github.com/vesoft-inc/nebula/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) 的问题入手 * 贡献代码,详情请参见[如何贡献](manual-CN/4.contributions/how-to-contribute.md) @@ -70,7 +70,7 @@ ## 获取帮助 & 联系方式 -在使用 **Nebula Graph** 过程中遇到任何问题,都可以通过下面的方式寻求帮助: +在使用 Nebula Graph 过程中遇到任何问题,都可以通过下面的方式寻求帮助: * [官方论坛](https://discuss.nebula-graph.com.cn/) * 访问官网 [Home Page](http://nebula-graph.io/)。 @@ -78,6 +78,6 @@ * [![Sina Weibo](https://img.shields.io/badge/Weibo-%E5%BE%AE%E5%8D%9A-red)](https://weibo.com/p/1006067122684542/home?from=page_100606&mod=TAB#place) * email: info@vesoft.com -如果喜欢 **Nebula Graph**,请为我们点 star。 +如果喜欢 Nebula Graph,请为我们点 star。 nebula star diff --git a/docs/figs/ng-ug-001.png b/docs/figs/ng-ug-001.png new file mode 100644 index 00000000000..f051e8f9063 Binary files /dev/null and b/docs/figs/ng-ug-001.png differ diff --git a/docs/figs/ng-ug-002.png b/docs/figs/ng-ug-002.png new file mode 100644 index 00000000000..86dbf19060b Binary files /dev/null and b/docs/figs/ng-ug-002.png differ diff --git a/docs/figs/ng-ug-003.png b/docs/figs/ng-ug-003.png new file mode 100644 index 00000000000..8c07b4d1a65 Binary files /dev/null and b/docs/figs/ng-ug-003.png differ diff --git a/docs/figs/ng-ug-004.png b/docs/figs/ng-ug-004.png new file mode 100644 index 00000000000..d7d2986b461 Binary files /dev/null and b/docs/figs/ng-ug-004.png differ diff --git a/docs/figs/ng-ug-005.png b/docs/figs/ng-ug-005.png new file mode 100644 index 00000000000..61d0a5e9c4e Binary files /dev/null and b/docs/figs/ng-ug-005.png differ diff --git a/docs/figs/ng-ug-006.png b/docs/figs/ng-ug-006.png new file mode 100644 index 00000000000..9577468dfb6 Binary files /dev/null and b/docs/figs/ng-ug-006.png differ diff --git a/docs/figs/ng-ug-007.png b/docs/figs/ng-ug-007.png new file mode 100644 index 00000000000..357783ed46e Binary files /dev/null and b/docs/figs/ng-ug-007.png differ diff --git a/docs/figs/ng-ug-008.png b/docs/figs/ng-ug-008.png new file mode 100644 index 00000000000..19eb2cc0eee Binary files /dev/null and b/docs/figs/ng-ug-008.png differ diff --git a/docs/figs/ng-ug-009.png b/docs/figs/ng-ug-009.png new file mode 100644 index 00000000000..acb36256752 Binary files /dev/null and b/docs/figs/ng-ug-009.png differ diff --git a/docs/figs/ng-ug-010.png b/docs/figs/ng-ug-010.png new file mode 100644 index 00000000000..bbe5cde2e1e Binary files /dev/null and b/docs/figs/ng-ug-010.png differ diff --git a/docs/figs/ng-ug-011.png b/docs/figs/ng-ug-011.png new file mode 100644 index 00000000000..a6845d6c58e Binary files /dev/null and b/docs/figs/ng-ug-011.png differ diff --git a/docs/figs/ng-ug-012.png b/docs/figs/ng-ug-012.png new file mode 100644 index 00000000000..265eb6f1866 Binary files /dev/null and b/docs/figs/ng-ug-012.png differ diff --git a/docs/figs/ng-ug-013.png b/docs/figs/ng-ug-013.png new file mode 100644 index 00000000000..491c400d131 Binary files /dev/null and b/docs/figs/ng-ug-013.png differ diff --git a/docs/figs/ng-ug-014.png b/docs/figs/ng-ug-014.png new file mode 100644 index 00000000000..c9f01658d7e Binary files /dev/null and b/docs/figs/ng-ug-014.png differ diff --git a/docs/figs/ng-ug-015.png b/docs/figs/ng-ug-015.png new file mode 100644 index 00000000000..d26b89bb694 Binary files /dev/null and b/docs/figs/ng-ug-015.png differ diff --git a/docs/figs/ng-ug-016.png b/docs/figs/ng-ug-016.png new file mode 100644 index 00000000000..3583bf79740 Binary files /dev/null and b/docs/figs/ng-ug-016.png differ diff --git a/docs/figs/ng-ug-017.png b/docs/figs/ng-ug-017.png new file mode 100644 index 00000000000..32cf6a7fa52 Binary files /dev/null and b/docs/figs/ng-ug-017.png differ diff --git a/docs/figs/ng-ug-018.png b/docs/figs/ng-ug-018.png new file mode 100644 index 00000000000..69136b2829b Binary files /dev/null and b/docs/figs/ng-ug-018.png differ diff --git a/docs/figs/ng-ug-019.png b/docs/figs/ng-ug-019.png new file mode 100644 index 00000000000..e3395cd377a Binary files /dev/null and b/docs/figs/ng-ug-019.png differ diff --git a/docs/manual-CN/0.about-this-manual.md b/docs/manual-CN/0.about-this-manual.md index 4432357e3c8..eef6eeaa367 100644 --- a/docs/manual-CN/0.about-this-manual.md +++ b/docs/manual-CN/0.about-this-manual.md @@ -1,17 +1,17 @@ # 关于本手册 -此手册为 **Nebula Graph** 的用户手册,版本为 1.1。详细版本更新信息参见 [Release Notes](https://github.com/vesoft-inc/nebula/releases)。 +此手册为 Nebula Graph 的用户手册,版本为 1.2。详细版本更新信息参见 [Release Notes](https://github.com/vesoft-inc/nebula/releases)。 ## 面向的读者 本手册适用于 `算法工程师`、`数据科学家`、`软件开发人员`和 `DBA`,以及所有对`图数据库`感兴趣的人群。 -如果在使用 **Nebula Graph** 的过程中有任何问题,欢迎在 [Nebula Graph Community Slack](https://join.slack.com/t/nebulagraph/shared_invite/enQtNjIzMjQ5MzE2OTQ2LTM0MjY0MWFlODg3ZTNjMjg3YWU5ZGY2NDM5MDhmOGU2OWI5ZWZjZDUwNTExMGIxZTk2ZmQxY2Q2MzM1OWJhMmY#") 或[官方论坛](https://discuss.nebula-graph.com.cn/)提问。 +如果在使用 Nebula Graph 的过程中有任何问题,欢迎在 [Nebula Graph Community Slack](https://join.slack.com/t/nebulagraph/shared_invite/enQtNjIzMjQ5MzE2OTQ2LTM0MjY0MWFlODg3ZTNjMjg3YWU5ZGY2NDM5MDhmOGU2OWI5ZWZjZDUwNTExMGIxZTk2ZmQxY2Q2MzM1OWJhMmY#") 或[官方论坛](https://discuss.nebula-graph.com.cn/)提问。 如果对本手册有任何建议或疑问,请在 [GitHub](https://github.com/vesoft-inc/nebula/issues) 给我们留言。 ## 格式约定 -**Nebula Graph** 尚在持续开发中,本手册也将持续更新。 +Nebula Graph 尚在持续开发中,本手册也将持续更新。 本手册使用如下语法惯例: - `等宽字体` diff --git a/docs/manual-CN/1.overview/1.concepts/1.data-model.md b/docs/manual-CN/1.overview/1.concepts/1.data-model.md index cecb8ab34e8..a8b9ac4067a 100644 --- a/docs/manual-CN/1.overview/1.concepts/1.data-model.md +++ b/docs/manual-CN/1.overview/1.concepts/1.data-model.md @@ -13,7 +13,7 @@ G = < V, E, PV, PE >, 其中 **V** 表示点,**E** 表示有向边,**PV** 表示点属性,**PE** 表示边属性。 此文档将使用如下示例图数据介绍属性图的基本概念: -![map300](https://user-images.githubusercontent.com/42762957/64932536-51b1f800-d872-11e9-9016-c2634b1eeed6.png) +![image](../../../figs/ng-ug-001.png) 上图为 NBA 球员及球队信息数据,图中包含 2 种类型的 11 个点,即 player 和 team,2 种类型的边,即 serve 和 like。 以下为示例图数据涉及到的概念介绍。 @@ -24,19 +24,19 @@ G = < V, E, PV, PE >, 本例的数据中共包含 11 个点。 - +![image](../../../figs/ng-ug-002.png) ## 点类型——标签(Tag) **Nebula Graph** 使用**标签**表示点类型;一个点可以同时有多种类型(Tag)。本例中有两种类型的点,其标签(类型)分别为 **player** 和 **team**。 - +![image](../../../figs/ng-ug-003.png) ## 边(Edge) 边用来连接点,边通常表示两个点间的某种关系或行为,本例中的边为 _**serve**_ 和 _**like**_。 - +![image](../../../figs/ng-ug-004.png) ## 边类型(Edge Type) diff --git a/docs/manual-CN/1.overview/2.quick-start/1.get-started.md b/docs/manual-CN/1.overview/2.quick-start/1.get-started.md index 97b57173e9f..93ba5c218f1 100644 --- a/docs/manual-CN/1.overview/2.quick-start/1.get-started.md +++ b/docs/manual-CN/1.overview/2.quick-start/1.get-started.md @@ -1,6 +1,6 @@ # 快速入门 -本手册将逐步指导您使用 **Nebula Graph**,包括: +本手册将逐步指导您使用 Nebula Graph,包括: - 安装 - 数据建模 @@ -10,23 +10,23 @@ ## 安装 -我们推荐使用 [docker compose](https://github.com/vesoft-inc/nebula-docker-compose) 来安装 **Nebula Graph**, 具体步骤可以参考我们录制的[操作视频](https://www.bilibili.com/video/BV1BJ411y7Kt?from=search&seid=2803739759207567290)。 +我们推荐使用 [docker compose](https://github.com/vesoft-inc/nebula-docker-compose) 来安装 Nebula Graph,具体步骤可以参考我们录制的[操作视频](https://www.bilibili.com/video/BV1BJ411y7Kt?from=search&seid=2803739759207567290)。 -除了使用 Docker,您还可以选择[编译源码](../../3.build-develop-and-administration/1.build/1.build-source-code.md)或者[rpm/deb 包](../../3.build-develop-and-administration/2.install/1.install-with-rpm-deb.md) 方式安装 **Nebula Graph**。 +除了使用 Docker,您还可以选择[编译源码](../../3.build-develop-and-administration/1.build/1.build-source-code.md)或者[rpm/deb 包](../../3.build-develop-and-administration/2.install/1.install-with-rpm-deb.md) 方式安装 Nebula Graph。 如果您在安装过程中遇到任何问题,可以前往 Nebula Graph [官方论坛](https://discuss.nebula-graph.com.cn) 提问,我们有专门的值班开发人员为您解答问题。 ## 数据建模 -在本手册中,我们将通过下图所示的数据集向您展示如何使用 **Nebula Graph** 数据库。 +在本手册中,我们将通过下图所示的数据集向您展示如何使用 Nebula Graph 数据库。 -![image](https://docs-cdn.nebula-graph.com.cn/1.overview/2.quick-start/1.get-started/get-started.png) +![image](../../../figs/ng-ug-006.png) 上图中有两个标签(**player**、**team**)以及两条边类型(**serve**、**follow**)。 ### 创建并使用图空间 -**Nebula Graph** 中的图空间类似于传统数据库中创建的独立数据库,例如在 MySQL 中创建的数据库。 +Nebula Graph 中的图空间类似于传统数据库中创建的独立数据库,例如在 MySQL 中创建的数据库。 首先,您需要创建一个图空间并使用 (use) 它,然后才能执行其他操作。 您可以通过以下步骤创建并使用图空间: @@ -110,7 +110,7 @@ ### 定义数据的 Schema -在 **Nebula Graph** 中,我们将具有相同属性的点分为一组,该组即为一个标签。`CREATE TAG` 语句定义了一个标签,标签名称后面的括号中是标签的属性和属性类型。`CREATE EDGE` 语句定义边类型,类型名称后面的括号中是边的属性和属性类型。 +在 Nebula Graph 中,我们将具有相同属性的点分为一组,该组即为一个标签。`CREATE TAG` 语句定义了一个标签,标签名称后面的括号中是标签的属性和属性类型。`CREATE EDGE` 语句定义边类型,类型名称后面的括号中是边的属性和属性类型。 您可以通过以下步骤创建标签和边类型: @@ -268,7 +268,7 @@ nebula> INSERT EDGE follow(degree) VALUES 100 -> 101:(95), 100 -> 102:(90), 102 ### 读取数据 -在 **Nebula Graph** 中插入数据后,您可以从图空间中查询到之前已经插入的数据。 +在 Nebula Graph 中插入数据后,您可以从图空间中查询到之前已经插入的数据。 `FETCH PROP ON` 语句从图空间检索数据。如果要获取点的数据,则必须指定点的标签和点 VID;如果要获取边数据,则必须指定边的类型、起始点 VID 和目标点 VID。 @@ -643,6 +643,6 @@ vesoft/nebula-console:nightly --addr=<127.0.0.1> --port=<3699> ## 最后 -如果您在使用 **Nebula Graph** 的过程中遇到任何问题,请前往我们的 [官方论坛](https://discuss.nebula-graph.com.cn) 提问,将有专门的值班开发人员为您解答问题。 +如果您在使用 Nebula Graph 的过程中遇到任何问题,请前往我们的 [官方论坛](https://discuss.nebula-graph.com.cn) 提问,将有专门的值班开发人员为您解答问题。 -如果您完成了本手册的全部操作,认为 **Nebula Graph** 是一款值得尝试的图数据库产品,恳请移步 [GitHub](https://github.com/vesoft-inc/nebula) 留下您珍贵的一颗星,这将鼓舞我们继续向前。 +如果您完成了本手册的全部操作,认为 Nebula Graph 是一款值得尝试的图数据库产品,恳请移步 [GitHub](https://github.com/vesoft-inc/nebula) 留下您珍贵的一颗星,这将鼓舞我们继续向前。 diff --git a/docs/manual-CN/1.overview/2.quick-start/2.FAQ.md b/docs/manual-CN/1.overview/2.quick-start/2.FAQ.md index 3d5b3202c87..2e6b8f3d526 100644 --- a/docs/manual-CN/1.overview/2.quick-start/2.FAQ.md +++ b/docs/manual-CN/1.overview/2.quick-start/2.FAQ.md @@ -1,6 +1,6 @@ # 常见问题和已知缺陷 -本文档列出了 **Nebula Graph v1.1** 常见问题和一些已知缺陷的 workaround 方法。 +本文档列出了 **Nebula Graph v1.2** 常见问题和一些已知缺陷的 workaround 方法。 底层概念、最佳实践、功能对比、性能评测等见[附录知识库](../../5.appendix/cypher-ngql.md)各文章。 如果您没有在文档中找到需要的信息,请尝试在 Nebula Graph [官方论坛](https://discuss.nebula-graph.com.cn/)中的[用户问答](https://discuss.nebula-graph.com.cn/c/users/5)分类下进行搜索。 diff --git a/docs/manual-CN/1.overview/3.design-and-architecture/1.design-and-architecture.md b/docs/manual-CN/1.overview/3.design-and-architecture/1.design-and-architecture.md index e0a47183689..8967f2be848 100644 --- a/docs/manual-CN/1.overview/3.design-and-architecture/1.design-and-architecture.md +++ b/docs/manual-CN/1.overview/3.design-and-architecture/1.design-and-architecture.md @@ -1,18 +1,18 @@ # Nebula Graph 的整体架构 -![](https://oscimg.oschina.net/oscnet/8830ba04d83fc7f8644654dba4d53cc63ab.jpg) +![image](../../../figs/ng-ug-007.png) -一个完整的 **Nebula Graph** 部署集群包含三个服务,即  Query Service,Storage Service 和 Meta Service。每个服务都有其各自的可执行二进制文件,这些二进制文件既可以部署在同一组节点上,也可以部署在不同的节点上。 +一个完整的 Nebula Graph 部署集群包含三个服务,即  Query Service,Storage Service 和 Meta Service。每个服务都有其各自的可执行二进制文件,这些二进制文件既可以部署在同一组节点上,也可以部署在不同的节点上。 ## Meta Service -上图为 **Nebula Graph** 的架构图,其右侧为 Meta Service 集群,它采用 leader/follower 架构。Leader 由集群中所有的 Meta Service 节点选出,然后对外提供服务。Followers 处于待命状态并从 leader 复制更新的数据。一旦 leader 节点 down 掉,会再选举其中一个 follower 成为新的 leader。 +上图为 Nebula Graph 的架构图,其右侧为 Meta Service 集群,它采用 leader/follower 架构。Leader 由集群中所有的 Meta Service 节点选出,然后对外提供服务。Followers 处于待命状态并从 leader 复制更新的数据。一旦 leader 节点 down 掉,会再选举其中一个 follower 成为新的 leader。 Meta Service 不仅负责存储和提供图数据的 meta 信息,如 schema、partition 信息等,还同时负责指挥数据迁移及 leader 的变更等运维操作。 ## 存储计算分离 -在架构图中 Meta Service 的左侧,为 **Nebula Graph** 的主要服务,**Nebula Graph** 采用存储与计算分离的架构,虚线以上为计算,以下为存储。 +在架构图中 Meta Service 的左侧,为 Nebula Graph 的主要服务,Nebula Graph 采用存储与计算分离的架构,虚线以上为计算,以下为存储。 存储计算分离有诸多优势,最直接的优势就是,计算层和存储层可以根据各自的情况弹性扩容、缩容。 @@ -30,6 +30,6 @@ Meta Service 不仅负责存储和提供图数据的 meta 信息,如 schema、 ## Shared-nothing 分布式存储层 -Storage Service 采用 shared-nothing 的分布式架构设计,每个存储节点都有多个本地 KV 存储实例作为物理存储。**Nebula Graph** 采用多数派协议 Raft 来保证这些 KV 存储之间的一致性(由于 Raft 比 Paxos 更简洁,我们选用了 Raft )。在 KVStore 之上是图语义层,用于将图操作转换为下层 KV 操作。 +Storage Service 采用 shared-nothing 的分布式架构设计,每个存储节点都有多个本地 KV 存储实例作为物理存储。Nebula Graph 采用多数派协议 Raft 来保证这些 KV 存储之间的一致性(由于 Raft 比 Paxos 更简洁,我们选用了 Raft )。在 KVStore 之上是图语义层,用于将图操作转换为下层 KV 操作。 -图数据(点和边)通过 Hash 的方式存储在不同 Partition 中。这里用的 Hash 函数实现很直接,即 vertex_id 取余 Partition 数。在 **Nebula Graph** 中,Partition 表示一个虚拟的数据集,这些 Partition 分布在所有的存储节点,分布信息存储在 Meta Service 中(因此所有的存储节点和计算节点都能获取到这个分布信息)。 +图数据(点和边)通过 Hash 的方式存储在不同 Partition 中。这里用的 Hash 函数实现很直接,即 vertex_id 取余 Partition 数。在 Nebula Graph 中,Partition 表示一个虚拟的数据集,这些 Partition 分布在所有的存储节点,分布信息存储在 Meta Service 中(因此所有的存储节点和计算节点都能获取到这个分布信息)。 diff --git a/docs/manual-CN/1.overview/3.design-and-architecture/2.storage-design.md b/docs/manual-CN/1.overview/3.design-and-architecture/2.storage-design.md index 6d50b0901eb..88d3bf72d99 100644 --- a/docs/manual-CN/1.overview/3.design-and-architecture/2.storage-design.md +++ b/docs/manual-CN/1.overview/3.design-and-architecture/2.storage-design.md @@ -6,7 +6,7 @@ Nebula Graph 的 Storage 包含两个部分,一是 meta 相关的存储,称 ## 架构 -![image](https://docs-cdn.nebula-graph.com.cn/1.overview/3.design-and-architecture/2.storage-design/storage-design.png) +![image](../../../figs/ng-ug-008.png) 图一 storage 服务架构图 @@ -22,7 +22,7 @@ Nebula Graph 的 Storage 包含两个部分,一是 meta 相关的存储,称 对于点来说,Nebula Graph 使用不同的标签表示不同类型的点,同一个 VertexID 可以关联多个标签,而每一个标签都有自己对应的属性。对应到键值存储里面,Nebula Graph 使用 vertexID + TagID 来表示 key,把相关的属性编码后放在 value 里面,具体键的格式如图 2 所示: -![image](https://user-images.githubusercontent.com/42762957/71571002-1252a300-2b13-11ea-915f-b3fd16920b95.png) +![image](../../../figs/ng-ug-009.png) 图二 Vertex Key 格式 @@ -36,7 +36,7 @@ Nebula Graph 的 Storage 包含两个部分,一是 meta 相关的存储,称 两个点之间可能存在多种类型的边,Nebula Graph 用 Edge Type 来表示边类型。而同一类型的边可能存在多条,比如,定义一个边类型“转账”,用户 A 可能多次转账给 B,所以 Nebula Graph 又增加了一个 Rank 字段来做区分,表示 A 到 B 之间多次转账记录。 Edge key 的格式如图 3 所示: -![1](https://user-images.githubusercontent.com/51590253/75966340-20eb7b00-5f05-11ea-9d8e-c3ee17a33038.png) +![image](../../../figs/ng-ug-010.png) 图三 Edge Key 格式 @@ -51,12 +51,12 @@ Nebula Graph 的 Storage 包含两个部分,一是 meta 相关的存储,称 针对边类型的值,若如果大于 0 表示出边,则对应的 edge key format 如图4 所示;若边类型的值小于 0,则对应的 edge key 格式如图 5 所示: --- -![2](https://user-images.githubusercontent.com/51590253/75966451-5c864500-5f05-11ea-87e5-b357e29fbbd4.png) +![image](../../../figs/ng-ug-011.png) 图4 出边的 Key 格式 --- -![3](https://user-images.githubusercontent.com/51590253/75966470-614af900-5f05-11ea-94eb-b693680f295f.png) +![image](../../../figs/ng-ug-012.png) 图5 入边的 Key 格式 diff --git a/docs/manual-CN/1.overview/3.design-and-architecture/3.query-engine.md b/docs/manual-CN/1.overview/3.design-and-architecture/3.query-engine.md index 98b8101a2f9..054005e94bd 100644 --- a/docs/manual-CN/1.overview/3.design-and-architecture/3.query-engine.md +++ b/docs/manual-CN/1.overview/3.design-and-architecture/3.query-engine.md @@ -1,24 +1,24 @@ # 查询引擎设计 -在 **Nebula Graph** 中,Query Engine 用来处理 **Nebula Graph** 查询语言语句(nGQL)。本篇文章将带你了解 Nebula Query Engine 的架构。 +在 Nebula Graph 中,Query Engine 用来处理 Nebula Graph 查询语言语句(nGQL)。本篇文章将带你了解 Nebula Query Engine 的架构。 -![image](https://docs-cdn.nebula-graph.com.cn/1.overview/3.design-and-architecture/3.query-engine/query-engine.png) +![image](../../../figs/ng-ug-013.png) -上图为查询引擎的架构图,如果你对 SQL 的执行引擎比较熟悉,那么对上图一定不会陌生。**Nebula Graph** 的 Query Engine 架构图和现代 SQL 的执行引擎类似,只是在查询语言解析器和具体的执行计划有所区别。 +上图为查询引擎的架构图,如果你对 SQL 的执行引擎比较熟悉,那么对上图一定不会陌生。Nebula Graph 的 Query Engine 架构图和现代 SQL 的执行引擎类似,只是在查询语言解析器和具体的执行计划有所区别。 ## Session Manager -**Nebula Graph** 权限管理采用基于角色的权限控制(Role Based Access Control)。客户端第一次连接到 Query Engine 时需作认证,当认证成功之后 Query Engine 会创建一个新 session,并将该 session ID 返回给客户端。所有的 session 统一由 Session Manager 管理。session 会记录当前的 graph space 信息及对该 space 的权限。此外,session 还会记录一些会话相关的配置信息,并临时保存同一 session 内的跨多个请求的一些信息。 +Nebula Graph 权限管理采用基于角色的权限控制(Role Based Access Control)。客户端第一次连接到 Query Engine 时需作认证,当认证成功之后 Query Engine 会创建一个新 session,并将该 session ID 返回给客户端。所有的 session 统一由 Session Manager 管理。session 会记录当前的 graph space 信息及对该 space 的权限。此外,session 还会记录一些会话相关的配置信息,并临时保存同一 session 内的跨多个请求的一些信息。 客户端连接结束之后 session 会关闭,或者如果长时间没通信会切换为空闲状态。这个空闲时长是可以配置的。 客户端的每次请求都必须带上此 session ID,否则 Query Engine 会拒绝此请求。 -Storage Engine 不管理 session,Query Engine 在访问存储引擎时,会带上 session 信息。 +Storage 服务不管理 session,Query Engine 在访问存储引擎时,会带上 session 信息。 ## Parser -Query Engine 解析来自客户端的 nGQL 语句,分析器(parser)主要基于著名的 flex / bison 工具集。字典文件(lexicon)和语法规则(syntax)在 **Nebula Graph** 源代码的 `src/parser` 目录下。设计上,nGQL 的语法非常接近 SQL,目的是降低学习成本。 +Query Engine 解析来自客户端的 nGQL 语句,分析器(parser)主要基于著名的 flex / bison 工具集。字典文件(lexicon)和语法规则(syntax)在 Nebula Graph 源代码的 `src/parser` 目录下。设计上,nGQL 的语法非常接近 SQL,目的是降低学习成本。 图数据库目前没有统一的查询语言国际标准,一旦 ISO/IEC 的图查询语言(GQL)委员会发布 GQL 国际标准,nGQL 会尽快去实现兼容。 @@ -40,4 +40,4 @@ Parser 构建产出的抽象语法树(Abstract Syntax Tree,简称 AST)会 Query Engine 最后一步是去执行优化后的执行计划,这步是执行框架(Execution Framework)完成的。执行层的每个执行器一次只处理一个执行计划,计划中的 action 会依次执行。执行器也会做一些有限的局部优化,比如:决定是否并发执行。 -针对不同 action,执行器将通过客户端与 meta service 或 storage engine 进行通信。 +针对不同 action,执行器将通过客户端与 Meta 服务 或 Storage 服务进行通信。 diff --git a/docs/manual-CN/2.query-language/2.functions-and-operators/set-operations.md b/docs/manual-CN/2.query-language/2.functions-and-operators/set-operations.md index dd0c7840469..a6358b4aeb0 100644 --- a/docs/manual-CN/2.query-language/2.functions-and-operators/set-operations.md +++ b/docs/manual-CN/2.query-language/2.functions-and-operators/set-operations.md @@ -175,8 +175,7 @@ nebula> GO FROM 100 OVER follow YIELD follow._dst AS play_dst \ | GO FROM $-.play_dst OVER follow YIELD follow._dst AS play_dst; ``` -![image](https://user-images.githubusercontent.com/42762957/84130415-d46c8a00-aa75-11ea-8a29-b8bef5e1d55f.png) - +![image](../../../figs/ng-ug-014.png) 红色框内的语句先执行,然后再执行绿色框内的语句。 ```ngql diff --git a/docs/manual-CN/3.build-develop-and-administration/2.install/1.install-with-rpm-deb.md b/docs/manual-CN/3.build-develop-and-administration/2.install/1.install-with-rpm-deb.md index 86e3dab94ca..f05d5f017c6 100644 --- a/docs/manual-CN/3.build-develop-and-administration/2.install/1.install-with-rpm-deb.md +++ b/docs/manual-CN/3.build-develop-and-administration/2.install/1.install-with-rpm-deb.md @@ -59,10 +59,10 @@ 2. 在 **Actions** 选项卡下,单击左侧的 **package**,显示所有可用的包。 3. 单击列表顶部最新的包。 - ![action-page](https://user-images.githubusercontent.com/40747875/71390992-59d1be80-263d-11ea-9d61-1d7fbeb1d8c5.png) + ![image](../../../figs/ng-ug-015.png) 4. 在 **package** 页的 **Artifacts** 区域,单击需要下载的安装包。 - ![select-a-package](https://docs-cdn.nebula-graph.com.cn/3.build-develop-and-administration/2.install/github-download-package.png) + ![image](../../../figs/ng-ug-016.png) 2. 安装 **Nebula Graph** diff --git a/docs/manual-CN/5.appendix/cypher-ngql.md b/docs/manual-CN/5.appendix/cypher-ngql.md index cad5f64461e..1b5ab80b56b 100644 --- a/docs/manual-CN/5.appendix/cypher-ngql.md +++ b/docs/manual-CN/5.appendix/cypher-ngql.md @@ -32,7 +32,7 @@ 示例使用以下数据: -![image](https://docs-cdn.nebula-graph.com.cn/5.appendix/cypher-ngql.png) +![image](../../figs/ng-ug-017.png) - 插入数据 diff --git a/docs/manual-CN/5.appendix/gremlin-ngql.md b/docs/manual-CN/5.appendix/gremlin-ngql.md index 74ff062c804..f6dbaada235 100644 --- a/docs/manual-CN/5.appendix/gremlin-ngql.md +++ b/docs/manual-CN/5.appendix/gremlin-ngql.md @@ -53,7 +53,7 @@ Gremlin 和 nGQL 均使用唯一标识符标记点和边。在 **Nebula Graph** 本节中的示例使用了 [Janus Graph](https://janusgraph.org/) 的示例图 [_The Graphs of Gods_](https://docs.janusgraph.org/#getting-started)。该图结构如下图所示。此处使用[属性图模型](../1.overview/1.concepts/1.data-model.md)描述罗马万神话中诸神关系。 -![image](https://docs-cdn.nebula-graph.com.cn/5.appendix/cypher-ngql.png) +![image](../../figs/ng-ug-017.png) - 插入数据 diff --git a/docs/manual-CN/5.appendix/sql-ngql.md b/docs/manual-CN/5.appendix/sql-ngql.md index 72e44f34864..30e6c1b4081 100644 --- a/docs/manual-CN/5.appendix/sql-ngql.md +++ b/docs/manual-CN/5.appendix/sql-ngql.md @@ -108,11 +108,11 @@ GO [[ TO] STEPS ] FROM ### MySQL -![image](https://user-images.githubusercontent.com/42762957/87523043-f7afd800-c6b8-11ea-9e68-2ff4ef009ed0.png) +![image](../../figs/ng-ug-018.png) ### Nebula Graph -![image](https://user-images.githubusercontent.com/42762957/87893980-03621c80-ca74-11ea-923f-c66ee74b9e96.png) +![image](../../figs/ng-ug-019.png) ## 增删改查(CRUD) diff --git a/docs/manual-CN/CHANGELOG.md b/docs/manual-CN/CHANGELOG.md index 8d2e5b7dc31..9e1fc949e51 100644 --- a/docs/manual-CN/CHANGELOG.md +++ b/docs/manual-CN/CHANGELOG.md @@ -1,5 +1,6 @@ # Manual Changes +* 0.2.1 - 1.2 * 0.2.0 - 1.1 * 0.1.9 - 1.0 * 0.1.8 - 1.0 RC4 diff --git a/docs/spark-connector/reader/sc-ug-reader-example.md b/docs/spark-connector/reader/sc-ug-reader-example.md index 262792f95e5..5701394ff70 100644 --- a/docs/spark-connector/reader/sc-ug-reader-example.md +++ b/docs/spark-connector/reader/sc-ug-reader-example.md @@ -11,7 +11,7 @@ - Scala - Java:1.8 -- 已经成功编译 Nebula Spark Connector Reader,并已经将 `nebula-spark-1.x.y.jar` 复制到本地 Maven 库。详细信息参考 [编译 Nebula Spark Connector](screader-ug-compile.md) +- 已经成功编译 Nebula Spark Connector Reader,并已经将 `nebula-spark-1.x.y.jar` 复制到本地 Maven 库。详细信息参考 [编译 Nebula Spark Connector](../sc-ug-compile.md) - 已经获取 Nebula Graph 数据库的以下信息: - 图空间名称和分区数量(如果创建图空间时未设置分区数量,则默认使用 100) diff --git a/mkdocs.yml b/mkdocs.yml index 88d0ba559df..94d97ab3923 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -288,13 +288,13 @@ nav: # - Developer Documentation Style Guide: manual-CN/4.contributions/developer-documentation-style-guide.md - 如何贡献: manual-CN/4.contributions/how-to-contribute.md - PR and Commit 信息指南: manual-CN/4.contributions/pull-request-commit-message-guidelines.md + - 文档工程师 Visual Studio Code 推荐配置: manual-CN/4.contributions/vscode-config.md - 附录: - Cypher & nGQL: manual-CN/5.appendix/cypher-ngql.md - Gremlin & nGQL: manual-CN/5.appendix/gremlin-ngql.md - SQL & nGQL: manual-CN/5.appendix/sql-ngql.md - 点标识符和分区: manual-CN/5.appendix/vid-partition.md - 超级顶点(稠密点)处理: manual-CN/5.appendix/super-node.md - - 文档工程师 Visual Studio Code 推荐配置: manual-CN/5.appendix/vscode-config.md