IT 邦德

Oracle图数据库来了,关系查询仅需0.1秒?

1.图数据库介绍

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

Image

2.安装PGX

Oracle PGX(Parallel Graph AnalytiX)是 Oracle 图数据库的并行图分析引擎。

2.1 下载

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

https://edelivery.oracle.com/

Image

2.2 创建用户

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.3 JDK安装

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

Image
yum install -y java-17-openjdk-devel
配置系统默认 Java 版本
alternatives --config java
在列表中选择 java-17-openjdk 对应的编号
确认安装是否成功
java -version

2.4 Graph Server安装

rpm -i oracle-graph-26.1.0.x86_64.rpm 相关参数文件修改如下

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"
}

2.5 启动PGX

systemctl daemon-reload
systemctl start pgx
Image

3.PGQL图应用

3.1 创建一个PGQL属性图

CREATE PROPERTY GRAPH bank_graph 
VERTEX TABLES (
 BANK_ACCOUNTS AS ACCOUNTS KEY (ID)
  LABEL ACCOUNTS
   PROPERTIES (ID, NAME)
)
EDGE TABLES (
 BANK_TXNS AS TRANSFERS
 KEY (FROM_ACCT_ID, TO_ACCT_ID, AMOUNT)
  SOURCE KEY (FROM_ACCT_ID) REFERENCES ACCOUNTS (ID)
  DESTINATION KEY (TO_ACCT_ID) REFERENCES ACCOUNTS (ID)
   LABEL TRANSFERS
    PROPERTIES (FROM_ACCT_ID, TO_ACCT_ID, AMOUNT, DESCRIPTION)
) OPTIONS (PG_PGQL);

3.2 PGQL属性图

SELECT e
FROM MATCH ()-[e]->() ON BANK_GRAPH
LIMIT 100
Image

4.总结

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

跟着我一起学习Oracle 26ai数据库吧,带大家起飞!

Image

订阅课程请点击左下角阅读原文~