Skip to content

Commit

Permalink
Merge branch 'master' into explorer-support-nfs
Browse files Browse the repository at this point in the history
  • Loading branch information
cooper-lzy authored May 17, 2023
2 parents 3cc061f + 6f64336 commit d49acc1
Show file tree
Hide file tree
Showing 333 changed files with 3,915 additions and 4,104 deletions.
134 changes: 112 additions & 22 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
@@ -1,44 +1,133 @@
name: Publish docs via GitHub Pages
env:
ACTIONTEST: master
# branch name, like master, 2.4
on:
push:
branches:
branches: # hard code branch name
- master

jobs:
prepare:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1 # Not fetch all commits/branches
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
cache: 'pip'
- name : prepare
run: pip install -r requirements.txt
- name: Set matrix
id: set-matrix
run: |
import yaml, os, json
with open('./database_edition.yml', 'r') as file:
mkdocs = yaml.safe_load(file)
database_edition = mkdocs.get('database_edition', '')
print(f"database_edition: {database_edition}") # Print the variable for debugging
matrix = []
if database_edition == 'both':
matrix = ['enterprise', 'community']
elif database_edition in ['enterprise', 'community']:
matrix = [database_edition]
matrix_str = json.dumps(matrix) # Convert the list to a JSON-formatted string
with open(os.environ['GITHUB_OUTPUT'], 'a') as file:
file.write(f"matrix={matrix_str}\n")
shell: python

deploy:
needs: prepare
runs-on: ubuntu-latest
strategy:
max-parallel: 1 # in case push conflict
matrix:
database_edition: ${{fromJson(needs.prepare.outputs.matrix)}}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 0 # fetch all commits/branches
fetch-depth: 1 # fetch all commits/branches

- name: Setup Python
uses: actions/setup-python@v1
uses: actions/setup-python@v4
with:
python-version: '3.8'
architecture: 'x64'
python-version: '3.10'
cache: 'pip'

- name : prepare
run: sh ./prepare.sh

# if 'both', set each file 'community' and 'enterprise' seperately.
- name: Update database_edition.yml
run: |
import yaml
with open('./database_edition.yml', 'r') as file:
content = yaml.safe_load(file)
content['database_edition'] = f"${{ matrix.database_edition }}"
with open('./database_edition.yml', 'w') as file:
yaml.dump(content, file)
shell: python

- name: Git Config
run: git config user.name whitewum && git config user.email [email protected]

- name: save tmp files
run: |
cp -f *versions.json /tmp/ # f"${{ matrix.database_edition }}"_versions.json
ls /tmp/ -ltr
- name: mike
run: |
python ./scripts/conditional_render.py
python ./scripts/conditional_yml.py
python ./scripts/conditional_pdf.py
git fetch origin gh-pages --depth=1 # fix mike's CI update
mike deploy master -p --rebase
mike deploy ${{ env.ACTIONTEST }} -p --rebase
mike list
- name: show git branch
run: |
git branch
git checkout .
git checkout gh-pages
- name: replace version.json
run: |
import yaml, json
new_content = {"version": "${{ env.ACTIONTEST }}", "title": "${{ env.ACTIONTEST }}", "aliases": []}
# the only place read from /tmp/
filename = "/tmp/" + f"${{ matrix.database_edition }}" + "_versions.json"
with open(filename, 'r') as infile:
json_data = json.load(infile)
found = False
for item in json_data:
if item['version'] == new_content['version']: # in case duplicate master branch
found = True
break
if not found:
json_data.append(new_content)
with open('./versions.json', 'w') as outfile:
json.dump(json_data, outfile, indent=2)
shell: python
- name: Compress
run: |
tar -vczf nebula-docs.tar.gz master versions.json *.html
if [ "${{ matrix.database_edition }}" = "enterprise" ]; then
tar -vczf ent-docs.tar.gz ${{ env.ACTIONTEST }} versions.json *.html
else
tar -vczf nebula-docs.tar.gz ${{ env.ACTIONTEST }} versions.json *.html
fi
- name: Set source file
id: set-source-file
run: |
if [ "${{ matrix.database_edition }}" = "enterprise" ]; then
echo "source_file=ent-docs.tar.gz" >> $GITHUB_OUTPUT
else
echo "source_file=nebula-docs.tar.gz" >> $GITHUB_OUTPUT
fi
shell: bash

- name: Transfer
# uses: garygrossgarten/github-action-scp@release
uses: appleboy/scp-action@master
Expand All @@ -47,8 +136,9 @@ jobs:
username: ${{ secrets.USER_NAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
source: nebula-docs.tar.gz
source: ${{ steps.set-source-file.outputs.source_file }}
target: /usr/web

- name: UnCompress
uses: appleboy/ssh-action@master
with:
Expand All @@ -57,15 +147,15 @@ jobs:
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: |
mkdir -p /usr/web/nebula-docs/
tar -xzf /usr/web/nebula-docs.tar.gz -C /usr/web/nebula-docs/
mkdir -p /usr/web/nebula-docs/site/pdf/
cp -f /usr/web/nebula-docs/master/pdf/NebulaGraph-CN.pdf /usr/web/nebula-docs/site/pdf/NebulaGraph-book.pdf
if [ "${{ matrix.database_edition }}" = "enterprise" ]; then
mkdir -p /usr/web/ent-docs/
tar -xzf /usr/web/ent-docs.tar.gz -C /usr/web/ent-docs/
mkdir -p /usr/web/ent-docs/site/pdf/
#cp -f /usr/web/ent-docs/${{ env.ACTIONTEST }}/pdf/NebulaGraph-CN.pdf /usr/web/ent-docs/site/pdf/NebulaGraph-book.pdf
else
mkdir -p /usr/web/nebula-docs/
tar -xzf /usr/web/nebula-docs.tar.gz -C /usr/web/nebula-docs/
mkdir -p /usr/web/nebula-docs/site/pdf/
#cp -f /usr/web/nebula-docs/${{ env.ACTIONTEST }}/pdf/NebulaGraph-CN.pdf /usr/web/nebula-docs/site/pdf/NebulaGraph-book.pdf
fi
# pip3 install --upgrade pip
# pip3 install -r /usr/web/nebula-docs/requirement.txt
# - name: Deploy
# uses: peaceiris/actions-gh-pages@v3
# with:
# github_token: ${{ secrets.DEPLOY_TOKEN }}
# publish_dir: ./site
14 changes: 7 additions & 7 deletions app/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
"style-loader": "^3.3.1",
"ts-loader": "^9.4.1",
"typescript": "^4.8.4",
"webpack": "^5.74.0",
"webpack": "^5.76.0",
"webpack-cli": "^4.10.0"
}
}
1 change: 1 addition & 0 deletions community_versions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"version": "3.4.1", "title": "3.4.1", "aliases": []}, {"version": "3.4.0", "title": "3.4.0", "aliases": []}, {"version": "3.3.0", "title": "3.3.0", "aliases": []}, {"version": "3.2.1", "title": "3.2.1", "aliases": []}, {"version": "3.1.3", "title": "3.1.3", "aliases": []}, {"version": "3.0.2", "title": "3.0.2", "aliases": []}, {"version": "2.6.2", "title": "2.6.2", "aliases": []}, {"version": "master", "title": "master", "aliases": []}]
5 changes: 5 additions & 0 deletions database_edition.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
database_edition: both
# Copy from the folowing words. Not write the word by your self
# community
# enterprise
# both
2 changes: 1 addition & 1 deletion docs-2.0/1.introduction/0-0-graph.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

## 图、图片与图论

图无处不在。当听到图这个词时,很多人都会想到条形图或折线图,因为有时候我们确实会把它们称作图。从传统意义上来说,图是用来展示两个或多个数据系统之间的联系的。最简单的例子如下图,下图展示了 NebulaGraph GitHub 仓库星星数量随时间推移的变化。
图无处不在。当听到图这个词时,很多人都会想到条形图或折线图,因为有时候我们确实会把它们称作图。从传统意义上来说,图是用来展示两个或多个数据系统之间的联系的。最简单的例子如下图,下图展示了{{nebula.name}} GitHub 仓库星星数量随时间推移的变化。

![image](https://user-images.githubusercontent.com/42762957/91426247-d3861000-e88e-11ea-8e17-e3d7d7069bd1.png "这不是本书所说的图")

Expand Down
8 changes: 4 additions & 4 deletions docs-2.0/1.introduction/0-1-graph-database.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ Neo4j 和属性图这种数据模型,最早构想于 2000 年。Neo4j 的创

Gremlin是基于Apache TinkerPop开发的图语言,其风格接近于一连串的函数(过程)调用。最初 Neo4j 的查询方式是通过 Java API。应用程序可以将查询引擎作为库(library)嵌入到应用程序中,然后使用 API 来查询图。

就在这段时间,NOSQL 这个概念开始出现。NOSQL 型的数据库引擎一般用 REST 和 HTTP 来交互和查询。Neo4j 的早期员工 Tobias Lindaaker、Ivarsson、Peter Neubauer 、Marko Rodriguez用 XPath 作为图查询,Groovy 提供循环结构,分支和计算(等图灵完毕的功能)。 这个就是 Gremlin 最初的原型。 2009 年 11 月发布了第一个版本。
就在这段时间,NoSQL 这个概念开始出现。NoSQL 型的数据库引擎一般用 REST 和 HTTP 来交互和查询。Neo4j 的早期员工 Tobias Lindaaker、Ivarsson、Peter Neubauer 、Marko Rodriguez用 XPath 作为图查询,Groovy 提供循环结构,分支和计算(等图灵完毕的功能)。 这个就是 Gremlin 最初的原型。 2009 年 11 月发布了第一个版本。

后来,Marko 发现同时用两种不同的解析器(XPath 和 Groovy)有很多问题,就将 Gremlin 改为基于 Groovy 的一种领域特定语言(DSL)。

Expand Down Expand Up @@ -153,7 +153,7 @@ Cypher 启发了一系列后续的图查询语言,包括

[^GSQL]: https://docs.tigergraph.com/dev/gsql-ref

2019 年,NebulaGraph 以 openCypher 为基础发布其扩展的图语言 NebulaGraph Query Language, nGQL。
2019 年,{{nebula.name}}以 openCypher 为基础发布其扩展的图语言 NebulaGraph Query Language, nGQL。

![Image](https://docs-cdn.nebula-graph.com.cn/books/images/langhis.jpg "图语言的历史")

Expand Down Expand Up @@ -240,6 +240,6 @@ Oracle graph[^Oracle] 是关系型数据库巨头 Oracle 在图技术与图数

[^Oracle]: https://www.oracle.com/database/graph/

#### 新一代开源分布式图数据库 NebulaGraph
#### 新一代开源分布式图数据库{{nebula.name}}

在下一章,我们将正式介绍新一代开源分布式图数据库 NebulaGraph
在下一章,我们将正式介绍新一代开源分布式图数据库{{nebula.name}}
4 changes: 2 additions & 2 deletions docs-2.0/1.introduction/0-2.relates.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

在关系型数据库中,可以为待存储的每种类型的数据创建一个表。例如,球员表用来存储所有的球员信息,球队表用来存储球队信息等。SQL 表中的每行数据都必须包含一个主键(primary key)。主键是该行数据的唯一标识符。一般地,主键作为字段 ID 都是随行数自增的。关系型数据库自问世以来一直为计算机行业提供着非常好的服务,并将未来很长的时间内继续服务下去。

如果你用过 Excel、WPS 或其他类似的应用,你就会大概了解到关系数据库是如何工作的。首先设置好列,然后在对应的列下添加行数据。你可以对某一列数据进行求平均值或其他聚合操作,这与在关系型数据库 MySQL 中求平均值的操作类似。而 EXcel 中的数据透视表则相当于在关系型数据库 MySQL 中使用聚合函数和 CASE 语句对数据进行查询。一个 EXcel 文件可以有多张表,一张表就相当于 MySQL 的一张表。一个 EXcel 文件则类似于一个 MySQL 数据库。
如果你用过 Excel、WPS 或其他类似的应用,你就会大概了解到关系数据库是如何工作的。首先设置好列,然后在对应的列下添加行数据。你可以对某一列数据进行求平均值或其他聚合操作,这与在关系型数据库 MySQL 中求平均值的操作类似。而 Excel 中的数据透视表则相当于在关系型数据库 MySQL 中使用聚合函数和 CASE 语句对数据进行查询。一个 Excel 文件可以有多张表,一张表就相当于 MySQL 的一张表。一个 Excel 文件则类似于一个 MySQL 数据库。

#### 关系型数据库中的关系

Expand Down Expand Up @@ -55,7 +55,7 @@ NoSQL 数据库的列式存储与 NoSQL 数据库的键值存储有许多相似

#### 图存储

最后一类 NoSQL 数据库是图数据库。本书重点讨论的 NebulaGraph 也是一种图数据库。虽然同为 NoSQL 型数据库,但是图数据库与上述 NoSQL 数据库有本质上的差异。图数据库以点、边、属性的形式存储数据。其优点在于灵活性高,支持复杂的图形算法,可用于构建复杂的关系图谱。我们将在随后的章节中详细讨论图数据库。不过在本章中,你只要知道图数据库是一种 NoSQL 类型的数据库就可以了。常见的图数据库有:NebulaGraph、Neo4j、OrientDB 等。
最后一类 NoSQL 数据库是图数据库。本书重点讨论的{{nebula.name}}也是一种图数据库。虽然同为 NoSQL 型数据库,但是图数据库与上述 NoSQL 数据库有本质上的差异。图数据库以点、边、属性的形式存储数据。其优点在于灵活性高,支持复杂的图形算法,可用于构建复杂的关系图谱。我们将在随后的章节中详细讨论图数据库。不过在本章中,你只要知道图数据库是一种 NoSQL 类型的数据库就可以了。常见的图数据库有:{{nebula.name}}、Neo4j、OrientDB 等。

## 图技术方面

Expand Down
Loading

0 comments on commit d49acc1

Please sign in to comment.