什么是 Neo4j?

neo4j architecture diagram

Neo4j 是一个原生图数据库,这意味着它从存储层面上实现了真正的模型。数据在 Neo4j 中的存储方式与您在白板上构思的方式相同,而不是在其他技术之上使用“图抽象”。

自 2007 年以来,Neo4j 已发展成为一个丰富的工具、应用程序和库生态系统。本节将介绍该生态系统如何让您以多种方式将图技术与您的工作环境集成。

除了核心图之外,Neo4j 还提供 ACID 事务、集群支持和运行时故障转移。

Neo4j 由 Java 和 Scala 编写。您可以在 GitHub 上查看源代码。

如何与 Neo4j 交互

Neo4j 使用 Cypher®,这是一种声明式查询语言,类似于 SQL,但针对图进行了优化。其他数据库(如 SAP HANA Graph)也通过 openCypher 项目使用相同的语言。

另一种选择是使用。Neo4j 目前支持 Java、JavaScript、.NET、Python、Go、GraphQL、Spring 等。

创建 Neo4j 实例

部署数据库是探索 Neo4j 的第一步。从以下选项中选择适合您项目的部署方法:

全托管云服务

Neo4j AuraDB 是一种全托管云服务,让您可以直接在浏览器中开始探索 Neo4j。

如果您是数据科学家,您可能还想查看 Neo4j AuraDS 并获取超过 65 种预调优的图算法

Neo4j Aura 包含免费版和订阅版。查看完整比较

自托管云服务

您还可以选择将图数据库部署在云平台上。Neo4j 支持 Amazon Web Services (AWS)、Google Cloud (GCP) 和 Microsoft Azure。

对于自托管云服务,如果您的项目不在生产环境中,您需要在本地安装 Neo4j 或使用 Neo4j Desktop

Neo4j 可安装在 LinuxmacOSWindows 上。

自托管本地部署

如果您喜欢本地部署:如果您的项目不在生产环境中,请安装 Neo4j Desktop 或在本地安装 Neo4j

Docker 上的 Neo4j

Neo4j 可以在 Docker 容器中运行。官方的 Neo4j 镜像提供了标准、即用型的 Neo4j 社区版和企业版,支持多种版本,可从 DockerHub 下载。它适用于 macOS、Windows 和 Linux。

Kubernetes 上的 Neo4j

使用 Neo4j Helm Charts,您可以在 Kubernetes 上部署独立版和集群版 Neo4j,并使用适用于最常见场景的配置选项。

Neo4j 提供免费版和订阅版许可选项。了解更多可用版本

使用数据

创建数据库后,您的学习路径会根据您是想使用自己的数据还是 Neo4j 的示例数据集而有所不同

  • 自有数据:有多种方法可以将数据导入 Neo4j 并对其进行建模,以获得更好的体验。

  • 示例数据集AuraNeo4j Browser 都内置了指南,可让您创建示例数据集并开始查询。要访问它们,请在 Aura 右上角使用学士帽图标,或在 Neo4j Browser 中输入 :guide
    您还可以下载示例数据集,然后将其导入到您的实例中。

Neo4j 工具

Neo4j 拥有一系列可用于数据库管理、数据可视化等多种用途的工具。您可以在工具中心查看所有产品。

支持的库

Neo4j 支持多种最流行的查询语言,并提供专有库以实现定制体验

  • Neo4j 图数据科学 (GDS) 库提供了常见图算法和机器学习流水线的实现,用于训练预测性监督模型。例如,您可以使用它们来解决图问题,例如预测缺失关系。

  • 对象图映射 (OGM) 库将图中的节点和关系映射到领域模型中的对象和引用。您可以使用此资源来开始跟踪更改,并最大限度地减少必要的更新和传递持久化(读取和更新对象的邻域)。

API

Neo4j 目前提供三种专有API

  • 通过 Neo4j HTTP API,您可以通过 HTTP 请求对 Neo4j 实例执行一系列 Cypher 语句。

  • 通过变更数据捕获 (CDC) API,您可以实时捕获和跟踪数据库更改,并保持数据源最新。

  • 通过 Neo4j 查询 API,您可以用 Neo4j 目前不支持的语言开发客户端应用程序。

Neo4j Labs,您可以找到实验性项目,包括 API、库和可视化工具。

持续学习

要了解更多关于什么是图数据库以及该技术背后的概念,请继续阅读文档或浏览其他精选资源

您还可以在 Neo4j 社区网站上联系 Neo4j 社区的其他成员。

术语表

标签

将节点标记为命名和索引子集的一个成员。一个节点可以被分配零个或多个标签。

标签

标签将节点标记为命名和索引子集的一个成员。一个节点可以被分配零个或多个标签。

节点

节点代表图数据模型中的实体或离散对象。节点可以通过关系连接,在属性中保存数据,并按标签分类。

节点

节点代表图数据模型中的实体或离散对象。节点可以通过关系连接,在属性中保存数据,并按标签分类。

关系

关系代表图数据模型中节点之间的连接。关系连接源节点到目标节点,在属性中保存数据,并按类型分类。

关系

关系代表图数据模型中节点之间的连接。关系连接源节点到目标节点,在属性中保存数据,并按类型分类。

属性

属性是用于在节点和关系上存储数据的键值对。

属性

属性是用于在节点和关系上存储数据的键值对。

集群

一个 Neo4j DBMS 跨越多个服务器协同工作,以提高容错能力和/或读取可伸缩性。集群中的数据库可以配置为在集群中的服务器之间复制,从而实现读取可伸缩性或高可用性。

集群

一个 Neo4j DBMS 跨越多个服务器协同工作,以提高容错能力和/或读取可伸缩性。集群中的数据库可以配置为在集群中的服务器之间复制,从而实现读取可伸缩性或高可用性。

节点集合的逻辑表示,其中一些节点对通过关系连接。

节点集合的逻辑表示,其中一些节点对通过关系连接。

模式

为节点和关系规定的属性存在和数据类型。

模式

为节点和关系规定的属性存在和数据类型。

[[数据库模式]]数据库模式

为节点和关系规定的属性存在和数据类型。

索引

提高数据库读取性能的数据结构。了解更多关于支持的索引类别

已索引

提高数据库读取性能的数据结构。了解更多关于支持的索引类别

约束

约束是一组数据建模规则,用于确保数据的一致性和可靠性。查看 Cypher 中可用的约束

数据模型

数据模型定义了信息在数据库中的组织方式。一个好的数据模型将使查询和理解数据变得更容易。在 Neo4j 中,数据模型具有图结构。

数据模型

数据模型定义了信息在数据库中的组织方式。一个好的数据模型将使查询和理解数据变得更容易。在 Neo4j 中,数据模型具有图结构。

© . All rights reserved.