Neo4j 是一个原生图数据库 ,这意味着它从上到下(一直到存储层)都实现了一个真正的图模型 。它并非是在其他技术之上构建一个"图抽象层",而是按照您在白板上描绘想法的方式来存储数据。
自 2007 年以来,Neo4j 已发展成为一个包含各种工具、应用程序和库的丰富生态系统。该生态系统允许您通过多种方式(本文档中将予以介绍)将图技术集成到您的工作环境中。
除了核心的图功能之外,Neo4j 还提供 ACID 事务 、集群支持 和运行时故障转移功能。
如何与 Neo4j 交互
Neo4j 使用 Cypher®,这是一种类似于 SQL 的声明式查询语言,但针对图数据进行了优化。同一语言也通过 openCypher 项目被其他数据库(如 SAP HANA Graph)所使用。
另一种选择是使用程序库。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 支持在 Linux、macOS 和 Windows 系统上安装。
自托管本地部署
如果您倾向于使用本地部署:若非生产环境,请安装 Neo4j Desktop;否则请在本地直接安装 Neo4j。
在 Docker 上运行 Neo4j
Neo4j 可以在 Docker 容器中运行。可以从 DockerHub 下载官方 Neo4j 镜像,该镜像为多种版本提供了标准、开箱即用的 Neo4j 社区版和企业版软件包。它适用于 macOS、Windows 和 Linux。
在 Kubernetes 上运行 Neo4j
使用 Neo4j Helm charts,您可以在 Kubernetes 上部署单机或集群模式的 Neo4j,并使用适合最常见场景的配置选项。
Neo4j 提供免费和基于订阅的许可选项。请阅读有关可用版本的更多信息。
处理数据
创建数据库后,您的学习路径可以根据您是希望使用自己的数据还是 Neo4j 的示例数据集而有所不同:
- 自有数据:有几种方法可以将数据导入 Neo4j,并对其进行建模以获得更好的体验。
- 示例数据集 :Aura 和 Neo4j Browser 都内置了嵌入式指南,允许您创建示例数据集并开始查询。要访问它们,请在 Aura 中点击右上角的毕业帽图标,或在 Neo4j Browser 中输入
:guide
命令。您也可以下载示例数据集,然后将其导入到您的实例中。
Neo4j 工具
Neo4j 提供一系列工具,可用于数据库管理、数据可视化等多种目的。您可以在工具中心查看所有产品。
支持的库
Neo4j 支持几种流行的查询语言,并提供专有库以实现定制化体验:
- Neo4j 图数据科学库 提供了常用图算法和机器学习流程的实现,用于训练预测性监督模型。您可以使用它们来解决图问题,例如预测缺失的关系。
- 对象图映射库 将图中的节点和关系映射到领域模型中的对象和引用。您可以使用此资源来开始跟踪变更,并最大限度地减少必要的更新和传递持久化(读取和更新对象的邻域)。
API
Neo4j 目前提供三种专有 API:
- Neo4j HTTP API 允许您通过 HTTP 请求向 Neo4j 实例执行一系列 Cypher 语句。
- 变更数据捕获 API 允许您实时捕获和跟踪数据库的变更,并保持数据源处于最新状态。
- Neo4j 查询 API 允许您使用 Neo4j 当前不支持的语言开发客户端应用程序。
在 Neo4j Labs,您可以找到实验性项目,包括 API、库和可视化工具。