数据库管理-第186期 23ai:啥?我还能干掉Neo4j?(20240509)

数据库管理-第186期 23ai:啥?我还能干掉Neo4j?(20240509)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Associate: Database(Oracle与MySQL)
PostgreSQL ACE Partner
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、认证技术专家、年度墨力之星,ITPUB认证专家、专家百人团成员,OCM讲师,PolarDB开源社区技术顾问,OceanBase观察团成员
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

前面卷了Oracle Vector DB & AI Vector Search(未完),DG_PDB(基本完结),True Cache(基本完结),JSON关系二元性视图(应该未完,感觉这几天把这辈子的JSON都写了)。Oracle Database 23ai总共引入了300多项新特性,全部搞完不大现实,本期开始还是和JSON关系二元性视图类似的一个颠覆数据存储以及使用的新特性:Property Graphs,属性图。

1 基本概念

Property Graphs,属性图,是由一组对象或点(vertices),和一组连接对象的箭头或边(edges)组成。点和边可以拥有多个由键值对定义的属性。
每个点(vertex)有一个唯一的标识符,并可拥有:

  • 一组向外的边
  • 一组传入的边
  • 一组属性

每个边(edge)有一个唯一的标识符,并可拥有:

  • 指向一个点
  • 从一个点发出
  • 描述两个点之间关系的文本标签
  • 一组属性

对于点和边,每个特性都使用唯一的名称进行标识。
属性图可以具有自有边(即源点和目点相同的边),以及同一源点和目的点之间的多条边。
属性图也可以在同一个图中具有不同类型的点和边。例如,一个图可以有一组标签为Person的点和一组标签的Place的点,它们具有与这两组点相关的不同属性。
属性图数据模型类似于基于W3C标准的资源描述框架(Resource Description Framework,RDF)图数据模型;然而,属性图数据模型比RDF更简单、更不精确。
属性图数据模型功能和分析API使属性图成为以下场景提供很好的选择:

  • 识别社交网络中的影响者
  • 预测趋势和客户行为
  • 基于模式匹配发现关系
  • 确定集群以定制活动

在Oracle数据库中,属性图功能提供高级图查询和分析功能。此功能支持图操作、索引、查询、搜索和内存内分析。
图将链接数据的网络管理为点、边以及点和边的属性。图通常用于建模、存储和分析社交网络、网络安全、公用事业和电信、生命科学和临床数据以及知识图谱。
典型的图分析包括图遍历、推荐、查找关系和影响者以及模式匹配。电信、生命科学和医疗保健、安全、媒体和出版等行业都可以从图中受益。
Oracle数据库的属性图功能通过以下功能支持这些场景:

  • 一个可扩展的图数据库
  • 基于PGQL和Java图API的开发人员API
  • 用于运行图查询和图分析的并行内存中图服务器(PGX)
  • 一套快速、可扩展的社交网络分析函数,包括排名、中心性、推荐、社区检测和路径检索
  • 以Oracle定义的平面文件格式通过并行方式大容量加载和导出属性图数据
  • 强大的可视化图应用程序
  • 通过与Jupyter集成提供笔记本支持

2 属性图的结构模型

2.1 在数据库中运行图查询的结构模型

使用任何受支持的客户端工具,都可以直接与数据库中关系表中存储的图数据进行交互。
image.png
此模型允许您使用以下任何一个受支持的选项创建属性图:

  • 使用SQL DDL语句直接在现有数据库架构对象上创建SQL属性图
  • 直接在表中的图形数据上创建PGQL属性图形

可以使用PGQL直接查询图,而无需将图加载到图服务器(PGX)中。此外,还可以使用graph_TABLE运算符对SQL属性图运行图模式匹配查询。但是,如果要运行图分析算法,则必须将此图加载到图服务器(PGX)中。您可以将图服务器配置为定期从数据库获取数据更新,以保持图同步。

2.2 运行图分析的结构模型

您可以将属性图加载到图服务器(PGX)中,以便执行专门的图计算。
image.png
如前面的体系结构设计所示,图形服务器(PGX)是一个中间件服务器,可以作为独立服务器运行,也可以在像Oracle WebLogic server或Apache Tomcat这样的容器中运行。使用这种方法,您可以将属性图加载到图服务器(PGX)中。这允许您在图服务器的内存中运行图形查询和分析操作。
您可以直接在图服务器(PGX)中从关系表创建图。此外,还可以从数据库加载PGQL属性图或SQL属性图。您可以在内存中修改图(插入、更新和删除点和边,并为执行算法的结果创建新属性)。图服务器不会将修改应用到关系表。

2.2.1 属性图的大小建议

可以使用此Graph Size Estimator(https://www.oracle.com/webfolder/assets/graph-size-estimator/index.html)计算图服务器(PGX)所需的内存。

2.3 使用图服务器功能作为库开发应用程序

图服务器(PGX)提供的图函数可以用作应用程序中的库。
图服务器rpm安装后,所有jar文件都可以在/opt/oracle/graph/lib中找到。在这种情况下,服务器安装和客户端用户应用程序位于同一台计算机中。
对于此类用例,可以在嵌入式(本地)模式下使用交互式Java shell或Python shell进行开发和测试。这意味着本地PGX实例被创建并在与客户端相同的JVM中运行。如果在没有任何参数的情况下启动shell,它将启动本地PGX实例并在嵌入式模式下运行。

3 Graph Server(PGX)

Graph Server,PGX,图服务器,内存中图服务器层使您能够在内存中使用并行执行来分析属性图。
它提供了60多种分析功能。类别和具体功能的示例包括(这里不做翻译了):

  • Centrality - Degree Centrality, Eigenvector Centrality, PageRank, Betweenness Centrality, Closedness Centrality
  • Component and Community - Strongly Connected Components (Tarjan’s and Kosaraju’s). Weakly Connected Components
  • Twitter’s Who-To-Follow, Label Propagation.
  • Path Finding - Single source all destination (Bellman-Ford), Dijsktra’s shortest path, Hop Distance (Breadth-first search)
  • Community Evaluation - Coefficient (Triangle Counting), Conductance, Modularity, Adamic-Adar counter…

图服务器(PGX)是用于快速、并行图查询和分析的内存加速器。服务器使用轻量级的内存中数据结构来实现图算法的快速执行。
image.png
图服务器(PGX)设计的核心概念如下:

  • 多个图客户端可以同时连接到图服务器
  • 每个客户端请求都由图服务器异步处理。客户端请求首先排队,然后在资源可用时进行处理。客户端可以轮询服务器以检查请求是否已完成
  • 在内部,服务器维护自己的引擎(线程池),用于运行并行图算法和查询。引擎试图与尽可能多的线程同时处理每个分析请求

其他关于关系图和图服务器的相关信息请查看官方文档:https://docs.oracle.com/en/database/oracle/property-graph/24.2/spgdg/introduction-property-graphs.html

总结

本期只是对属性图的概念做了简单介绍,还需要在数据库以外安装PGX,这个还需要摸索一下,后面将添加相关的实际案例操作。
老规矩,知道写了些啥。

  • 28
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖头鱼的鱼缸(尹海文)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值