首页 > 后端开发 > Python教程 > CMDB 的 GraphDB

CMDB 的 GraphDB

Susan Sarandon
发布: 2025-01-14 08:45:45
原创
132 人浏览过

GraphDB 与 RDB:Spine-Leaf 架构搜索速度比较

本研究对 GraphDB (Neo4j) 和 RDB (PostgreSQL) 在查询代表脊叶网络架构的数据时的搜索速度进行了基准测试。 结果表明,对于具有大量节点和显着深度的数据集,GraphDB 的性能优于 RDB。

实验设置

测试环境使用 Neo4j(版本 5.26.0)和 PostgreSQL(版本 15)的 Docker 容器。 Docker Compose 文件如下:

<code class="language-yaml">version: '3'
services:
  postgres:
    image: postgres:15
    ports:
      - 5433:5432
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres
  neo4j:
    image: neo4j:5.26.0
    ports:
      - 7474:7474
      - 7687:7687
  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080</code>
登录后复制

基于脊叶和虚拟化架构的变化,测试了三种场景:

  • 场景 1: 一个简单的架构(19 个节点,深度 4)。

GraphDB for CMDB

  • 场景 2: 更复杂的架构,增加了服务器密度以及叶交换机和服务器之间的全网状连接(273 个节点,深度 4)。

GraphDB for CMDB

  • 场景3:最深的架构,为每个虚拟机引入pod(417个节点,深度5)。

GraphDB for CMDB

数据库之间的数据建模不同:

  • Neo4j: 节点代表设备,具有 has_parenthas_child 关系。 场景 1 的示例查询:
<code class="language-cypher">CREATE (ssw1: SpineSwitch {name: "ssw1"})
CREATE (ssw2: SpineSwitch {name: "ssw2"})
...
CREATE (ssw1)-[:has_child]->(lsw1)
...</code>
登录后复制
  • PostgreSQL: 使用了两个表,nodesrelationships
<code class="language-sql">CREATE TABLE nodes (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL UNIQUE,
    type VARCHAR(50) NOT NULL
);

CREATE TABLE relationships (
    id SERIAL PRIMARY KEY,
    parent_id INT NOT NULL,
    child_id INT NOT NULL,
    relationship_type VARCHAR(50) NOT NULL,
    FOREIGN KEY (parent_id) REFERENCES nodes (id),
    FOREIGN KEY (child_id) REFERENCES nodes (id)
);</code>
登录后复制

搜索查询旨在查找从特定服务(“srv1”)到主干交换机的路径。 带有 Neo4j 的 GraphDatabase 驱动程序和 psycopg2 的 Python 脚本用于查询执行和计时。

结果

不同场景下的搜索速度对比总结如下:

GraphDB for CMDB

讨论

结果表明,对于具有大量节点和相当深度的数据集,GraphDB 的效率显着提高,这与图数据库在遍历复杂关系方面的固有优势相一致。 对于较小的数据集,性能差异不太明显。

此外,与 PostgreSQL 中等效 SQL 查询的复杂性相比,Neo4j 中 Cypher 查询的简单性是需要考虑的关键因素。 这种查询复杂性的差异导致了在处理类图数据结构时对 GraphDB 的整体偏好。

以上是CMDB 的 GraphDB的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板