NebulaGraph 知识图谱数据库使用:nebula数据库连接使用

参考:https://github.com/vesoft-inc/nebula-python/blob/master/example/GraphClientSimpleExample.py

文档:https://docs.nebula-graph.com.cn/3.4.1/3.ngql-guide/7.general-query-statements/2.match/#_4

pip install nebula3-python

在这里插入图片描述
1)查询的节点,再把这头节点再查一度范围的节点

MATCH p=(n)-[*3]->(m) WHERE id(m) == '39f1e6f***d2c4b06e2' WITH DISTINCT id(n) AS startNodeId, p MATCH (n)-[r]->(o) WHERE id(n) == startNodeId RETURN id(n), p, r, o LIMIT 600;

在这里插入图片描述
2)通过属性查询节点信息;

MATCH (rt:ResourceTopology {ip:"75.234.9.39"}) RETURN  rt;MATCH (rt:ResourceTopology ) WHERE rt.ResourceTopology.ip == "75.234.9.39" RETURN rt;

在这里插入图片描述

LOOKUP ON ResourceTopology WHERE ResourceTopology.ip =="75.234.9.39" YIELD id(vertex) as vid,ResourceTopology.ip,ResourceTopology.app_id,ResourceTopology.creation_time;

在这里插入图片描述
3)查询节点间最短路劲
https://docs.nebula-graph.com.cn/3.4.1/3.ngql-guide/7.general-query-statements/2.match/#_4
在这里插入图片描述
e*…5 表示路径中边的数量最多为 5

MATCH p = shortestPath((a:AlarmTag{ip:"75.234.23.167"})-[e*..5]-(b:ResourceTopology))  WHERE id(b) == "1a5a0a0b74416a3b624500853ca07a35" RETURN p;
或
MATCH p = shortestPath((a)-[e*..5]-(b:ResourceTopology))  WHERE id(a) == "39f1e6f80f75bd1fc48e928d2c4b06e3" AND id(b) == "1a5a0a0b74416a3b624500853ca07a35"RETURN p;

在这里插入图片描述
在这里插入图片描述

报错:Error found in optimization stage: IndexNotFound: No valid index found
nebula查询具体属性的话需要先对该属性创立索引,
1)给AlarmTag类型节点的ip创建索引 CREATE TAG INDEX IF NOT EXISTS ip_index_1 ON AlarmTag(ip(20));
2)加载生效 REBUILD TAG INDEX ip_index_1;
3)SHOW JOB 8;查看结果
在这里插入图片描述
在这里插入图片描述

代码:

from nebula3.gclient.net import ConnectionPool
from nebula3.Config import Config

config = Config() # 定义一个配置
config.max_connection_pool_size = 10 # 设置最大连接数
connection_pool = ConnectionPool() # 初始化连接池
# 如果给定的服务器是ok的,返回true,否则返回false
ok = connection_pool.init([('192.1**', 9669)], config)


# 方式1:connection pool自己控制连接释放
# 从连接池中获取一个session
session = connection_pool.get_session('root', 'n')
session.execute('USE topology_space') # 选择space


# results  = session.execute(
#             "MATCH p=(a)-[*3]->(b) where id(a) == '04d690ad942998ea7ed2b74decd7fe9c'  RETURN p limit 105;"
#         )


results  = session.execute("MATCH p=(n)-[*3]->(m) WHERE id(n) == '693a18da69f5d3d4e3caa4cf09610d29'  RETURN p LIMIT 600;")

results.column_values(“p”)
在这里插入图片描述
results.row_values(14)[0]
results.as_data_frame()
在这里插入图片描述

查询结果为json:

results1 = session.execute_json("MATCH p=(n)-[*3]->(m) WHERE id(n) == '693a18da69f5d3d4e3caa4cf09610d29'  RETURN p LIMIT 600;")

import json
print(len(json.loads(results1)["results"][0]["data"]))
json.loads(results1)["results"][0]["data"][0]

json.loads(results1)["results"][0]["data"][14]

在这里插入图片描述
这个查询结果来自一个图数据库,表示了一个包含顶点和边的图形结构。在这个结果中,metarow 是两个主要的部分。

  1. meta 部分:它描述了图形中的顶点和边的信息。每个元素(顶点或边)都有一个 type 属性来表示它是顶点还是边,以及一个 id 属性来唯一标识它。对于边,还有额外的属性,如 rankingnametypedst(目标顶点ID)和 src(源顶点ID)。

在这个例子中,meta 包含了以下顶点和边:

  • 顶点1(ID:693a18da69f5d3d4e3caa4cf09610d29)
  • 边1(ID:由排名、名称、类型、目标顶点和源顶点组成)
  • 顶点2(ID:4f6d483d823c74e1838cc5c0d02152f9)
  • 边2(ID:由排名、名称、类型、目标顶点和源顶点组成)
  • 顶点3(ID:46a51ed199f4d362d442e5a56d79fbe3)
  • 边3(ID:由排名、名称、类型、目标顶点和源顶点组成)
  • 顶点4(ID:19@159_183_110_127)
  1. row 部分:它包含了与 meta 中描述的顶点和边相关联的数据属性。这些属性以字典的形式存储,其中键是属性名,值是属性值。

在这个例子中,row 包含了以下数据:

  • 与顶点1相关的属性(如 ResourceTopology.name、ResourceTopology.status 等)
  • 与边1相关的属性(如 relationship_type、app_id 等)
  • 与顶点2相关的属性(如 ResourceTopology.hostname、ResourceTopology.ip 等)
  • 与边2相关的属性(如 line_type、source_port 等)
  • 与顶点3相关的属性(如 ResourceTopology.hostname、ResourceTopology.ip 等)
  • 与边3相关的属性(为空)
  • 与顶点4相关的属性(如 Ip.app_id、Ip.ip 等)

总之,这个查询结果展示了一个包含多个顶点和边的图形结构,以及这些顶点和边所关联的数据属性。这种结构可以用于表示复杂的网络关系、资源拓扑等场景。

json.loads(results1)["results"][0]["data"][14]["meta"]
json.loads(results1)["results"][0]["data"][14]["row"]

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/726580.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人工智能的头号威胁:投毒攻击

随着掌管数字生活入口的万亿美元俱乐部企业——苹果公司跳入人工智能(AI)赛道,AI技术民主化的大幕正式拉开,同时也将AI安全问题推向舆论的风口浪尖。 根据瑞银本周一的智能手机调查报告,在中国以外的智能手机用户中&am…

Vue63-配置代理-方式二

一、请求前缀:能灵活的控制走不走代理 1-1、请求前缀 有请求前缀的走代理服务器; 没有请求前缀的不走代理服务器。 修改代码中的请求地址,加上请求前缀 报错的原因: 解决方式: 1-2、ws配置项、changeOrigin配置项 二…

redis-实战篇(1)短信登录

黑马redis-实战篇笔记 开篇导读 亲爱的小伙伴们大家好,马上咱们就开始实战篇的内容了,相信通过本章的学习,小伙伴们就能理解各种redis的使用啦,接下来咱们来一起看看实战篇我们要学习一些什么样的内容 短信登录 这一块我们会使…

利用LinkedHashMap实现一个LRU缓存

一、什么是 LRU LRU是 Least Recently Used 的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。 简单的说就是,对于一组数据,例如:int[] a {1,2,3,4,5,6},…

Linux - 输入输出

一、输出格式 echo //末尾自带换行 -n //取消自带换行 -e //支持转移符 常见转义符 \n换行 \t制表符 printf // 格式化输出字符串 %-10s // %s代表字符串 -10 左对齐容纳10个字符 二、输入输出重定向 file descriptors &#x…

leetcode (top100)接雨水

题目: 题解: 可以把每个宽度看作一个桶,每个桶能接的水等于这个桶左右两个方向最高桶的最小高度再减去这个桶本身的高度。把每个桶能接的水相加即可。 难点在于如何快速找到当前桶的左右两个方向的最高桶的高度,可以先遍历一遍…

LangChain入门到精通,看这这篇吊打面试官

导语 在人工智能领域的不断发展中,语言模型扮演着重要的角色。特别是大型语言模型(LLM),如ChatGPT,已经成为科技领域的热门话题,并受到广泛认可。在这个背景下,LangChain作为一个以LLM模型为核…

什么是元数据管理?企业进行元数据管理可以满足什么目的?

元数据管理作为数据治理的重要组成部分,其作用日益凸显。元数据,即“关于数据的数据”,提供了对数据的描述、上下文和意义的详细信息,对于确保数据的准确性、一致性和可访问性至关重要。 有效的元数据管理能够帮助企业更好地理解…

数位统计DP——AcWing 338. 计数问题

数位统计DP 定义 数位DP(Digital DP)是一种用于解决与数字的数位相关问题的动态规划算法。它将数字的每一位看作一个状态,通过转移状态来计算满足特定条件的数字个数或其他相关统计信息。 运用情况 统计满足特定条件的数字个数&#xff0…

好用的抖音短视频矩阵系统推荐:筷子剪辑,超级编导。抖去推

目前短视频矩阵行业如火如荼,为大家推荐几款比较好用的短视频矩阵系统。 第一款叫做筷子剪辑,由筷子科技开发,网页版应用工具,无需下载安装 主打视频剪辑,支持一键成片,视频发布等,&#xff0…

SAP赋能食品行业,确保安全与品质的双重飞跃

品安全与品质是消费者最关心的问题,也是食品企业的生命线。随着科技的发展和消费者需求的日益多样化,食品行业正面临着前所未有的挑战和机遇。SAP作为全球领先的企业资源规划(ERP)系统,为食品行业提供了全面的解决方案…

基于STC12C5A60S2系列1T 8051单片机接收串口调试助手发送的固定长度字符串控制单片机的功能

基于STC12C5A60S2系列1T 8051单片机接收串口调试助手发送的固定长度字符串控制单片机的功能 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机串口通信介绍STC12C5A60S2系列1T 8051单片机串口通信的结构基于STC12C5A60S2系列1T 8051单片机串口通信的特殊功能…

21.0docker企业级镜像仓库harbor(vmware 中国团队)

docker企业级镜像仓库harbor(vmware 中国团队) 网站下载harbor软件包 https://github.com/goharbor/harbor 查看软件安装harbor版本需求限制 本地环境需求已满足 点击下载harbor安装包 点击releases根据版本信息下载 下面的在线安装就是docker pull。离线就是下载之后…

Flask新手入门(一)

前言 Flask是一个用Python编写的轻量级Web应用框架。它最初由Armin Ronacher作为Werkzeug的一个子项目在2010年开发出来。Werkzeug是一个综合工具包,提供了各种用于Web应用开发的工具和函数。自发布以来,Flask因其简洁和灵活性而迅速受到开发者的欢迎。…

【Java】已解决java.sql.SQLRecoverableException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.sql.SQLRecoverableException异常 在Java的数据库编程中,java.sql.SQLRecoverableException是一个重要的异常,它通常表示一个可以恢复的SQL异常。…

重磅!鹅厂大牛带你30分钟玩转AI智能结对编程!

在大模型时代,人工智能技术的突破性进展正重塑着软件开发的面貌。AI的融入不仅优化了代码编写过程,更开启了智能编程的新纪元,为开发者带来了前所未有的工作效率和创新可能。AI结对编程不仅能够极大提升研发效率,还能通过智能分析…

每月策略会议

周一顾问策略会议,对于企业辅导而言,领导力是可以培训的,而决策力不是靠培训就能达成,是需要反复训练和反思。从最为关心的一个状况出发,去行动才会有结果,有了结果反思我们的假设是否有盲区是否有误才有可…

登录安全分析报告:链家地产

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …

一机两用是什么

什么是一机两用,一机两用的解决什么问题? 其实,一机两用就是零信任防泄漏沙箱解决方案。 在国内,很多保密性质较高的企事业单位面临着如何在保证业务流畅和工作效率的同时,确保信息高安全性的挑战。为了应对这个问题&…

VMware Ubuntu 虚拟机网卡消失及解决办法

VMware Ubuntu 虚拟机网卡消失 描述原因查找解决方法 描述 在正常使用过程中重启后发现 VMware Ubuntu 虚拟机中的网卡消失了,使用 ifconfig 查看只能看到本地回环: 原因查找 使用如下命令查看是否和我这边遇到的问题一致的原因。 sudo lshw -c netwo…