首页 > 其他分享 >图数据☞重构子图

图数据☞重构子图

时间:2022-11-28 16:04:57浏览次数:33  
标签:重构 子图 合并 kw 操作 数据 节点


图数据☞重构子图

  • ​​图数据☞重构子图​​
  • ​​一、查找需要合并的概念​​
  • ​​二、扩展概念查看一度关联关系​​
  • ​​三、新建一个节点​​
  • ​​四、将节点列表合并到第一个节点​​
  • ​​4.1 待操作节点​​
  • ​​4.2 将节点一度关系全部扩展出来​​
  • ​​4.3 进行重构分析​​
  • ​​4.4 重构时设置不对节点属性进行操作​​
  • ​​4.5 重构后的效果​​
  • ​​四、总结​​


Here’s the table of contents:

图数据☞重构子图

    ​​子图重构​​​一般出现在数据运维阶段。当数据出现错误或者调整数据模型后需要​​修改数据​​​时,需要对图数据节点或者关系进行批量重构。数据重构的方法避免了数据的重新组织导入,节省资源的同时可以进行快速批量操作。
    下面介绍一种​​​节点模式​​下的子图重构方法,该方法是将节点进行合并并且对其关联关系同时迁移的方法。需要指定合并的目标节点,以及被合并的目标节点,并以可选模式指定其属性的合并操作方式。

一、查找需要合并的概念

    首先,找到两个需要被合并的目标节点,在这里我使用​​聚烯烃材料​​​、​​晶硅炉​​,两个关键词节点(在这里建立的是关键词和文档之间的包含关系图谱,一个词可能会出现在多个不同文档中)。

MATCH (kw:关键词) WHERE kw.name IN ['聚烯烃材料','晶硅炉'] RETURN kw

图数据☞重构子图_Java

二、扩展概念查看一度关联关系

    下面​​棕色​​​表示文档,​​红色​​​表示关键词。通过如下查询可以关联出​​聚烯烃材料​​​、​​晶硅炉​​两个关键词所有一度包含关系。

MATCH p=(kw:关键词)--() WHERE kw.name IN ['聚烯烃材料','晶硅炉'] RETURN p

图数据☞重构子图_Neo4j_02

三、新建一个节点

    后续会将​​聚烯烃材料​​​和​​晶硅炉​​两个关键词节点,以及它们的一度网络合并到这个新节点。

CREATE (kw:概念 {name:'工业制造'}) RETURN ID(kw) AS idN

四、将节点列表合并到第一个节点

4.1 待操作节点

    该查询展示了,三个待操作节点,其中​​绿色​​​为刚刚创建的新节点,其标签为​​概念​​。

MATCH (n) WHERE ID(n) IN [2133617,34934,213289] RETURN n

图数据☞重构子图_Java_03

4.2 将节点一度关系全部扩展出来

    ​​概念​​​节点目前没有任何关联关系,在接下来的操作中我将会把上述​​关键词子图​​​合并到​​概念节点上​​。

图数据☞重构子图_知识图谱_04

4.3 进行重构分析

    如​​待操作节点​​​中,ID列表中第一个节点为新建的​​工业制造​​概念节点,第一个节点之后的其它节点以及节点关联的关系将会被合并到第一个节点。被合并的节点,执行结束之后会被删除。

    合并时属性操作支持三个选项:overwrite、discard、combine。​​overwrite​​​会覆盖合并实体的属性;​​discard​​​属性重复时不会执行任何操作;​​combine​​属性重复时,会存储在一个数组里面。

图数据☞重构子图_知识图谱_05

    被合并节点的关系与合并节点的关系重复时会新建,可以使用​​apoc.refactor.mergeRelationships​​​再对关系合并;​​apoc.refactor.mergeRelationships​​​合并关系时需要注意,关系的起始和结束节点都要相同,可配置的属性与​​apoc.refactor.mergeNodes​​是一样的。

4.4 重构时设置不对节点属性进行操作

    默认的操作:如果节点上关系重复,则会新建,也就是边有可能会重复;节点的标签会合并到第一个节点。

MATCH (n) WHERE ID(n) IN [2133617,34934,213289] WITH COLLECT(n) AS nodes
CALL apoc.refactor.mergeNodes(nodes,{properties:'discard'}) YIELD node RETURN node

4.5 重构后的效果

    三个节点变一个节点,三个子图变一个子图。

图数据☞重构子图_Neo4j_06

四、总结

    本文介绍了,节点模式下的数据重构方法。在实际的数据生产操作中是非常实用的,在关系模式下的重构与此方法类似。重构时一般都是批量操作数据,在支持ACID的数据库中为了避免频繁发生死锁问题,存储过程中都不支持数据的并发操作。


标签:重构,子图,合并,kw,操作,数据,节点
From: https://blog.51cto.com/u_13618048/5891686

相关文章

  • DTCC | 2021中国图数据库技术大会链接分享
    DTCC|2021中国图数据库技术大会链接分享​​DTCC|2021中国图数据库技术大会链接分享​​​​一、新一代分布式架构​​​​二、数据流通与数据交易​​​​三、业务模型......
  • 时序数据增强 for 深度学习
    前言最近,深度学习在许多时间序列分析任务中表现出色。深度神经网络的优越性能严重依赖于大量训练数据以避免过度拟合。然而,许多现实世界时间序列应用的标记数据可能受到限......
  • Elasticsearch索引数据大批量删除接口优化
    Elaticsearch索引数据大批量删除接口优化​​一、需求​​​​二、索引数据删除接口​​​​2.1使用到的elasticsearch核心接口​​​​2.2封装删除脚本​​​​2.3封装接口......
  • 人工智能与图数据库技术
    图数据库技术在人工智能应用中的核心能力决策类算法提供上下文支持增强算法学习效率提高算法准确性通过AI得到的结论更加具有可解释性完整翻译​​原文地址​​以下文章为N......
  • Graphene图数据建模工具
    Graphene图数据建模工具​​Graphene图数据建模工具​​​​一、Graphene是什么?​​​​二、谁可以使用它?​​​​三、为什么需要这样的工具?​​​​四、核心功能​​​​五......
  • 数据分析八大模型:详解RFM模型
    一、RFM的基本思路RFM模型由三个基础指标组成:R:最近一次消费至今的时间F:一定时间内重复消费频率M:一定时间内累计消费金额 RFM模型里,三个变量的含义是很具体......
  • 数据分析之杜邦分析法的公式和示例
    什么是杜邦分析?杜邦分析也称为杜邦恒等式、杜邦方程、杜邦框架、杜邦模型或杜邦方法,是一个多步骤的财务方程式,可以深入了解企业的基本绩效。杜邦模型对影响公司股本回报......
  • Oracle数据库性能模型
    如何为一个数据库建立性能模型作为一名DBA来说,我们面临的一个巨大挑战是:如何保证数据库的性能可以满足快速变化的应用的需求,如何在数据量和访问量持续增长的情况下,保证应用......
  • 谈谈数据治理与数据管理
    一、写在前面笔者初次接触数据治理体系内容是从DAMA-DMBOK2.0这本书,看完第一遍云里雾里,基本没有实质性的收获,反而被数据治理、数据管理的概念弄得一头雾水,为什么......
  • 三、运行时数据区
    01概述  class文件通过类加载子系统加载、链接、初始化到运行时数据区,然后执行引擎执行运行时数据区中的数据。  线程私有:程序计数器、虚拟方法栈、本地方法栈。跟......