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

devtools/2024/9/24 10:02:54/

数据库管理186期 2024-05-09

  • 数据库管理-第186期 23ai:啥?我还能干掉Neo4j?(20240509)
    • 1 基本概念
    • 2 属性图的结构模型
      • 2.1 在数据库中运行图查询的结构模型
      • 2.2 运行图分析的结构模型
        • 2.2.1 属性图的大小建议
      • 2.3 使用图服务器功能作为库开发应用程序
    • 3 Graph Server(PGX)
    • 总结

数据库管理-第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,这个还需要摸索一下,后面将添加相关的实际案例操作。
老规矩,知道写了些啥。


http://www.ppmy.cn/devtools/38459.html

相关文章

ABC 350 C - Sort

C - Sort (atcoder.jp) 思路 就按举的例子来说: 输入: 5 34125输出: 2 1 3 2 4 The operations change the sequence as follows: Initially, A(3,4,1,2,5).The first operation swaps the first and third elements, making (1,4,3,2…

生成式人工智能教学解决方案

一、软件技术人员的需求分析 在当今信息化社会,软件技术作为推动科技创新和经济发展的核心力量,其重要性日益凸显。随着数字化转型的加速推进,各行各业对软件技术人才的需求呈现出多元化、高端化的发展趋势。以下是软件技术人员需求的详细分…

医药垃圾分类管理系统|基于SSM医药垃圾分类管理系统的系统设计与实现(源码+数据库+文档)

医药垃圾分类管理系统 目录 基于SSM医药垃圾分类管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统登录模块 2管理员模块实现 3用户模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博…

【Web前端】定位_浮动_音视频

1、定位 1.1想对定位 相对定位,使用relative,参考点是标签之前的位置,不是相对于父节点、同级节点或浏览器。相对定位通过left、right进行水平偏移,通过top、bottom进行垂直偏移Ieft:表示相对于原本位置的左外边界右移的距离rig…

领域驱动设计架构演进

领域驱动设计由于其强调对领域的深入理解和关注业务价值,其架构演进依赖于领域的变化和特定领域中的技术实践。 初始阶段 一个单体架构,所有的功能都集成在一个应用程序中,领域模型可能还不完全清晰,甚至并未形成。这个阶段主要是为了验证产品的可行性,快速迭代并尽快推…

CSS中的Float(浮动)

CSS中的Float(浮动) 目录 CSS中的Float(浮动) 一、 什么是Float? 二、 Float的工作原理 三、Float的属性值 四、Float的清除 五、 Float的注意事项 六、 Float的代码示例 七、Float的最佳实践 一、 什么是Floa…

住宅物业满意度定性和定量调研方法有哪些?

本文由群狼调研(长沙物业收费价格调研)出品,欢迎转载,请注明出处。住宅物业满意度调研可以结合定性和定量方法,以获取更全面的数据和深入的理解。以下是一些常见的定性和定量调研方法: 1.定性调研方法&…

爬虫:爬取豆瓣电影

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 上篇我们将到如何利用xpath的规则,那么这一次,我们将通过案例来告诉读者如何使用Xpath来定位到我们需要的数据,就算你不懂H5代码是怎么个嵌套或者十分复…