当前位置:网站首页>实例讲解将Graph Explorer搬上JupyterLab
实例讲解将Graph Explorer搬上JupyterLab
2022-07-01 18:38:00 【InfoQ】

一、使用前准备
1. 华为云账号
2. OBS 对象存储服务
3. GES 图引擎服务
4. 获取调用 GES 业务面 API 必备的参数
二、使用 GES4Jupyter 连接 GES 服务

import moxing as mox
mox.file.copy('obs://obs-aigallery-zc/GES/ges4jupyter/beta/ges4jupyter.py', 'ges4jupyter.py')
mox.file.copy('obs://obs-aigallery-zc/GES/ges4jupyter/beta/ges4jupyter.html', 'ges4jupyter.html')
from ges4jupyter import GESConfig, GES4Jupyter, read_csv_config
eip = ''
project_id = ''
graph_name = ''
iam_url = ''
user_name = ''
password = ''
domain_name = ''
project_name = ''
port = 80
eip, project_id, graph_name, iam_url, user_name, password, domain_name, project_name, port = read_csv_config('cn_north_4_graph.csv')
config = GESConfig(eip, project_id, graph_name,
iam_url = iam_url,
user_name = user_name,
password = password,
domain_name = domain_name,
project_name = project_name,
port = port)
ges_util = GES4Jupyter(config, True);- 用于构造 API 的参数:eip,projectId,graph_name, port 这四个参数都参与构造了业务面请求的 url。eip 与 graph_name 两个参数在创图时容易获得,port 参数默认为 80,开启安全模式时为 443,关于 projectId,可参考图引擎官网文档 - 获取项目 id,从图控制台根据图所属的区域来获取项目 id。
- 用于在请求 API 前获取 token 的参数:iam_url, user_name, password, domain_name,project_name,GES4Jupyter 会使用这四个参数获取 token,进而在使用 api 时进行鉴权,相关参数获取请参考:华为图引擎文档 - 业务面 API 认证鉴权和调用 GES 服务业务面 API 相关参数的获取

print('开始创建点索引:')
job_id = ges_util.build_vertex_index()
job_result = ges_util.get_job(job_id)
if 'errorCode' not in job_result:
for i in range(100):
if job_result['status'] == 'success':
break
else:
time.sleep(1)
job_result = ges_util.get_job(job_id)
print('点索引创建完成')
print('开始创建边索引:')
job_id = ges_util.build_edge_index()
job_result = ges_util.get_job(job_id)
if 'errorCode' not in job_result:
for i in range(100):
if job_result['status'] == 'success':
break
else:
time.sleep(1)
job_result = ges_util.get_job(job_id)
print('边索引创建完成')ges_util.cypher_query("call dbms.parameter('needNodeIndex', false)");
ges_util.cypher_query("call dbms.parameter('needEdgeIndex', false)");
三、使用 GES4Jupyter 调用业务面接口并进行可视化
cypher_result = ges_util.cypher_query("match (n)-[r]->(m) return n,r,m limit 10",formats=['row','graph']);
ges_util.format_cypher_result(cypher_result)

gremlin_result = ges_util.gremlin_query("g.V().outE().bothV().path().limit(2)");
ges_util.format_gremlin_result(gremlin_result)
result = ges_util.path_query({
"repeat": [
{
"operator": "bothV",
"vertex_filter": {
"property_filter": {
"leftvalue": {
"id": ""
},
"predicate": "NOTIN",
"rightvalue": {
"value": ["北京"]
}
}
}
}
],
"until": [
{
"vertex_filter": {
"property_filter": {
"leftvalue": {
"id": ""
},
"predicate": "=",
"rightvalue": {
"value": ["额济纳旗"]
}
}
}
}
],
"times": 5,
"queryType": "Tree",
"vertices": ["北京病例2"]
})
ges_util.format_path_query(result)
四、图引擎官网有更多案例可以使用 GES4Jupyter 上手体验

边栏推荐
- Blue Bridge Cup real topic: the shortest circuit
- Technology implementation and Architecture Practice
- Lumiprobe non fluorescent alkyne EU (5-ethynyluridine)
- What impact will multinational encryption regulation bring to the market in 2022
- R language ggplot2 visualization: gganimate package transition_ Time function to create dynamic scatter animation (GIF), shadow_ The wake function configures the gradient falloff tailing effect of the
- Five degrees easy chain enterprise app is newly upgraded
- About enterprise middle office planning and it architecture microservice transformation
- R语言epiDisplay包ordinal.or.display函数获取有序logistic回归模型的汇总统计信息(变量对应的优势比及其置信区间、以及假设检验的p值)、write.csv函数保存csv
- Weekly recommended short videos: be alert to the confusion between "phenomena" and "problems"
- Relational database management system of easyclick
猜你喜欢

12 data dimensioning processing methods

6款红黄黑榜摄像头评测:谁最安全?谁画质好?从此让你不再踩雷
![[image denoising] matlab code for removing salt and pepper noise based on fast and effective multistage selective convolution filter](/img/bf/f8759195ea67832835e84c851b5e81.jpg)
[image denoising] matlab code for removing salt and pepper noise based on fast and effective multistage selective convolution filter

PTA year of birth

Lumiprobe Lumizol RNA 提取试剂解决方案

Leetcode203 移除链表元素

Lumiprobe biomolecular quantification - qudye Protein Quantification Kit

搭建一個通用監控告警平臺,架構上需要有哪些設計

Privacy sandbox is finally coming

Li Kou daily question - Day 32 -589 N × Preorder traversal of tree
随机推荐
[CF559E]Gerald and Path
Lumiprobe biomolecular quantification - qudye Protein Quantification Kit
Memo - about C # generating barcode
Principal component calculation weight
2020,最新手机号码手机验证正则表达式,持续更新
R语言ggplot2可视化:gganimate创建动态柱状图动画(gif)、在动画中沿给定维度逐步显示柱状图、enter_grow函数和enter_fade函数控制运动内插退出(渐变tweening)
R语言使用dplyr包的transmute函数计算dataframe数据中的指定数据列的移动窗口均值、使用ggplot2包可视化移动均值与原始数据的折线图
How to manage 1000 anchors by one person?
540. Single element in ordered array / 1684 Count the number of consistent strings
Mysql database of easyclick
NSI packaging script add file details
Technology implementation and Architecture Practice
What impact will multinational encryption regulation bring to the market in 2022
ACM MM 2022视频理解挑战赛视频分类赛道冠军AutoX团队技术分享
创建您自己的NFT集合并发布一个Web3应用程序来展示它们(介绍)
实现一个Prometheus exporter
Lumiprobe 双功能交联剂丨Sulfo-Cyanine5 双-NHS 酯
R语言使用epiDisplay包的followup.plot函数可视化多个ID(病例)监测指标的纵向随访图、使用n.of.lines参数指定显示的病例数
code
R language ggplot2 visualization: visualize the line graph and add customized Y-axis label information to the line graph using the labels function