Oracle图数据库来了,关系查询仅需0.1秒?
1.图数据库介绍
传统的关系型数据库在表达复杂、多层级的连接关系时非常低效。例如,查询“A的朋友的朋友的朋友”或追踪一笔可疑资金在多层账户间的流向,可能需要几十次甚至上百次SQL JOIN操作,性能差且代码复杂。Oracle图数据库正是为了解决这类“连接数据”的查询和分析而设计的。
2.安装PGX
Oracle PGX(Parallel Graph AnalytiX)是 Oracle 图数据库的并行图分析引擎。
2.1 下载
安装Graph Server,PGX,下载页面输入Oracle Graph Server and Client
https://edelivery.oracle.com/
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 版本是否符合要求
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 pgx3.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
4.总结
Oracle图数据库是一个强大、集成、企业就绪的解决方案。它最大的优势在于“融合”——将图数据处理能力无缝集成到你现有的Oracle数据库基础设施中,让你能利用标准的SQL和开发工具,应对传统关系型数据库难以处理的复杂关系分析挑战,无论是在欺诈检测、供应链追溯还是AI知识图谱构建中,都能发挥巨大价值。
跟着我一起学习Oracle 26ai数据库吧,带大家起飞!
订阅课程请点击左下角阅读原文~