第九章 Apache AGE 集成与图数据库实战 - 第一节:Apache AGE 简介与安装
文章目录
第九章 Apache AGE 集成与图数据库实战
第一节 Apache AGE 简介与安装
目标:正式深入学习 Apache AGE,理解其架构和工作原理,并成功在 PostgreSQL 环境中完成 AGE 的安装和配置。
经过前两章对 ltree
和 JSONB
模拟图的探索,我们已经深刻理解了在 PostgreSQL 中处理图状数据的不同策略及其权衡。现在,我们将进入一个功能更强大、更专业的领域——使用 Apache AGE (A Graph Extension) 将 PostgreSQL 转变为一个真正的多模型图数据库。
什么是 Apache AGE?
Apache AGE 是一个基于 PostgreSQL 构建的图数据库扩展。它的名字来源于 “A Graph Extension”。作为一个 Apache 软件基金会的顶级项目,它旨在为 PostgreSQL 用户提供一个健壮、功能完备的图数据处理能力。
核心架构理念: AGE 并非一个独立的数据库,也不是一个中间件。它是一个深度集成到 PostgreSQL 内核的扩展。这意味着:
- 数据共存:图数据(节点和边)与关系数据(表和行)存储在同一个数据库实例中。
- 事务统一:你可以用一个事务同时修改关系数据和图数据,享受 ACID 保证。
- 生态复用:AGE 可以直接利用 PostgreSQL 成熟的备份、恢复、安全、高可用等所有运维工具和生态。
图片来源: Apache AGE 官方网站
安装 Apache AGE
安装 AGE 比安装 contrib
模块中的扩展要复杂一些,因为它需要针对你正在使用的 PostgreSQL 版本进行编译。
先决条件:
- 一个正在运行的 PostgreSQL 实例 (例如,版本 11 到 15,请查阅 AGE 官方文档以获取最新的版本兼容性列表)。
- PostgreSQL 的开发库 (
postgresql-server-dev-XX
)。 - 标准的编译工具链 (
build-essential
,git
,cmake
等)。
从源码编译安装 (推荐方法)
这是最通用、最可靠的安装方法。
1. 安装编译依赖
|
|
(请将版本号 15
替换为你自己的 PostgreSQL 版本)
2. 克隆 AGE 源码 从官方 GitHub 仓库克隆最新的稳定版本。
|
|
3. 编译和安装
|
|
make install
命令会自动将编译好的 AGE 文件(.so
, .sql
, .control
)复制到 PostgreSQL 正确的目录中。
4. 重启 PostgreSQL 服务 为了让 PostgreSQL 加载新的共享库,必须重启服务。
|
|
在数据库中配置 AGE
安装完成后,还需要在数据库层面进行一些配置。
1. 修改 postgresql.conf
你需要将 AGE 添加到 shared_preload_libraries
配置项中。这个设置告诉 PostgreSQL 在启动时预加载 AGE 的共享库,这是 AGE 正常工作所必需的。
找到 postgresql.conf
文件 (通常在 /etc/postgresql/15/main/postgresql.conf
),添加或修改以下行:
|
|
如果已有其他库(如 pg_stat_statements
),用逗号分隔:
shared_preload_libraries = 'pg_stat_statements,age'
再次重启 PostgreSQL 服务以使配置生效。
2. 在数据库中创建扩展 连接到你希望使用 AGE 的数据库,然后执行:
|
|
3. 验证安装 执行一个简单的 AGE 函数来验证是否一切正常。
|
|
📌 小结
成功安装和配置 Apache AGE 是踏入 PostgreSQL 图数据库世界的第一步,也是最关键的一步。虽然过程比普通扩展稍显复杂,但它为你解锁了前所未有的数据处理能力。
关键回顾:
- AGE 是一个深度集成的 PostgreSQL 扩展。
- 安装通常需要从源码编译。
- 必须将
age
添加到shared_preload_libraries
并重启 PostgreSQL。 - 最后在目标数据库中
CREATE EXTENSION age
。
在下一节中,我们将开始学习 AGE 的核心——使用 openCypher 查询语言来创建和操作图数据。