目录
1. 背景
-
什么是图数据库?
图数据库(graph database,GDB)是一个使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。
-
图数据库与关系型数据库有哪些区别?
-
建模方式
图数据库使用图结构来表示和存储数据,图由节点、边和属性组成,可以直观地反映实体之间的关系。关系型数据库使用二维表格来存储数据,表之间通过主外键等方式建立联系,需要更高的抽象层次。
-
查询语言
图数据库使用专门的图查询语言,如 Cypher 和 Gremlin,可以更贴合自然语言的方式限定查询条件,易于表达查询需求。关系型数据库使用 SQL 查询语言,对于多层的关系 Join 查询时,语句非常复杂,且效率低下。
-
复杂关系查询能力
图数据库以实体和关系为基本单位,特别适合查询和分析多层次、多样的复杂关系;关系数据库则在复杂关系查询方面不堪重负,尤其是涉及多表关联或者递归查询时。
-
数据规模
图数据库的实现可以基于 KV 存储,如 Titan(Janus)、HugeGraph 等图数据库,可以高效方便地存储亿或十亿级别的数据;关系型数据库在此规模下,必须进行复杂的分库分表设计,不然根本无法胜任。
-
灵活性和敏捷性
图数据库天生就是灵活可扩展的,可以对已存在的图结构增加新的边、节点、标签和子图,但却不会破坏现有的查询和应用程序的功能。关系型数据库则需要进行 Schema 变更等代价不菲的管理操作。
-
-
AgensGraph 图数据库有哪些优势?
AgensGraph是一个基于PostgreSQL的新一代多模型图数据库,它可以同时支持图模型和关系模型,以及文档模型和KV模型。
- 提供图形分析环境,用户可以同时编写、编辑和执行SQL和Cypher查询,实现混合查询处理。
- 带有PostgreSQL兼容性和PostgreSQL扩展,能够帮助PostgreSQL用户摆脱数据迁移的痛苦,轻松开发提供高级数据分析的服务。
- 支持ACID事务,高可用性,分布式存储和查询优化等企业级特性。
- 可以利用PostgreSQL丰富的其他特性,比如PostGIS,或者数据库自己的事务隔离等等。
2. 环境准备
操作系统 / 软件 | 版本 | 下载地址 | 描述 |
---|---|---|---|
CentOS | 7.6 | CentOS 7.6 镜像下载地址 | CentOS 7.6 是 CentOS Linux 7 的第七个发行版本,于 2018 年 11 月发布。它是一个基于 Red Hat Enterprise Linux 7.6 源代码的稳定、可管理、可预测的平台。它支持多种架构,包括 x86_64、aarch64、ppc64le、s390x 等 |
Yukon_2.0-Agensgraph | 2.0 | Yukon_2.0-Agensgraph 下载地址 | 支持图数据存储能力,实现图与空间一体化存储 |
AgensGraph | 2.13 | AgensGraph 2.13.0 下载地址 | AgensGraph 2.13 是一款新一代的多模型图数据库,于 2022 年 10 月发布。它基于 PostgreSQL,一款可靠的开源关系数据库,同时支持关系和图数据模型,使开发者能够在一个数据库中集成传统的关系数据模型和灵活的图数据模型。AgensGraph 支持 ANSI-SQL 和 openCypher,可以在一个查询中集成 SQL 和 Cypher 语句 |
3. 安装流程
3.1. 操作系统环境配置
-
检查当前主机名
sudo vim /etc/hostname
- 若当前主机名为 localhost.localdomain,则修改,否则后续安装 Yukon 可能会抛异常。修改主机名后执行以下命令加载新主机名
sudo systemctl restart systemd-hostnamed
- 若当前主机名为 localhost.localdomain,则修改,否则后续安装 Yukon 可能会抛异常。修改主机名后执行以下命令加载新主机名
-
检查当前系统防火墙状态,此处为方便可以直接禁用,否则后续无法远程访问数据库
sudo systemctl status firewalld.service
sudo systemctl stop firewalld.service sudo systemctl status firewalld.service
sudo systemctl disable firewalld.service
注意:也可以不禁用防火墙,指定开放图数据库端口,具体操作命令建议百度,此处不再详细讲解
3.2. 安装 AgensGraph 2.13.0 图数据库
-
安装 AgensGraph 图数据库依赖环境
sudo yum install -y gcc glibc glib-common readline readline-devel zlib zlib-devel flex bison
-
解压 AgensGraph 图数据库安装包并进入目录
tar -zxvf agensgraph-2.13.0.tar.gz
-
配置 AgensGraph 图数据库
./configure --prefix=/home/centos
-
编译安装 AgensGraph 图数据库
make make install
-
配置 AgensGraph 图数据库环境变量
-
编辑 ~/.bashrc 文件
vim ~/.bashrc
-
在 ~/.bashrc 文件中添加 AgensGraph 环境配置
export AGHOME=/home/centos export AGDATA=$AGHOME/data export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$AGHOME/bin:$AGHOME/lib export PGDATA=$AGDATA
-
应用 AgensGraph 环境配置
source ~/.bashrc
-
-
初始化 AgensGraph 图数据库
initdb -D $AGDATA
-
安装过程结束后执行 AgensGraph 图数据库启动命令
ag_ctl -D $AGDATA -l logfile start ag_ctl -D $AGDATA -l logfile status
-
关闭 AgensGraph 图数据库后修改 AgensGraph 图数据库远程访问配置
-
停止运行 AgensGraph 图数据库
ag_ctl -D $AGDATA -l logfile stop
-
进入 AgensGraph 图数据库配置目录
cd /home/centos/data/ vim postgresql.conf vim pg_hba.conf
-
修改 postgresql.conf 配置文件
-
修改 pg_hba.conf 配置文件
-
3.3. 安装 Yukon_2.0-AgensGraph 插件
-
解压 Yukon_2.0-Beta-Agensgraph_2.13-Centos_7.6.tar.gz 安装包并进入 Yukon 安装目录
tar -zxvf Yukon_2.0-Beta-Agensgraph_2.13-Centos_7.6.tar.gz cd yukon
-
安装 Yukon 插件
sh install -i
-
配置 Yukon 依赖的动态链接库
-
编辑 /etc/ld.so.conf 配置文件
sudo vim /etc/ld.so.conf
-
添加以下配置内容
/home/centos/lib
-
保存并退出后执行 ldconfig 命令
sudo ldconfig
-
-
启动 AgensGraph 图数据库
ag_ctl -D $AGDATA -l logfile start
-
若启动时出现 “FATAL: could not load library “/home/centos/lib/postgresql/postgis-3.so”: libgeos_c.so.1: cannot open shared object file: No such file or directory” 异常信息
-
重新执行以下命令即可修复
source ~/.bashrc sudo ldconfig
-
4. 使用教程
-
新建用户
psql -d postgres CREATE USER supermap WITH SUPERUSER password 'SuperMap@123'; \q
-
新建表空间,需要确保表空间目录存在,若不存在则手动创建对应目录后再执行以下命令
psql -d postgres -U supermap -w 'SuperMap@123' CREATE TABLESPACE supermapYukonspace LOCATION '/home/centos/data/supermap';
-
新建数据库
CREATE DATABASE supermap ENCODING='UTF8' TABLESPACE=supermapYukonspace; \q
-
新建 Schema
psql -d supermap -U supermap -w 'SuperMap@123' CREATE SCHEMA supermap;
-
在新 Schema 上添加 Yukon 扩展
CREATE EXTENSION postgis WITH SCHEMA supermap; CREATE EXTENSION postgis_raster WITH SCHEMA supermap; CREATE EXTENSION postgis_sfcgal WITH SCHEMA supermap; CREATE EXTENSION yukon_geomodel WITH SCHEMA supermap; CREATE EXTENSION yukon_geogridcoder WITH SCHEMA supermap; CREATE EXTENSION yukon_vector_pyramid WITH SCHEMA supermap;
-
新建图
CREATE GRAPH supermapgraph;
-
使用 SuperMap iDesktopX 知识图谱功能连接 Yukon_2.0-AgensGraph 图数据库
-
知识图谱功能入口:开始》图谱
-
连接参数设置
-
连接成功后会显示知识图谱菜单栏和默认显示图谱管理器
-
iDesktopX 连接 Yukon 成功后,就可以正常使用 iDesktopX 提供的知识图谱相关能力构建合适的知识图谱辅助项目分析决策了。