使用 Amazon Neptune 构建图数据库 - 知识图谱与社交网络分析

通过 Gremlin 和 SPARQL 两种查询语言操作图数据,利用最多 15 个只读副本实现查询扩展。解析 Neptune Analytics 的图算法执行与向量搜索的应用方法。

Neptune 概述与图数据库的优势

Amazon Neptune 是一项全托管的图数据库服务。它支持属性图 (Gremlin/openCypher) 和 RDF 图 (SPARQL) 两种图模型,适合社交网络、推荐系统、知识图谱、欺诈检测等基于图的用例。在关系型数据库中需要多级 JOIN 的复杂关系查询(如查找朋友的朋友的朋友),可以用图遍历的方式自然地表达。标准提供最多 15 个只读副本的读取扩展、多可用区部署的高可用性和时间点恢复的数据保护。存储可自动扩展至最大 128 TiB,采用跨 3 个可用区保存 6 份数据副本的高可用架构。

查询语言与数据模型

Gremlin 是属性图模型的遍历语言,可以为顶点(节点)和边赋予属性(键值对)。通过 g.V().has("person","name","Alice").out("knows").values("name") 这样的遍历语句,可以获取 Alice 的朋友姓名。openCypher 是源自 Neo4j 的声明式查询语言,可以用 MATCH (p:Person {name:"Alice"})-[:KNOWS]->(f) RETURN f.name 这样的模式匹配编写查询。SPARQL 是用于 RDF (Resource Description Framework) 图的 W3C 标准查询语言,适合构建知识图谱和本体。在同一集群内可以同时使用 Gremlin/openCypher 和 SPARQL,但数据模型是分别管理的。Neptune ML 将机器学习应用于图数据,可通过 GNN (图神经网络) 执行节点分类、链接预测等任务。

实践用例

图数据库的用例多种多样。在欺诈检测中,图算法可检测交易网络内的异常模式(循环交易、共谋网络)。推荐引擎整合用户购买历史、浏览记录和社交图谱,用于推荐。IT 基础设施依赖管理中,将服务器、应用和网络设备的关系以图形式可视化,便于确定故障影响范围。生命科学领域,通过图分析蛋白质相互作用网络和药物副作用关系,用于药物研发。

Neptune Analytics 与向量搜索

Neptune Analytics 是一个无服务器分析引擎,可对图数据执行图算法(PageRank、最短路径、社区检测、中心性分析)。它可以导入 Neptune Database 的快照或 S3 中的数据,对图进行交互式算法执行。向量搜索功能也已集成,可以在图节点中存储向量嵌入,将相似节点搜索与图遍历结合执行。例如,可以为知识图谱的实体附加文本嵌入,构建融合语义搜索与图探索的 RAG 管道。

与 DynamoDB 的混合架构和数据管道

将 Neptune 与 DynamoDB 结合,可构建兼具图查询灵活性和 DynamoDB 高速读写的架构。可以采用将实体属性数据存储在 DynamoDB 中、将实体间关系存储在 Neptune 中的混合配置。Lambda 函数集成两个服务,通过 API Gateway 向客户端提供统一 API。利用 Neptune Streams 可实时检测图数据变更,构建自动更新 DynamoDB 缓存的事件驱动管道。Neptune 的批量加载器可从 S3 导入 CSV 等数据。Step Functions 可构建图数据 ETL 管道,自动化定期数据更新。Neptune Serverless 根据工作负载自动扩展,降低空闲时的成本。

Neptune 的定价

Neptune Database 的费用由实例、存储和 I/O 构成。实例的费用因实例类别和区域而异。Neptune Serverless 采用基于容量单位 (NCU) 的计费方式,从最小 1 NCU 自动扩展到最大 128 NCU。存储和 I/O 按使用量计费。流量断续的工作负载适合使用 Serverless。

总结

Amazon Neptune 是支持 Gremlin、openCypher、SPARQL 三种查询语言的全托管图数据库。可用于欺诈检测、推荐、知识图谱、依赖管理等关系分析。通过 Neptune Analytics 的图算法执行和向量搜索集成,以及与 DynamoDB 的混合架构,可构建高级的图驱动系统。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享