
ArcadeDB 图数据库实战用 Cypher 语言 10 分钟完成社交网络查询【免费下载链接】arcadedbArcadeDB Multi-Model Database, one DBMS that supports SQL, Cypher, Gremlin, HTTP/JSON, MongoDB and Redis. ArcadeDB is a conceptual fork of OrientDB, the first Multi-Model DBMS. ArcadeDB supports Vector Embeddings.项目地址: https://gitcode.com/gh_mirrors/ar/arcadedbArcadeDB 是一个支持 SQL、Cypher、Gremlin、HTTP/JSON、MongoDB 与 Redis 协议的多模型图数据库也是 OrientDB 的概念分支。本教程面向新手你将用约 10 分钟完成 ArcadeDB 图数据库的安装、建库、写入数据并用 Cypher 语言跑通一套完整的社交网络查询查好友、找共同好友、挖二度人脉、统计人气排行。全程无需深厚基础跟着步骤走即可。为什么社交网络分析首选 ArcadeDB 图数据库社交网络好友、关注、点赞本质上就是人-关系-人的网状结构用关系型数据库做多层关联查询需要反复 JOIN越查越慢而 ArcadeDB 图数据库把顶点和边作为一等公民Cypher 一句MATCH就能直达多层关系。ArcadeDB 最大的特点是多模型一体同一个数据库里你可以用 SQL 做报表、用 Cypher 做图遍历、用 Gremlin 做 TinkerPop 生态开发还能通过 MongoDB、Redis 等协议接入现有客户端并原生支持 Vector Embeddings 向量检索。查询语言适用场景上手难度SQL / SQL MATCH文档查询、图遍历、聚合统计⭐ 低CypherOpenCypher声明式图模式匹配、社交网络分析⭐⭐ 中GremlinTinkerPop 生态、复杂遍历⭐⭐⭐ 较高10 分钟上手第一步最快安装与启动方法方法一Docker 一键启动推荐新手docker run --rm -p 2480:2480 -p 2424:2424 arcadedata/arcadedb:latest启动后打开浏览器访问 http://localhost:2480即可进入 ArcadeDB Studio 图形化界面。2480 是 HTTP/Studio 端口2424 是二进制协议端口。方法二下载发行版解压即用下载最新 release 包解压后Linux/macOS 执行bin/server.shWindows 执行bin/server.bat即可启动服务。方法三从源码构建想深入源码或参与贡献可克隆仓库后编译需要 Java 21git clone https://gitcode.com/gh_mirrors/ar/arcadedb cd arcadedb mvn clean install -DskipTests搭建社交网络图模型顶点与边以官方示例中的数据集为例8 个人Person 顶点12 对好友关系FRIEND_OF 边。先创建图模型CREATE VERTEX TYPE Person CREATE PROPERTY Person.name STRING CREATE PROPERTY Person.age INTEGER CREATE PROPERTY Person.city STRING CREATE EDGE TYPE FRIEND_OF CREATE PROPERTY FRIEND_OF.since DATE CREATE PROPERTY FRIEND_OF.closeness STRING是不是很像传统数据库建表区别在于Person是顶点类型FRIEND_OF是边类型边天然记录谁指向谁还自带since认识时间、closeness亲密度等属性。完整的建库、批量写入脚本见bindings/python/examples/02_social_network_graph.py。用 Cypher 语言写入节点与关系ArcadeDB 的 Cypher 方言OpenCypher支持标准的CREATE语法写入数据CREATE (alice:Person {name: Alice Johnson, age: 28, city: New York}) CREATE (bob:Person {name: Bob Smith, age: 32, city: San Francisco}) CREATE (alice)-[:FRIEND_OF {since: 2020-05-15, closeness: close}]-(bob)如果你想跳过手动录入官方示例用 SQL 批量插入了 8 个人和 24 条双向好友边几秒钟即可得到一份可直接查询的社交网络数据集。核心实战5 个 Cypher 社交网络查询下面 5 个 Cypher 查询覆盖了社交产品的常见需求全部来自官方示例可直接在 Studio 或任意客户端中运行。查询一找出 Alice 的所有好友MATCH (alice:Person {name: Alice Johnson})-[:FRIEND_OF]-(friend:Person) RETURN friend.name AS name, friend.city AS city ORDER BY name查询二寻找 Alice 与 Bob 的共同好友MATCH (alice:Person {name: Alice Johnson})-[:FRIEND_OF]-(mutual:Person) -[:FRIEND_OF]-(bob:Person {name: Bob Smith}) RETURN mutual.name AS mutual_friend一条MATCH同时描述Alice 认识他和Bob 也认识他两个条件共同好友即刻浮出水面——这正是图数据库相对关系型数据库的杀手锏。查询三好友的好友挖掘二度人脉MATCH (alice:Person {name: Alice Johnson})-[:FRIEND_OF]-(friend:Person) MATCH (friend)-[:FRIEND_OF]-(fof:Person) WHERE fof.name Alice Johnson RETURN DISTINCT fof.name AS name, friend.name AS through_friend ORDER BY name可能认识的人推荐功能本质上就是这样的二度人脉查询DISTINCT负责去重。查询四统计人气谁的好友最多MATCH (p:Person) OPTIONAL MATCH (p)-[:FRIEND_OF]-(friend:Person) RETURN p.name AS name, count(friend) AS friend_count ORDER BY friend_count DESC, nameOPTIONAL MATCH确保没有好友的孤独用户也不会被漏掉count()配合ORDER BY直接生成人气排行榜。查询五变长路径3 度以内的所有人MATCH (alice:Person {name: Alice Johnson})-[:FRIEND_OF*1..3]-(connected:Person) WHERE connected.name Alice Johnson RETURN DISTINCT connected.name AS name, connected.city AS city ORDER BY name[:FRIEND_OF*1..3]表示关系跳数在 1 到 3 之间一条语句就完成了六度分隔式的多层探索这是 Cypher 最具表现力的特性之一。不止 Cypher同一种数据多种查法ArcadeDB 的独特之处在于多语言并存。同样的查 Alice 好友你可以自由切换语言写法要点特点OpenCypherMATCH (a)-[:FRIEND_OF]-(b)声明式、直观、适合图分析SQL MATCHMATCH {type: Person, as: a}-FRIEND_OF-{type: Person, as: b}与 SQL 语法风格一致Gremling.V().has(name,Alice Johnson).out(FRIEND_OF)TinkerPop 标准遍历三者的完整对照实现见bindings/python/examples/02_social_network_graph.py的对比章节示例甚至会对同一查询做耗时对比方便你按业务场景选型。深入源码Cypher 引擎与更多示例想了解 Cypher 在 ArcadeDB 内部如何被解析执行核心引擎位于engine/src/main/java/com/arcadedb/query/opencypher/包含解析器、优化器optimizer/CypherOptimizer.java和执行器executor/steps/等模块。更多可直接运行的参考代码bindings/python/examples/02_social_network_graph.py本文社交网络的完整版含 SQL、Cypher、Gremlin 三方对比bindings/python/examples/09_stackoverflow_graph_oltp.pyStack Overflow 问答图谱的 OLTP 写入与查询bindings/python/examples/13_stackoverflow_hybrid_queries.py图 全文检索的混合查询bolt/conformance/COMPATIBILITY.mdBolt 协议Neo4j 驱动兼容性说明可用neo4j-driver直接连 ArcadeDB小结与下一步至此你已经在 10 分钟内完成了 ArcadeDB 图数据库从安装、建模型、写数据到 5 类社交网络查询的全流程。Cypher 的核心就一句话用MATCH描述关系模式让数据库替你做图遍历。接下来值得探索的方向给好友关系加入向量特征做相似人推荐、用 SQL MATCH 混合图与关系查询、通过 Bolt 协议接入现有 Neo4j 客户端或部署 Docker Compose 高可用集群见docker-compose.yml。动手跑一遍官方示例你对图数据库的理解会立刻上一个台阶。【免费下载链接】arcadedbArcadeDB Multi-Model Database, one DBMS that supports SQL, Cypher, Gremlin, HTTP/JSON, MongoDB and Redis. ArcadeDB is a conceptual fork of OrientDB, the first Multi-Model DBMS. ArcadeDB supports Vector Embeddings.项目地址: https://gitcode.com/gh_mirrors/ar/arcadedb创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考