
Neo4j高级应用技术专题
文章平均质量分 72
俞博士
专注图数据库、图深度学习和行业应用的技术直男。
e: joshua.yu@neo4j.com
展开
-
Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC 8.9 - 图生成 简单图
1、概述 apoc.generate.simple过程根据指定的节点度数生成图。该过程要求一个非负整数的数组作为参数之一,其中的每个元素是节点的度,例如:[2,2,2,2]表示4个节点,每个节点的度都是2。[2,2,3,3]表示4个节点,其中2个节点的度是2、2个节点的度是3。节点的度数的顺序无关,但是最终生成的必须是合法的图,即每条边必须连接2个节点。[1,2,3,4]这样的序列会产生错误,因为无法构造一个合法的图,其中4个节点的度数分别是1、2、3、4。(不信的话你可以在纸上画来试试?...原创 2022-04-18 12:25:24 · 1005 阅读 · 0 评论 -
Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC 8.8 - 图生成 完全图
1、概述apoc.generate.complete 本过程生成一个完全图。完全图中,每个节点有到所有其他节点的边。在无向图中,有N个节点的完全图有N x (N – 1) / 2个边。Neo4j在存储关系时必须指定关系的方向,因此APOC会生成从id较小的节点出发、到id较大的节点的边。2、过程调用接口 过程接口 CALL apoc.generate.complete( noNodes, label, relTy...原创 2022-04-18 12:18:07 · 887 阅读 · 0 评论 -
Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC 8.7 - 图生成 无标度网络
1、概述Barabási和Albert(1999)的“富者更富”(Rich get richer)生成模型(BA模型)最被熟知的无标度网络子集的生成模型。它让每个网页根据一个非均匀的概率分布与已有网页建立连接,这个概率分布与当前网页的入度数成比例。根据这个过程,拥有更多入度的的网页相较一般网页会吸引更多的链接。这样的机制会产生“幂律”(Power Law)。 和无标度网络相关的另外一个耳熟能详的名词是“长尾效应”。 无标度网络(scale-free network)是...原创 2022-03-14 20:18:01 · 1398 阅读 · 0 评论 -
从《金融信息系统多活技术规范》看Neo4j企业版集群技术
1.背景2021年2月7日,中国人民银行发布了《金融信息系统多活技术规范》(以下简称《规范》),首次将多活作为指导金融信息系统灾难恢复的标准。《规范》开篇给出了指导“多活技术”的驱动因素:——更高的灾难恢复要求,对于主备方式,当灾难事件发生后,灾难备份系统接管业务往往需要经过较长的时间,而当前金融业务的特点对业务连续性提出了更高的要求。——接管能力难以把控,对于主备方式,灾难备份系统在正常情况下并不承载真实业务,其真实接管能力难以有效评估,因对其接管能力的评估主要依赖于灾难恢复预案的制定、管理.原创 2022-03-10 19:42:49 · 1523 阅读 · 0 评论 -
Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC 8.6 - 图生成 小世界模型
1、概述WS小世界模型(Watts - Strogatz model)是一种随机图生成模型,其生成的图具有小世界属性,包括较短的平均节点间距离和高集聚系数。该模型由Duncan J. Watts(邓肯 J. 沃茨)和Steven Strogatz(斯蒂文·史楚盖兹)在1998年两人联合发表于《自然》的论文中提出 。Watts在其广受欢迎的科学读物《六度》中使用b来阐述该模型,这之后,该模型也被称为(沃茨)b模型。WS图拥有以下特征:可以生成局部集聚(local clustering)和三元闭合,原创 2022-02-16 15:41:34 · 905 阅读 · 0 评论 -
Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC 8.5 - 图生成 / 随机图
1、概述图生成过程用来生成不同类型的随机图,以用作算法研究、性能测试等目的。APOC提供下列随机图生成过程。 过程 说明 apoc.generate.er(noNodes, noEdges, 'label', 'type') 根据Erdős–Rényi模型[1](ER)生成图(随机网络)。 apoc.generate.ws(noNodes, degree, beta, 'label', 'type')原创 2022-01-17 21:28:10 · 883 阅读 · 0 评论 -
Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC (8.4) - 集合相关操作
1、概述在Cypher查询语言中,集合的使用非常普遍。集合的元素可以是简单类型的值、节点、关系、路径,甚至混合类型。下面的例子是产生集合的一些常用方法:// 返回一个包含从1到10 的整数集合RETURN range(1,10) AS collection;// 返回节点的集合MATCH (n:Node)RETURN collect(n) AS nodeColl// 提取路径中的节点和关系集合MATCH path = (from:Node) -[:REL]-> (to..原创 2021-12-15 12:18:43 · 1645 阅读 · 0 评论 -
Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC (8.3) - 地图和空间相关功能
1. 概述从Neo4j 3.5以后,地理坐标作为Point数据类型成为数据库模式支持的类型,另外数据库也提供基本的操作函数,例如计算两个坐标之间距离的函数distance()。更多关于Neo4j坐标类型和函数操作的介绍请参见:Spatial functions - Neo4j Cypher Manual。 因此,一些在早期APOC版本中包含的关于地理位置的过程和函数已经不再需要。APOC目前仍然提供的相关过程如下。注意,默认情况下APOC使用来自OpenStreetMap的地址服务。可...原创 2021-09-29 16:07:12 · 661 阅读 · 0 评论 -
Neo4j 图数据科学应用 - 图目录和图投影(三)
本系列的前二篇请参见:Neo4j 图数据科学应用 - 图目录和图投影(二)8. 以数据流方式返回节点属性我们可以将存储在命名内存图中的节点属性流式传输回用户。 如果我们在mutate模式下运行多个算法并想要检索部分或全部结果,这将非常有用。 这类似于stream执行模式的作用,但允许对操作进行更细粒度的控制。CALL gds.graph.streamNodeProperties('my-graph', ['componentId', 'pageRank', 'communityId翻译 2021-09-29 15:27:40 · 941 阅读 · 1 评论 -
Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC (8.2) : 实用路径操作过程
8.2 路径相关操作8.2.1 概述 APOC中的路径相关函数可以对查询返回的路径进行合并、切分操作,创建虚拟路径,以及返回完整路径。 函数名称 说明 apoc.path.combine(path1, path2) YIELD path 如果连接节点匹配,则将路径合并为一个。 apoc.path.create(startNode,[rels]) YIELD path ...原创 2021-09-15 20:23:01 · 595 阅读 · 0 评论 -
Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC (8.1) : 实用节点操作过程
类型 名称 说明 函数 apoc.any.properties (node/rel/map,) 返回虚拟和真实节点、关系和MAP数据结构的属性,可通过属性名进行过滤。 函数 apoc.any.property(node/rel/map) 返回虚拟和真实的节点、关系和MAP数据结构的属性。 函数 ...原创 2021-08-31 09:56:35 · 617 阅读 · 0 评论 -
幕后花絮:世界上最大的分布式图数据库是怎样炼成的?
本文基于该文章内容整理、补充得到:https://neo4j.com/developer-blog/behind-the-scenes-worlds-biggest-graph-database/在2021年6月17日的Neo4j NODES 2021全球图技术峰会上,Neo4j的工程师展示了迄今为止部署成功的最大的图数据库集群:1129个Neo4j数据库实例,其中: 1128个论坛数据分片 1个用户分片 3个Neo4j Fabric服务实例提供跨分片的查询 每个论坛分..翻译 2021-06-23 21:46:28 · 285 阅读 · 0 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(6.5) - 修改关系
1.重定向关系1.1定义 将指定关系重定向到新的节点。新的节点可以是被重定向的关系的起始节点(使用refactor.from()),也可以是终止节点(使用refactor.to())。1.1.1 过程调用接口 过程接口 CALL apoc.refactor.from( relationship, startNode ) YIE...原创 2021-05-18 21:49:57 · 608 阅读 · 0 评论 -
Neo4j图数据库版本4新特性介绍:内置角色和权限
Neo4j版本4中的内置角色 (企业版特性)本章节介绍Neo4j预先定义的角色。Neo4j 4提供具有默认权限的内置角色。 内置角色和默认特权是:PUBLIC访问默认数据库。 允许以用户自己的特权执行过程。 允许以用户自己的特权执行用户定义的功能。 reader访问所有数据库。 遍历和读取数据图(所有节点、关系、属性)。editor访问所有数据库。 遍历、读取和写入数据图。 写访问权限仅限于创建和更改图的现有属性键、节点标签和关系类型。换句...原创 2021-05-04 12:19:31 · 1725 阅读 · 1 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(5.5) - 导入JSON数据
1.定义 Web API/RESTful API是访问和集成外部数据源又一种常用的接口。目前,很多网站和应用服务都提供类似开放接口供其他应用读取其数据,而这些接口都使用JSON[1]作为数据格式。 APOC提供导入JSON格式数据的相关过程,支持从URL读取数据内容并转换成MAP结构的表示以方便在Cypher查询中使用。Cypher可以很方便地将嵌套的文档结构转换成属性图结构。 APOC同时还支持JSON Path[1],即以特定模式搜索JSON文档中...原创 2021-04-28 09:54:59 · 2103 阅读 · 0 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(6.4) - 合并节点和关系
1.合并节点1.1定义 根据指定规则合并数组中的节点及其属性、并删除被合并的节点。1.2过程调用接口 过程接口 // 合并节点 CALL apoc.refactor.mergeNodes( nodes [node1, node2, …], { configurations } ) YIELD node 参数名 类型...原创 2021-04-05 20:34:55 · 2187 阅读 · 0 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(6.3)- 克隆子图
1.概述 可以使用cloneSubgraph()和cloneSubraphFromPaths()克隆由节点列表、关系列表或路径列表定义的子图。如果未在过程调用时指定关系,则将克隆给定节点之间的所有关系。 在配置选项{configuration}中,可以提供一个“接入节点(standinNodes)列表”,该列表包含节点对的集合,指定图中的某些现有节点可以充当克隆子图中其他节点的“接入节点”(standin node)。接入节点会与克隆后的子图中指定节点之间建立关系。...原创 2021-03-23 12:35:05 · 411 阅读 · 1 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(6.2)- 克隆节点和关系
6.2、克隆节点6.2.1 定义 克隆节点及其所有属性到新节点。被克隆节点的关系在缺省情况下则不被复制。6.2.2 过程接口 过程接口 CALL apoc.refactor.cloneNodes( nodes [node1, node2, …], withRelationships, skipProperties ) YIELD inpu...原创 2021-03-09 15:55:33 · 470 阅读 · 1 评论 -
NeoDash:无代码快速创建Neo4j仪表板的工具
NeoDash:无代码快速创建Neo4j仪表板的工具作者:尼尔斯·德·琼(Niels de Jong)/ Neo4j构架师原文链接:https://nielsdejong.nl/neo4j%20projects/2020/11/16/neodash.html1、背景在Neo4j工作时,我需要经常构建使用图数据的前端应用程序。 很幸运,有大量的工具可以简化Neo4j前端开发人员的工作, GrandStack 和 Neode 就是非常的好的例子。 但是,在许多情况下,我需要一种快..原创 2021-03-09 15:41:18 · 1309 阅读 · 0 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(6.1)- 图重构 概述
Neo4j图数据库除了对复杂、深度查询的性能有更好的支持之外,其灵活的数据库模式(schema)管理是另外一个在处理大数据方面的独特优势。随着数据的积累和应用需求的演变,我们往往会意识到最初的数据库模型不再是最优化和最适合的,这时就需要进行数据库模式的重构(Refactoring)。APOC的图重构(Refactoring)过程提供对图中节点、关系和属性的转换、合并、复制等功能。Neo4j的图模式重构不像关系数据库那样需要删除和重新创建表、涉及复杂的运维操作,使用APOC中提供的过程可以方便的实现。原创 2020-12-08 11:31:21 · 523 阅读 · 0 评论 -
Neo4j BI Connector - 像访问关系数据库那样执行图查询
本文英文原文链接:https://neo4j.com/blog/getting-started-with-the-neo4j-bi-connector/?ref=bi-connectorNeo4j BI Connector十来年前,Neo4j推出了世界上第一个原生图数据库,自此定义一个全新的企业软件类别。从那时起,Neo4j一直在努力帮助客户实现其数据之间的联结(connection)的价值。随着超大规模计算、社交网络、移动和物联网设备的出现,在全球范围中、利用这些联结数据的需求每天都在增加。...原创 2020-11-16 08:51:54 · 849 阅读 · 0 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(5.4) - 导出数据到Cypher脚本文件
APOC提供一系列过程实现将数据库中的数据导出到可执行的Cypher脚本文件。这些过程支持不同的导出逻辑:导出所有数据 导出查询结果 导出特定标签节点和关系类型 导出一个graph对象 仅导出索引和限制(index和constraint) 将数据库中的内容导出到Cypher文件,可以用于数据迁移、集成和转换等目的。1、导出所有节点、关系和属性CALL apoc.export.cypher.all( file, {configuration}) ...原创 2020-11-11 13:32:16 · 853 阅读 · 0 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(5.3) 导入JDBC数据源的数据
1、概述APOC提供的JDBC相关过程支持从任何可以通过JDBC访问的数据源中提取数据、并加载到Neo4j中。通过JDBC驱动执行查询得到的结果,以记录流的方式返回(如果JDBC数据源支持流模式)。APOC也支持对远端数据库的更新操作。JDBC相关过程如下: 过程名 调用接口 说明 apoc.load.driver apoc.load.driver(driverClassName)原创 2020-11-02 15:05:29 · 923 阅读 · 3 评论 -
基于属性图的原生图计算和学习 - Neo4j GDS介绍
(本文部分内容来自Neo4j.com:https://neo4j.com/blog/announcing-graph-native-machine-learning-in-neo4j/ )作为全球领先的图数据库平台软件开发者,Neo4j率先发布全球第一个“原生图机器学习库” GDS :Graph Data Science 版本1.4。在这一版本中,除了增加更多图算法外,还第一次引入并实现了面向“图学习”(Graph Machine Learning)的企业级“图嵌入”(Graph Embedding).原创 2020-10-27 13:14:43 · 3626 阅读 · 2 评论 -
使用Neo4j Streams实现与Kafka的实时消息集成【1】- Sink模式
Neo4j Streams在线文档:https://neo4j.com/docs/labs/neo4j-streams/current/overview/一、背景介绍在许多的图数据库应用场景中,用户都希望将Kafka和其他流解决方案与Neo4j集成,以实现将其他数据源将数据实时更新到图中,或将图数据库中的更新事件(更改数据捕获 -CDC)发送到事件日志以供以后使用。上图中,对应(1),社交媒体网站即时将用户互加好友的事件发送到Kafka上特定主题,然后更新在Neo4j中的社交网络图;对应..原创 2020-07-27 21:01:43 · 1694 阅读 · 0 评论 -
Neo4j 4.0 / 4.1 配置快速参考 - 单服务器模式,适用于社区版和企业版
Neo4j 4.0/4.1是最新的Neo4j 图数据库平台产品,提供多数据库、跨库查询、细粒度数据访问控制等丰富特性。相比3.5,4.0在配置方面也有不少改变。为了方便大家快速上手,这里提供一个配置样例。1、系统环境- Windows 10,Linux同样适用;- CPU: 4 cores- RAM: 32GB,分配给Neo4j一共6GB。- 硬盘:强烈建议用SSD,如果没有就通过USB3 外接一个。- 适用的数据库大小:<1亿节点、5亿关系,约50GB在数据库目录下。2、原创 2020-07-13 17:02:00 · 2892 阅读 · 0 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(5.1) - 导出数据到CSV文件
1、配置要求为了能够使用APOC过程导出数据,需要增加下面的配置项: neo4j.conf apoc.export.file.enabled=true 为了能够使用APOC过程导入数据,需要增加下面的配置项: neo4j.conf apoc.import.file.enabled=true APOC的数据导入和导出目录是服...原创 2020-06-22 22:46:50 · 1178 阅读 · 0 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(4.7) - Cypher语句的条件分支
1、概述APOC提供以下过程来运行有条件分支的Cypher语句。 接口 过程 CALL apoc.when( condition, ifQuery, elseQuery:'', params:{} ) YIELD value 基于条件,执行给定参数的ifQuery或elseQuery只读查询。 CALL apoc.do.when( condition, ...原创 2020-06-22 22:41:54 · 1233 阅读 · 1 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(4.6) - 并行执行Cypher
Cypher的执行在缺省情况下都是单线程的。而有时,我们需要并行执行查询,例如对一个名称列表,查询它们在图中的邻居。这里,可以用APOC的Cypher相关过程runParallel()。// 并行初始化并执行查询。 // 缺省情况下,最大分区数/并行数为CPU内核数 x 100; // 最多批次数为10000。例如,如果Neo4j数据库被分配了4个内核, // 那么并行的最多进程数为400。CALL apoc.cypher.parallel( fragment, params,原创 2020-06-15 16:21:17 · 765 阅读 · 0 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(4.5) - 动态Cypher执行
有时候,我们需要更加灵活的Cypher查询执行,例如在创建节点时根据变量的值决定节点的标签,这时可以使用APOC中cypher执行相关的过程。 接口 功能 CALL apoc.cypher.run( fragment, params ) YIELD value 使用给定的参数执行数据库读取查询。 函数 apoc.cypher.runFirstColumnSingle ..原创 2020-06-15 15:20:23 · 1368 阅读 · 1 评论 -
Neo4j中文开发人员周刊 - 20200520【创刊号】
Neo4j中文开发人员周刊2020年5月20日各位Neo4j图数据库的开发者和使用者,你们好!酝酿和筹备已久的《Neo4j中文开发者周刊》终于和大家见面了!在中国有大量Neo4j的使用者和开发者,然而关于Neo4j产品的最新进展和应用案例方面的中文介绍一直不能满足大家的需要。相比起英文资源的丰富度与多样,能够帮助大家了解、使用和精通Neo4j图数据库的中文资源仍然存在内容有限、更新滞后和缺乏干...原创 2020-06-11 21:21:20 · 478 阅读 · 0 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(4.4) - 自定义Cypher函数和过程
1、定义APOC提供相关过程来创建用户自定义的函数和过程。这些函数和过程实际上是参数化的Cypher语言查询,类似宏(Macro)的概念。相关过程如下:apoc.custom.asFunction(),创建用户自定义函数; apoc.custom.asProcedure(),创建用户自定义过程。用户自定义函数和过程可以通过CALL dbms.functions和CALL dbms.procedures查看,所有自定义函数和过程自动被加上custom为前缀,例如custom.MyProcedure原创 2020-06-07 20:32:01 · 1002 阅读 · 0 评论 -
Neo4j图数据库高级应用系列 / 服务器扩展指南 APOC(4.3) - 后台执行查询submit
1、定义对于复杂的更新数据库的Cypher查询,可以使用APOC的submit()过程异步执行该查询。APOC还提供下面的过程管理异步/后台执行的任务:apoc.periodic.list():列出所有正在后台执行的任务 apoc.periodic.cancel(taskName):终止后台任务管理正在运行的查询是Neo4j企业版才有的功能。因为APOC可以同时运行在Neo4j社区版和企业版上,使用上述APOC异步执行过程使得社区版同样拥有部分管理后台查询的能力。2、过程概述apoc.p原创 2020-06-07 20:24:16 · 801 阅读 · 1 评论 -
从文本到知识:Neo4j 图数据库 + NLP (自然语言处理) 实现案例
我们现在处于“大数据时代”,而在浩繁的“大数据”中,绝大多数是文本形式的非结构化数据。图其实可以非常灵活和有效的表示和处理文本内容中的词语、概念、依存关系,并用作知识推理、情感分析、智能问答等丰富的应用中。 本文以百度云的自然语言处理API服务为例,介绍怎样将文本分析的结果保存到Neo4j图数据库中。1、准备 Neo4j图数据库3.5.*。 APOC扩展包。关于如何安装APOC,请参见这里。我们要用到APOC中访问RESTful AP...原创 2020-05-22 09:37:34 · 4612 阅读 · 0 评论 -
Neo4j Bloom最新版发布:支持多数据库、并且免费试用
Neo4j的Bloom图可视化工具1.3版正式发布。重要的更新包括:1) 支持Neo4j 4多数据库(4.0.3以上版本);2) 从Neo4j Desktop中安装、用于本地数据库模式,现在已经可以免费试用了。下面,我们来看一下Bloom 1.3的主要特性。图模式搜索使用图模式进行搜索提供了一种灵活的方式来浏览图形。这是一种基于自然语言的搜索范例,它使用图的元素...原创 2020-04-26 01:31:49 · 4277 阅读 · 1 评论 -
Graphs4Good: 使用Neo4j Bloom实现新冠病毒案例的接触史追踪
(本文的英文原文发表于:https://community.neo4j.com/t/graphs4good-protecting-community-from-covid-19-by-answering-key-questions-in-neo4j-bloom/17291) 尽管目前世界上大多数国家都在半封锁状态、以减慢致命的COVID-19病毒的传播,但寻找治愈方法的斗争从未停止...原创 2020-04-19 13:58:39 · 2828 阅读 · 0 评论 -
Neo4j高级应用技术专题系列 - APOC存储过程库-【2】路径扩展过程
Neo4j高级应用技术专题系列 - APOC存储过程库-【2】路径扩展过程使用apoc中的函数和过程:了解图数据库中已有数据的模型apoc.meta.graph()apoc的路径扩展函数expand()和expandConfig()虚拟关系和路径:apoc.create.vRelationship()即时创建属性和关系处理列表型数据的Cypher函数:filter()e原创 2018-01-06 10:19:30 · 3668 阅读 · 1 评论 -
Neo4j高级应用技术专题系列 - APOC存储过程库-【3】优化数据库写入性能
很多人提到Neo4j的数据库更新太慢。希望这篇文章能够给大家一个思路,一种方法和一些经验。全文下载链接:PDF文件原创 2018-01-17 11:20:09 · 1762 阅读 · 2 评论 -
Neo4j Java开发快速指南 - 第一部分
简要介绍Neo4j的Java开发接口和方法,帮助快速掌握客户端应用开发。第一部分: PDF文件下载原创 2018-02-06 16:34:50 · 1601 阅读 · 4 评论 -
Neo4j Java开发快速指南 - 第二部分
简要介绍Neo4j的Java开发接口和方法,帮助快速掌握客户端应用开发。第二部分: PDF文件下载原创 2018-02-07 06:43:28 · 786 阅读 · 1 评论