Oracle 26ai 图数据库

📢📢📢📣📣📣

作者:IT邦德

中国DBA联盟(ACDU)成员,15年DBA工作经验

Oracle、PostgreSQL ACE

CSDN博客专家及B站知名UP主,全网粉丝15万+

擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复,

安装迁移,性能优化、故障应急处理

文章目录

  • 1.图数据库介绍
  • 2.安装PGX
    • [2.1 创建用户](#2.1 创建用户)
    • [2.2 JDK安装](#2.2 JDK安装)
    • [2.3 Graph Server安装](#2.3 Graph Server安装)
  • 3.创建PGQL
    • [3.1 PGQL创建属性图](#3.1 PGQL创建属性图)
    • [3.2 PGQL属性图的元数据](#3.2 PGQL属性图的元数据)
    • [3.3 PGQL属性图](#3.3 PGQL属性图)

1.图数据库介绍

传统的关系型数据库在表达复杂、多层级的连接关系时非常低效。例如,查询"A的朋友的朋友的朋友"或追踪一笔可疑资金在多层账户间的流向,可能需要几十次甚至上百次SQL JOIN操作,性能差且代码复杂。Oracle图数据库正是为了解决这类"连接数据"的查询和分析而设计的。

Oracle图数据库是一个强大、集成、企业就绪的解决方案。它最大的优势在于"融合"------将图数据处理能力无缝集成到你现有的Oracle数据库基础设施中,让你能利用标准的SQL和开发工具,应对传统关系型数据库难以处理的复杂关系分析挑战,无论是在欺诈检测、供应链追溯还是AI知识图谱构建中,都能发挥巨大价值。

Oracle图数据库提供了一整套强大、开箱即用的功能:

  1. 两种图模型支持
    属性图:侧重分析,用于社交网络、欺诈检测、知识图谱。通过SQL或PGQL(Property Graph Query Language)查询。
    RDF图:侧重语义,用于元数据管理、数据集成和知识表示。支持标准的SPARQL查询语言。
  2. 内置超过80种并行内存中算法
    无需自己编写复杂的算法,Oracle Graph直接内置了80多种高性能、并行化的图分析算法,包括:
    社区检测:Louvain、标签传播、强连通分量等
    路径查找:Dijkstra最短路径、广度优先搜索等
    排名与行走:PageRank、个性化PageRank、介数中心性等
    机器学习:DeepWalk、GraphWise等图神经网络相关算法
  3. SQL Property Graphs (SQL属性图)
    从Oracle Database 23ai开始,Oracle率先实现了最新的SQL:2023标准。这意味着你可以用纯SQL语法来定义和查询属性图,极大降低了DBA和开发者的学习成本。
  4. GraphRAG:知识图谱增强检索
    这是AI时代的核心能力。Oracle Graph将知识图谱与RAG结合,能显著提升AI问答的准确性和可解释性,让你能追溯AI回答的源头。

2.安装PGX

安装Graph Server,PGX,下载页面输入Oracle Graph Server and Client

https://edelivery.oracle.com/

2.1 创建用户

alter session set container=SALPDB1;

create user MY_CUSTOM identified by oracle;

grant connect,resource to MY_CUSTOM;

GRANT GRAPH_DEVELOPER TO MY_CUSTOM;

GRANT GRAPH_ADMINISTRATOR to MY_CUSTOM;

2.2 JDK安装

https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz

java -version 检查一下 JDK 版本是否符合要求

安装 OpenJDK 17

yum install -y java-17-openjdk-devel

配置系统默认 Java 版本

alternatives --config java

在列表中选择 java-17-openjdk 对应的编号,回车确认

确认安装是否成功

java -version

2.3 Graph Server安装

mount /dev/cdrom /mnt

rpm -i oracle-graph-26.1.0.x86_64.rpm

bash 复制代码
配置文件修改
vim /etc/oracle/graph/pgx.conf
"jdbc_url": "jdbc:oracle:thin:@192.168.2.14:1521/salpdb1"
vim /etc/oracle/graph/server.conf
{
  "port": 7007,
  "enable_tls": false,
  "enable_client_authentication": false,
  "working_dir": "/opt/oracle/graph/pgx/tmp_data"
}

chown -R :oraclegraph /opt/oracle/graph/pgx/tmp_data

chmod 0770 /opt/oracle/graph/pgx/tmp_data

systemctl daemon-reload

systemctl start pgx

systemctl start pgx

3.创建PGQL

PGQL的全称为Property Graph Query Language

https://pgql-lang.org/

3.1 PGQL创建属性图

CREATE PROPERTY GRAPH语句使用PGQL方式会创建一个包含图元数据的类似于视图的对象。这个图可以使用PGQL查询。

PGQL属性图直接在存在于关系型表中数据上创建。这些图存储在数据库表中,他们有自己的SCHEMA。

PGQL属性图的一个主要的好处就是所有数据库表的更新会立即在图中展示。

1)PGQL属性图的元数据表

当通过CREATE PROPERTY GRAPH创建PGQL属性图时,元数据表会在本SCHEMA下创建。

2)创建一个PGQL属性图

CREATE PROPERTY GRAPH语句的OPTIONS子句可以指定创建属性图的执行模式。

可以使用RDBMS Java API或通过SQLcl(就是之前说过的sql)来创建PGQL属性图。

可以通过图可视化工具或SQLcl来查询PGQL属性图。

bash 复制代码
ALTER USER MY_CUSTOM QUOTA UNLIMITED ON SYSTEM;
DROP PROPERTY GRAPH my_custom.students_network;

CREATE PROPERTY GRAPH students_network
  VERTEX TABLES (
    persons KEY (person_id)
      LABEL person
        PROPERTIES (person_id, name, birthdate AS dob),
    university KEY (id)
  )
  EDGE TABLES (
    friends
      KEY (friendship_id)
      SOURCE KEY (person_a) REFERENCES persons(person_id)
      DESTINATION KEY (person_b) REFERENCES persons(person_id)
      PROPERTIES (friendship_id, meeting_date),
    student_of
      SOURCE KEY (s_person_id) REFERENCES persons(person_id)
      DESTINATION KEY (s_univ_id) REFERENCES university(id)
      PROPERTIES (subject)
  ) OPTIONS (PG_PGQL);

3.2 PGQL属性图的元数据

可以使用PGQL查询从一个名为PROPERTY_GRAPH_METADATA的内建图中查询PGQL属性图的元数据,图的结构如下:

SELECT e

FROM MATCH ()-e->() ON PROPERTY_GRAPH_METADATA

LIMIT 100

3.3 PGQL属性图

这里操作能用PGX来实现

SELECT e

FROM MATCH ()-e->() ON STUDENTS_NETWORK

LIMIT 100

相关推荐
阿成学长_Cain15 小时前
Linux ipcs 命令超全详解:查看共享内存 / 消息队列 / 信号量,IPC 运维必备
linux·运维·服务器·网络·数据库
OceanBase数据库官方博客17 小时前
OceanBase AI 时代,数据库的变与不变(技术解析与实践)
数据库·人工智能·oceanbase
阿成学长_Cain19 小时前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库
ywl47081208719 小时前
Mysql 平衡二叉树、红黑树、B树、B+树区别以及应用场景(五)
数据库·b树·mysql
IvorySQL19 小时前
IvorySQL Agent 探索与实践
数据库·人工智能·postgresql·oracle·ivorysql
SelectDB20 小时前
美团数十 PB 规模 Apache Doris 实践:从统一 OLAP 到 AI-Native 数据基座
大数据·数据库·性能优化
Database_Cool_20 小时前
阿里云RDS主从延迟解决方案_只读实例半同步复制最佳实践
数据库·人工智能
KaMeidebaby21 小时前
卡梅德生物技术快报|小 RNA 适配体合成 + 多方法亲和力表征全流程标准化操作手册
前端·网络·数据库·人工智能·算法
卓怡学长21 小时前
w269基于spring boot + vue 候鸟监测数据管理系统
java·数据库·spring boot·spring·intellij-idea
ClouGence1 天前
MySQL 到 StarRocks 数据迁移同步:同步方案与实践指南
数据库·mysql