图数据库

什么是图:

1. 由节点和关系组成
2. 每个节点代表一个实体,每个关系代表两个节点的联系方式。

图数据库:

1. 图数据库就是用图这种数据结构存储和
查询数据的。


2. 与其他关系型数据库或者nosql数据库相比,
图数据库的模型更简单,也更值观。


3. 图数据库更适合用来解决复杂的关系问题,使用图检索的特定语言,可以快速进行图的遍历和关系探查,不需要大量的递归查询和多表联合查询。

 

图数据库的应用场景:

1. 社交领域:管理社交关系,可以找共同好友,好友推荐等。

2. 零售领域:进行商品推荐。

3. 安全领域:通过风险目标的周边信息,判断存在的风险。

4. 其他:图数据库基本能胜任亿级以上的数据。

从下图中也可以看出,图数据库受欢迎程度增长很快。

几款主流图数据库对比

Hugegraph:

https://hugegraph.github.io/hugegraph-doc/performance/hugegraph-benchmark-0.5.6.html

         HugeGraph支持百亿以上的顶点和边快速导入,并提供毫秒级的关联关系查询能力(OLTP), 并可与Hadoop、Spark等大数据平台集成以进行离线分析(OLAP)。
         
       1.  可扩展:支持分布式存储、数据多副本及横向扩容

       2.  支持从多数据源批量导入数据(包括本地文件、HDFS文件、MySQL数据库等数据源),支持多种文件格式导入(包括TXT、CSV、JSON等格式)

       3. 具备可视化操作界面,可用于操作、分析及展示图

       4. 与Hadoop、Spark GraphX等大数据系统集成,支持Bulk Load操作

       5. 一定程度上借鉴了Jaunsgraph,增加了很多特性

安装:

Hugegraph-server:  是HugeGraph项目的核心部分,也就是引擎

Hugegraph-loader:  是基于HugeGraph-Client的数据导入工具,将普通文本数据转化为图形的顶点和边并插入图形数据库中;

Hugegraph-staudio:  是HugeGraph的Web可视化工具,可用于执行Gremlin语句及展示图;
安装简单,不需要复杂的配置。

数据写入:

以mysql为例:
        1.需要schema.groovy。  这个文件用来指明,图中的所有节点和边存在哪些属性,存在什么样的节点,有什么样的属性。

schema.propertyKey("idx_code").asText().ifNotExist().create();
schema.propertyKey("status").asInt().ifNotExist().create();
schema.edgeLabel("useing").sourceLabel("api").targetLabel("lab").properties("status").nullableKeys("status").ifNotExist().create();

        2.需要struct.json 。用来指明,节点和边分别对应哪些表。

hdfs 和 csv等其他文件类似。

数据查询:

Hugegraph 支持gremlin语言:

寻找 dalaro 的合作者:
g.V('dalaro').as('a').out('created').in('created').where(neq('a'))

求各个地区作者的平均年龄:
g.V().hasLabel('person').group().by('addr').by(values('age').mean())

JavaAPI

HugeClient hugeClient = new HugeClient("http://localhost:8080", "hugegraph");

GremlinManager gremlin = hugeClient .gremlin();

ResultSet resultSet = gremlin.gremlin("g.V().outE().path()").execute();

Iterator<Result> results = resultSet.iterator();

 

Gramlin 支持循环、逻辑运算、数学运算、合并、分支、排序、过滤、聚合等等。

个人在使用Hugegraph体会:

1. 虽然支持多图,但是无法向mysql那样方便直接创建,需要修改配置文件。

2. 节点删除复杂,不能通过节点主键直接删除节点和连带关系,需要一层一层的删除。

3. 出现超级节点怎么解决。

4. 关系探查简单,查询性能高。

5. 有可视化界面,层级关系一目了然

6. Gremlin语法简单明了。

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值