Skip to content
Permalink
Browse files
hugegraph-1119 fix tiny description error
Change-Id: I78fa21f7f7fd898714a0e324cb089a95d2a77b6c
  • Loading branch information
zhoney committed Mar 20, 2018
1 parent 029add5 commit 41b3a511d670e641dcc605d88f5564110be78082
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 22 deletions.
@@ -109,7 +109,7 @@ gremlin> g.E()
==>e[S1:marko>2>>S2:lop][1:marko-created->2:lop]
```

更多的gremlin语句请参考[Tinkerpop官网](http://tinkerpop.apache.org/docs/current/reference/)
更多的Gremlin语句请参考[Tinkerpop官网](http://tinkerpop.apache.org/docs/current/reference/)

### 2、Client/Server请求模式

@@ -49,7 +49,7 @@

由于属于某一label的数据量可能比较多,请加上limit限制。

- 通过`Restful API`操作图是可以的,但是发送`gremlin`语句就报错:`Request Failed(500)`
- 通过`Restful API`操作图是可以的,但是发送`Gremlin`语句就报错:`Request Failed(500)`

可能是`GremlinServer`的配置有误,检查`gremlin-server.yaml``host``port`是否与`rest-server.properties``gremlinserver.url`匹配,如不匹配则修改,然后重启服务。

@@ -61,7 +61,7 @@

目前确实没有好办法删除全部的数据,用户如果是自己部署的`Server`和后端,可以直接清空数据库,重启`Server`。后续版本会加入分页机制支持该功能。

- 清空了数据库,并且执行了`init-store`,但是添加`schema`时提示"xxx has exised"
- 清空了数据库,并且执行了`init-store`,但是添加`schema`时提示"xxx has existed"

`HugeGraph Server`内是有缓存的,清空数据库的同时是需要重启`Server`的,否则残留的缓存会产生不一致。

@@ -2,30 +2,28 @@

## 1. 概述

本示例将[Titandb Getting Started](http://s3.thinkaurelius.com/docs/titan/1.0.0/getting-started.html)
为模板来演示HugeGraph的使用方法。通过对比HugeGraph和
[Titandb Getting Started](http://s3.thinkaurelius.com/docs/titan/1.0.0/getting-started.html)
可以了解HugeGraph和Titandb的差异。
本示例将[TitanDB Getting Started](http://s3.thinkaurelius.com/docs/titan/1.0.0/getting-started.html)
为模板来演示HugeGraph的使用方法。通过对比HugeGraph和TitanDB,了解HugeGraph和TitanDB的差异。

## 1.1 HugeGraph与Titandb的异同
## 1.1 HugeGraph与TitanDB的异同

HugeGraph和Titandb都是基于[Apache TinkerPop 3](https://tinkerpop.apache.org)框架的图数据库,均支持[Gremlin](https://tinkerpop.apache
HugeGraph和TitanDB都是基于[Apache TinkerPop 3](https://tinkerpop.apache.org)框架的图数据库,均支持[Gremlin](https://tinkerpop.apache
.org/gremlin.html)图查询语言,在使用方法和接口方面具有很多相似的地方。然而HugeGraph是全新设计开发的,其代码结构清晰,功能较为丰富,接口更为友好等特点。

HugeGraph相对于Titandb而言,其主要特点如下:
HugeGraph相对于TitanDB而言,其主要特点如下:

* HugeGraph拥有较为完善的工具组件。HugeGraph目前有HugeApi、HugeClient、HugeLoader、HugeStudio、HugeSpark等完善的工具组件,可以完成系统集成、数据载入、图可视化查询、Spark
连接等功能;

* HugeGraph具有Server和Client的概念,第三方系统可以通过jar引用、client、api等多种方式接入,而Titandb仅支持jar引用方式接入
* HugeGraph具有Server和Client的概念,第三方系统可以通过jar引用、client、api等多种方式接入,而TitanDB仅支持jar引用方式接入

* HugeGraph的Schema需要显式定义,所有的插入和查询均需要通过严格的schema校验,目前暂不支持schema的隐式创建。

* HugeGraph充分利用后端存储系统的特点来实现数据高效存取,而Titandb以统一的Kv结构无视后端的差异性
* HugeGraph充分利用后端存储系统的特点来实现数据高效存取,而TitanDB以统一的Kv结构无视后端的差异性

* HugeGraph的更新操作可以实现按需操作(例如:更新某个属性)性能更好。Titandb的更新是read and update方式。
* HugeGraph的更新操作可以实现按需操作(例如:更新某个属性)性能更好。TitanDB的更新是read and update方式。

* HugeGraph的VertexId和EdgeId均支持拼接,可实现自动去重,同时查询性能更好。Titandb的所有Id均是自动生成,查询需要经索引。
* HugeGraph的VertexId和EdgeId均支持拼接,可实现自动去重,同时查询性能更好。TitanDB的所有Id均是自动生成,查询需要经索引。


## 1.1 人物关系图谱
@@ -71,8 +69,8 @@ label`中的Id策略配置才能正确解析`vertexId`。
`edge label` 满足 " 相同的一组`source vertex label``target vertex label`只能有一个唯一的`edge label` "约束的前提下,
可以通过`edge label`获取唯一的`src vertex label``tgt vertex label`,而不需要冗余存储`src vertex label``tgt vertex label`信息。

因此本例子将原Titandb中的monster, god, human, demigod均使用相同的`vertex label: character`来表示, 同时增加属性type来标识人物的类型。
`edge label`与原Titandb保持一致。当然为了满足`edge label`约束,也可以通过调整`edge label``name`来实现。
因此本例子将原TitanDB中的monster, god, human, demigod均使用相同的`vertex label: character`来表示, 同时增加属性type来标识人物的类型。
`edge label`与原TitanDB保持一致。当然为了满足`edge label`约束,也可以通过调整`edge label``name`来实现。

## 2. Graph Schema and Data Ingest Examples
HugeGraph需要显示创建Schema,因此需要依次创建PropertyKey、VertexLabel、EdgeLabel,如果有需要索引还需要创建IndexLabel。
@@ -213,7 +211,7 @@ g.V(pluto).out('brother').as('god').out('lives').as('place').select('god','place
### 3.2 总结

HugeGraph目前支持Gremlin的语法,用户可以通过Gremlin语句实现各种查询需求,但是目前HugeGraph的暂不支持'Or'类型查询和全文检索功能,因此也不支持多label查询。
和Titandb相比HugeGraph不支持的查询语句包括
和TitanDB相比HugeGraph不支持的查询语句包括

1. `g.V(hercules).out('father', 'mother')`

@@ -128,7 +128,7 @@ store|用于遍历返回的非阻塞聚合|[store step](http://tinkerpop.apache.
tree|将顶点中的路径聚合到树中|[tree step](http://tinkerpop.apache.org/docs/current/reference/#tree-step)
unfold|将迭代器作为步骤展开|[unfold step](http://tinkerpop.apache.org/docs/current/reference/#unfold-step)
union|合并多个遍历返回的结果|[union step](http://tinkerpop.apache.org/docs/current/reference/#union-step)
V|包括顶点与边缘之间的遍历所需的步骤`V``E``out``in``both``outE``inE``bothE``outV``inV``bothV``otherV` |[order step](http://tinkerpop.apache.org/docs/current/reference/#vertex-steps)
V|包括顶点与边之间的遍历所需的步骤`V``E``out``in``both``outE``inE``bothE``outV``inV``bothV``otherV` |[order step](http://tinkerpop.apache.org/docs/current/reference/#vertex-steps)
where|用于筛选遍历返回的结果。 支持 `eq``neq``lt``lte``gt``gte``between` 运算符|[where step](http://tinkerpop.apache.org/docs/current/reference/#where-step)


@@ -233,8 +233,9 @@ The Art of French Cooking, Vol. 1|Louisette Bertholie
导入过程由用户提交的命令控制,用户可以通过不同的参数控制执行的具体流程。

#### 4.3.1 参数说明

必要参数(Y/N) | 参数 | 默认值 | 描述信息
--- | --- | --- | --- | ---
--- | --- | --- | ---
Y | -f | NONE | 配置脚本的路径
Y | -g | NONE | 图形数据库空间
N | -h | localhost | HugeServer 的地址
@@ -257,7 +257,7 @@ HugeGraphServer的RestAPI包括三种类型的资源,分别是graph、schema

- `schema` 包含`vertexlabels``propertykeys``edgelabels``indexlabels`

- `gremlin`包含各种`gremlin`语句,如`g.v()`
- `gremlin`包含各种`Gremlin`语句,如`g.v()`

#### 5.2.1 获取`hugegraph`的顶点及相关属性

@@ -158,5 +158,5 @@ $ cp baidu/xbu-data/hugegraph-spark/target/hugegraph-spark-0.1.0-SNAPSHOT-jar-wi

## 5.限制

- 一个分区的的元素个数需要小于4 亿(1<<32)
- 分区的个数需要小于2亿(1<< 31).
- 一个分区的的元素个数需要小于40 亿(1<<32)
- 分区的个数需要小于20亿(1<< 31).

0 comments on commit 41b3a51

Please sign in to comment.