初识Neo4j之入门介绍(一)
一、介绍
Neo4j 是一个原生图数据库,这意味着它自底向上地实现了真正的图模型。Neo4j 并不是在其他技术之上叠加一个“图抽象层”,而是将数据以用户在白板上绘制想法的方式直接存储在数据库中。上述这段话的意思是,Neo4j 并不像有些其他数据库(比如基于关系型或文档型数据库)那样先用传统的存储方式保存数据,再在上面加一层,让用户感觉自己在用图数据库。相反,Neo4j 从数据存储的最底层开始,就是按照图的结构设计和实现的:节点和关系(边)就是底层的基本单位,数据的存储、访问和查询都原生支持图模型。这就像你在白板上点出几个点(节点)、再用线(关系)把这些点连接起来。在 Neo4j 里,数据结构和你脑海中的图是一致的,没有额外的复杂转换层。这样不仅易于理解,也让处理复杂关系和多层连接的数据变得非常高效。
二、Neo4j的生态
Neo4j以属性图数据库为核心,提供了一个由工具、应用程序和库组成的生态系统,该生态系统旨在帮助用户快速上手这项技术。
1)Aura
- 定义:Neo4j Aura是Neo4j官方的完全托管云服务产品(Database-as-a-Service)。
- 作用:用户可以在云端快速创建、扩展、管理和访问Neo4j数据库,无需自己部署或维护服务器。
2)Cypher
- 定义:Cypher是Neo4j的专用图查询语言(类似SQL之于关系型数据库),用来描述模式、查询、插入与操作图数据。
- 作用:开发者用Cypher语句进行节点、关系创建、查询、更新和删除等操作,是使用Neo4j的核心交互语言。
3)Drivers & APIs
-
定义:指各种编程语言(Java、Python、JavaScript等)的官方或社区开发的连接库和接口。
-
作用:应用程序可以通过这些驱动,用代码与Neo4j数据库进行通信、发送Cypher指令、获取数据结果等。
4)Connectors
- 定义:实现Neo4j与其它系统或数据库的数据交换、集成方案的工具/插件。
- 举例:
- JDBC Connector:让Neo4j像表格一样被SQL工具访问。
- ETL工具:如Neo4j ETL,便于从关系型数据库导入数据。
- Kafka Connector:支持与流处理系统集成。
5)Tools
- 定义:指与Neo4j配套的桌面应用、命令行工具、插件等。
- 常见工具:
- Neo4j Desktop:本地开发图数据库的客户端。
- Neo4j Browser:Web下图形化Cypher查询和结果展示工具。
- Neo4j Bloom:面向业务人员的图探索和可视化工具。
- 管理员工具:迁移、监控、备份等。
6)Graph Data Science
- 定义:Neo4j Graph Data Science(GDS)是Neo4j的一套用于图分析和机器学习的算法库和工具集。
- 作用:用于关系挖掘、社群发现、节点排名、图特征工程等数据科学任务,支持大规模图算法计算,深度探索图结构中的知识。
7)Visualization
- 定义:指将图数据以节点-关系图等形式可视化展示,便于理解和探索。
- 实现方式:
- 利用Neo4j Browser、Bloom或第三方工具(如Gephi、Graphistry)进行节点和关系的可视化。
- 可嵌入到应用程序的前端。
三、如何与Neo4j交互
Neo4j 使用一种类似于 SQL 的声明式查询语言 Cypher,并且它针对图数据进行了优化。另一个选择是使用库,Neo4j目前支持Java、JavaScript、. net、Python、Go、GraphQL、Spring等。
四、创建Neo4j实例
部署方法包括:全托管的云服务、自主管理云服务以及自主管理的本地部署。