图数据库

数据库类型

关系型数据库(Excel)行

  1. MySQL

  2. SQL Server

  3. Oracle

  4. PostgreSQL

键值数据库(内存数据)

  1. Redis

  2. Memcached

列数据库(列)横向关系的转置

  1. HBase

文档型数据库

  1. MongoDB

图数据库

  1. neo4j

  2. Bgraph

  3. Hugegraph

图数据库简介

图数据库主要由两部分构成:点和连接点(边)

能够简化关系型数据库需要通过多次Join或者需要多次遍历才能描述出的关系

Hugegraph简介

image-20220901095208268

  • 可以自定义后端存储(mysql,hbase,rocksdb...)

  • 数据库导入工具

  • 数据可视化

  • 一个数据库支持3张图,相当于三个数据库,之前是隔离的,最大支持存储100g的数据

  • 支持高可用,分布式集群部署

  • 数据的备份和数据恢复

  • 图算法(最短路径,连通子图...)

  • 索引,内嵌分词

  • 支持Gremlin

下载,安装

下载:下载地址

版本对应关系:

image-20220901111610106

components描述下载/版本
HugeGraph-Server The main program of HugeGraph 0.12.0
HugeGraph-Hubble Web-based Visual Graphical Interface 1.6.0
HugeGraph-Loader Data import tool 0.12.0
HugeGraph-Tools Command line toolset 1.6.0

 

服务端-HugeGraph-Server Quick Start

 

数据导入工具-HugeGraph-Loader Quick Start

 

命令行工作集-HugeGraph-Tools Quick Start

 

控制台Web可视化界面-HugeGraph-Hubble Quick Start

 

客户端-HugeGraph-Client Quick Start

 

需要JDK1.8或以上

启动,运行

  1. 启动hugegraph-Server

    • 解压hugegraph-0.12.0.tar.gz

    • 进入bin目录

    • 执行init

    • 执行start

手动编译(跳过测试)

mvn package -DskipTests

  1. 启动hugegraph-hubble可视化

    • 解压hugegraph-hubble-1.6.0.tar.gz

    • 进入bin目录

    • 执行start

  2. 启动hugegraph-loader导入数据,数据建模

    • 解压hugegraph-loader-0.12.0.tar.gz

    • 写数据文件(点数据json、边数据json)

    • 执行导入命令

    • bin/hugegraph-loader -h 127.0.0.1 -p 8080 -g {GRAPH_NAME} -f ${INPUT_DESC_FILE} -s ${SCHEMA_FILE} -h {HOST} -p {PORT}

      bin/hugegraph-loader -h 127.0.0.1 -p 8080 -g hugegraph -f E:wangxiang\example.json  -s E:example\schema.groavy
  3. hugegraph-client

neo4j

下载地址:https://neo4j.com/download-center/#community

community为社区版本

Enterprise为企业版本

beo4j 3版本后的需要JDK8

beo4j 4版本后的需要JDK11

配置环境变量<NEO4J_HOME>

修改配置文件neo4j.conf,将dbms.default_listen_address=0.0.0.0配置放开,允许除本机外其他地址也能访问

通过控制台启动:neo4j.bat console

基本元素与概念

节点(node)

表示一个实体记录,就像关系数据库中的一条记录。一个节点包含多个属性和标签。

关系(relationship)

关系用于将节点关联起来构成图,关系也成为图论的边(Edge')

属性(property)

节点和关系都可以有多个属性。属性是由键值对组成的,就像JAVA当中哈希。

标签(lable)

标签指示一组拥有相同属性的节点,但不强制要求相同,一个节点可以有多个标签。

路径(path)

图中任意两个节点都存在有关系组成的路径,路径有长短之分。

Cypher查询语言

Cypher是一种声明式图数据库查询语言,类似关系数据库当中的SQL。Cypher设计借鉴了其他

如SQL、Phthon语言惯用作法。

MATCH:匹配图模式

WHERE:过滤条件

RETURN:定义返回结果

基本语法:

增:CREATE

删:DELETE

改:SET

查:MATCH

函数:

witch:

count:

 

()->代表节点

{}->代表属性

[]->代表关系

查询所有节点信息:

match(p:pig) return p

创建节点:

create (:pig{name:"猪奶奶",age:14});

创建关系:

match (a:pig{name:"猪爷爷"}) match(b:pig{name:"猪奶奶"}) create (a)-[c:夫妻]->(b) return c;

创建节点和关系:

create (:pig{name:"猪爸爸",age:8}) -[:夫妻{age:5}] -> (:pig{name:"猪妈妈",age:6})

修改属性:

match(p:pig{name:"猪妈妈"}) set p.age=8;

删除属性:

match(p:die{name:"猪祖父"}) delete p;

查询最短路径:

match p=shortestpath((a:pig{name:"佩奇"})-[*]->(b:pig{name:"猪奶奶"})) return p;

match p=shortestpath((a:pig{name:"佩奇"})-[*]->(b:pig{name:"猪奶奶"})) return p;

 

 

 

 

 

 

posted on 2022-11-22 11:08  太阳当空照```  阅读(213)  评论(0)    收藏  举报

导航