Neo4j初探
Neo4j先容
1. Neo4j 是什么?
- 定义:Neo4j 是一款高性能的 原生图数据库(Native Graph Database),专门为存储和查询图结构数据筹划。
- 核心头脑:以 节点(Node)、关系(Relationship) 和 属性(Property) 为基本单元,直接映射现实天下的关联关系。
- 查询语言:使用声明式查询语言 Cypher,语法简便直观,专注于描述“连接模式”。
2. 核心概念
(1) 图数据模子
- 节点(Nodes):表示实体(如用户、商品、地点),可附加标签(Label)和属性。
- CREATE (:Person {name: "Alice", age: 30})
复制代码 - 关系(Relationships):连接两个节点,具有方向(→ 或 ←)和类型(Type),可附加属性。
- MATCH (a:Person), (b:Person)
- CREATE (a)-[:FRIENDS_WITH {since: 2020}]->(b)
复制代码 - 属性(Properties):键值对,存储节点或关系的详细信息(如 name, age)。
(2) Cypher 查询语言
- 直观语法:通过模式匹配直接描述图结构。
- MATCH (p:Person)-[:LIVES_IN]->(c:City {name: "北京"})
- RETURN p.name, p.age
复制代码 - 高效遍历:支持复杂关系路径查询(如最短路径、模式匹配)。
3. 核心上风
(1) 原生图存储
- 物理存储优化:数据以图结构直接存储,制止传统数据库的“表连接”开销。
- 高效遍历:通过指针直接访问相邻节点,时间复杂度靠近 O(1)。
(2) 高性能
- 复杂查询优化:擅优点理多跳查询(如“朋侪的朋侪”)、路径分析等场景。
- 实时分析:支持大规模图数据的实时查询和分析。
(3) 机动性与扩展性
- 动态模式:无需预定义固定表结构,可随时扩展节点、关系和属性。
- 支持 ACID 事件:确保数据划一性,适用于金融、供应链等关键场景。
(4) 可视化工具
- Neo4j Browser:内置交互式界面,直观展示图结构和查询效果。
- Bloom:企业级可视化工具,支持动态探索大规模图数据。
4. 适用场景
场景示例社交网络分析查找用户的朋侪圈、影响力分析、社区发现推荐系统基于共同兴趣或举动的商品推荐(如“购买了此商品的人也买了…”)欺诈检测辨认异常交易模式(如环状转账、虚假账户网络)知识图谱构建企业级知识库(如医疗疾病关联、金融风险图谱)供应链优化分析物流路径、供应商依赖关系IT 运维追踪微服务依赖、故障传播分析 5. 对比传统数据库
对比维度关系型数据库Neo4j(图数据库)数据模子表结构(行与列)图结构(节点、关系、属性)查询复杂度多表 JOIN 性能差多跳关系查询高效场景适配结构化数据、简单关系复杂关联关系、动态模式扩展性垂直扩展为主水平扩展(Neo4j 4.0+ 支持集群) 6. 版本与生态
- 社区版:免费开源,得当个人和小型项目。
- 企业版:付费,支持集群、备份、监控等高级功能。
- 工具与插件:
- APOC:扩展库,提供数据导入/导出、算法等实勤奋能。
- Neo4j Graph Data Science:内置图算法(如 PageRank、社区发现)。
- Neo4j Connectors:与 Kafka、Spark 等大数据工具集成。
7. 入门步调
- 安装:下载 Neo4j Desktop(支持Windows/Mac/Linux)。
- 创建数据库:一键启动当地实例。
- 学习 Cypher:通过内置教程或官方文档实践。
- 导入数据:使用 LOAD CSV 或 neo4j-admin 工具。
- 可视化探索:在 Neo4j Browser 中运行查询并检察图效果。
8. 缺点与留意事项
- 学习曲线:需掌握 Cypher 语法和图思维。
- 存储本钱:图数据库存储开销大概高于关系型数据库。
- 适用界限:非关联型数据(如日记、时序数据)建议选择其他数据库。
Neo4j 安装
Docker Compose 安装
https://neo4j.com/docs/operations-manual/current/docker/docker-compose-standalone/
- services:
- neo4j:
- image: neo4j:latest
- volumes:
- - /$HOME/neo4j/logs:/logs
- - /$HOME/neo4j/config:/config
- - /$HOME/neo4j/data:/data
- - /$HOME/neo4j/plugins:/plugins
- environment:
- - NEO4J_AUTH=neo4j/your_password
- ports:
- - "7474:7474"
- - "7687:7687"
- restart: always
复制代码 启动
docker compose up -d
访问
localhost:7876
知识图谱例子
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |