Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Gremlin:在不损失性能的情况下避免重复

我试图用gremlin python在最短的时间内插入数百万个顶点和边。我有两件事要考虑:避免顶点和边的重复,避免花费10个小时来插入所有数据

请求的主要时间是查找现有顶点和创建关系。如果我在不检查顶点是否已经存在的情况下插入边,脚本会更快。

我还尝试了批处理事务,如下所示:

代码语言:javascript
运行
AI代码解释
复制
g.addV("person").property("name", "X").as_("p1")
 .addV("person").property("name", "Y").as_("p2")
 .addE("has_address").from("p1").to(g.V().has("address", "name", "street"))
 .addE("has_address").from("p2").to(g.V().has("address", "name", "street2")).iterate()

但是我并没有提高性能。

使用重复项,我在查询中会有相同的结果吗?我想以后有重复的查询会更贵,不是吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-03-12 11:22:50

我对你上一个问题的answer提供了一些关于如何“快速”加载数据的提示,现在我知道你的大小是数百万,我希望你能考虑这些策略。

如果您碰巧继续使用Gremlin和Python加载,请考虑以下几点:

  1. 我不确定你的重复项是从哪里产生的,但我会寻找机会清理那些源数据,并组织它和加载计划,以避免在一开始就加载它们,这将节省你以后的清理工作。我不能说重复是否会在你的查询中留下相同的结果,因为我不知道你的数据,也不知道你的查询。在一些图表和查询中,我知道重复是不相关的和期望的,而在另一些情况下,它可能是一个disaster.
  2. Definitely,尝试在我在另一个答案中建议的blog post中将您的负载组织成批处理模式。这种方法比构建巨大的链式Gremlin遍历更快,在项目1中填充了成百上千的addV()addE().
  3. Related,您已经看到了在插入之前查找图元素的性能痛苦。考虑以避免重复顶点查找的方式对数据进行预排序。也许一种方法是首先加载所有顶点,以便您知道它们的存在,然后对边加载进行分组/排序,这样您就可以找到顶点一次,然后加载vertices.
  4. Finally,邻域中的所有边。如果您可以计算出1和3,那么也许您可以并行化加载。

再说一次,在这种论坛上不可能真正提供细节,但也许这些想法会激励你找到答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66596682

复制
相关文章
交易系统使用storm,在消息高可靠情况下,如何避免消息重复
概要:在使用storm分布式计算框架进行数据处理时,如何保证进入storm的消息的一定会被处理,且不会被重复处理。这个时候仅仅开启storm的ack机制并不能解决上述问题。那么该如何设计出一个好的方案
intsmaze-刘洋
2018/08/29
6170
交易系统使用storm,在消息高可靠情况下,如何避免消息重复
避免重复内容
重复内容是指有两个或者更多的页面有相同或者基本相同的内容。我们必须避免重复内容以免被搜索引擎惩罚。但是有时候我们需要在页面上显示2个(获这个更多)日志列表,通常我们是通过多个循环(一个标准的循环,一个来自特定的分类的循环)来实现。这样通常是你就能不仅想推荐最新写的日志,同时来自某个特定的分类。
Denis
2023/04/13
7170
避免 SwiftUI 视图的重复计算
随着近年来有关 SwiftUI 的文章与书籍越来越多,开发者应该都已经清楚地掌握了 —— “视图是状态的函数” 这一 SwiftUI 的基本概念。每个视图都有与其对应的状态,当状态变化时,SwiftUI 都将重新计算与其对应视图的 body 值。
东坡肘子
2022/08/03
9.5K0
避免 SwiftUI 视图的重复计算
如何避免服务停机带来的业务损失?
做系统升级扩容,停服务时候最头疼的时候就是业务数据错乱,数据包的丢失,哪我们如何避免服务停机带来的业务损失?
码农架构
2020/10/26
6960
如何避免服务停机带来的业务损失?
如何避免 Cronjob 重复运行
Cronjob使用中有很多问题需要注意,前段时间写了一篇文章《为什么 Cronjob 不执行》,里面谈到了各种会导致cronjob不执行的因素和解决方案,而本文就cronjob重复运行的场景,对技术手段、技术方案、具体代码和相互优劣展开详细讲解。
33178
2022/08/23
1.6K0
webapi避免http重复请求
route过滤 添加路由过滤,在过滤器中判断sessionid或者cookie session session服务端文件,存储guid或者用户账户(操作简单,增加服务器压力) session管理参考:https://www.cnblogs.com/wxdlut/p/9237577.html cookie cookie浏览器端,浏览器请求附带cookie,cookie设置超时管理连接状态) 路由过滤实现方式 golang gin.Default().Use(func() gin.HandlerFunc{
sofu456
2021/12/06
9220
TIPS-在PowerQuery查询中非必要情况下避免点击OK
某数据的Power BI分析报告我已经跟做了较长时间,分析成果也得到了高层的认可。
陈学谦
2020/05/07
4230
【翻译】Gremlin-Gremlin何许人也?
Gremlin是Apache TinkerPop 框架下的图遍历语言,而TinkerPop是JanusGraph的搜索引擎。Gremlin是一种函数式数据流语言,可以使得用户使用简洁的方式表述复杂的属性图(property graph)的遍历或查询。
洋仔聊编程
2022/05/11
2.6K0
【翻译】Gremlin-Gremlin何许人也?
MySQL避免插入重复数据
设置唯一索引,可以是联合字段,比如你觉得id不够,你还可以id+name,还可以id+age+name这样子的唯一索引。
乐心湖
2020/07/31
3K0
MySQL避免插入重复记录的方法
mysql在存在主键冲突或者唯一键冲突的情况下,根据插入策略不同,一般有以下三种避免方法。 1、insert ignore 2、replace into 3、insert on duplicate key update
IT工作者
2022/01/26
2.4K0
使用JPA原生SQL查询在不绑定实体的情况下检索数据
在这篇博客文章中,我将与大家分享我在学习过程中编写的JPA原生SQL查询代码。这段代码演示了如何使用JPA进行数据库查询,而无需将数据绑定到实体对象。通过本文,你将了解如何使用原生SQL查询从数据库中高效地检索数据。
高久峰
2023/08/07
9390
Gremlin -- 常用查询用法
gremlin的查询是流式查询,一步一步的进行下去,当然这里的“一步”可能是一个方法(g.V().has())也可能是多个方法组成的一步(g.V().order().by(desc,‘age’))。下面看一个案例
洋仔聊编程
2019/01/15
13.1K0
在公司制度不规范的情况下,如何做好测试工作?
遇到这个好机会你还在等什么?如果说这个公司已经足够好了,那他还请你过来做什么?你的能力还足以让公司有更高的提升么?
软件测试君
2019/11/04
1.3K0
WordPress 判断文章更新,避免重复推送
通过函数判断文章更新操作,或者通过获取自定义字段内容判断是否已推送,避免在更新文章时重复推送。这是因为百度收录之前,如果频繁向百度推送更新通知,文章很可能就会被百度丢入沙盒,短时间内不会在百度搜索展现该条收录!因此,网站在发布文章之后,稳定收录并展示之前,切忌频繁修改内容!
Yangsh888
2022/03/28
6870
在不更换耳机的情况下,如何让敌人脚步声非常清脆?
1、点击[扬声器] 2、点击[声音] 3、点击[播放] 4、点击[扬声器] 5、点击[属性] 6、点击[增强] 7、点击[环境] 8、点击[设置] 9、点击[铺地毯的走廊] 10、点击[确定]
裴来凡
2022/05/28
9360
在不更换耳机的情况下,如何让敌人脚步声非常清脆?
使用延迟的FileSystemWatcher来避免重复触发事件
  程序里需要监视某个目录下的文件变化情况: 一旦目录中出现新文件或者旧的文件被覆盖,程序需要读取文件内容并进行处理;但在实际处理中发现当一个文件产生变化时,Change事件被反复触发了好几次。这样可能的结果是造成同一文件的重复处理。 解决方法:
跟着阿笨一起玩NET
2018/09/19
2K0
不更新TP框架的情况下防止getshell漏洞
最近ThinkPHP框架出现了一个比较严重的漏洞,在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0.23和5.1.31之前的所有版本。 官方也很快提供了解决方案,大大的点个赞。但是只是讲了个重点,没讲太详细,对于一些新手和初学者可能不大方便操作。下面提供一些修复的方法,应该算是比较详细了。
jwj
2022/05/18
7740
iOS多个线程发起相同请求,避免重复
有时候在调用多个模块时,会对同一个API进行多次请求,但因为内容都是一样的,所以最好就是加上锁,防止重复请求造成网络资源浪费
freesan44
2019/08/23
1.7K0
[译] 正确实现 linkedPurchaseToken 以避免重复订阅
你是否在使用 Google Play 的订阅功能?要确保你的后端服务实现的方式是正确的。
Android 开发者
2018/10/10
1.6K0
点击加载更多

相似问题

在不损失性能的情况下调整画布大小

10

在不损失太多性能的情况下报告进度

16

在不损失性能的情况下观察DOM更改(javascript)

06

在不损失性能的情况下替代Thread.Suspend -Resume

149

不声明变量的性能损失

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档