当前位置: 首页 > news >正文

亚马逊云科技产 Amazon Neptune 图数据库服务体验

目录

  • 图数据库
  • 为什么使用图数据库
  • Amazon Neptune
  • 实践
    • 登陆
    • 创建 S3 存储桶
    • notebook
    • 图神经网络快速构建
    • 加载数据
    • 配置端点
    • Gremlin 查询
    • 删除环境
    • 删除 S3 存储桶
  • 总结

图数据库

图数据库是一种专门用于存储和处理图形数据结构的数据库管理系统。图形数据结构由节点(Node)和边(Edge)组成,节点代表实体,边代表实体之间的关系。
图形数据库经过优化,可以存储和查询数据项之间的关系。它们将数据项本身存储为图的顶点,将它们之间的关系存储为边。每条边都有一种类型,并且从一个顶点(起点)指向另一个顶点(终点)。关系可以称为谓词,也可以称为边,顶点有时也称为节点。在所谓的属性图中,顶点和边都可以具有 与之关联的其他属性。比如下图是一个表示社交网络中的朋友和爱好的图表:
在这里插入图片描述

为什么使用图数据库

在当今互联网飞速发展的背景下,传统的关系型数据库在处理复杂关系操作时显得力不从心。然而,图数据库通过存储数据和其相互关系,大大提升了对数据节点和关系操作的效率。图数据库能够在线性时间复杂度内访问数据节点和关系,甚至可以在一秒钟内遍历数百万级的关系边,表现出显著的性能优势。所以图数据库的优势越发明显,在开发过程中扮演着重要角色。

Amazon Neptune

亚马逊云科技产品Amazon Neptune 数据库是一个无服务器图形数据库,旨在实现卓越的可扩展性和可用性。Neptune 数据库提供内置安全性、持续备份以及与其他 AWS 服务的集成。Neptune 全球数据库为全球分布式应用程序提供跨区域数据复制,以实现低延迟读写、灾难恢复和可扩展性。其中Neptune具有优势极其显著,具体如下:

  • Neptune 支持图形用例,例如推荐引擎、欺诈检测、知识图谱、药物发现和网络安全。

  • Neptune 数据库具有高可用性,具有只读副本、时间点恢复、持续备份到 Amazon S3 以及跨可用区复制等功能。

  • Neptune 提供数据安全功能,支持静态和动态加密。

  • Neptune 是完全托管的,因此您不再需要担心数据库管理任务,例如硬件配置、软件修补、设置、配置或备份。

实践

接下来我们来体验一波!

登陆

首先需要打开亚马逊云科技官网,注册登录。

创建 S3 存储桶

控制台搜索cloudshell
在这里插入图片描述
然后切换一下节点,随便选择一个
在这里插入图片描述
接下来就可以创建 S3 存储桶了
在这里插入图片描述
cheetah-qing为自己的桶名,需要自定义。创建完成之后需要创建堆栈

aws cloudformation create-stack --stack-name get-started-neptune-ml --template-url https://s3.amazonaws.com/ee-assets-prod-us-east-1/modules/4f0f18a83e6148e895b10d87d4d89068/v1/gcr-buildon-selfpace/gcr-buildon-neptune-ml-nested-stack.json --capabilities CAPABILITY_IAM --region us-east-1 --disable-rollback

然后就需要等待服务启动。

notebook

在搜索栏输入neptune,点击进入,导航栏选择“笔记本”
在这里插入图片描述
紧接着点击右侧的“查看笔记本文档”。
在这里插入图片描述
注意:倘若没有 notebook,需确定地区是否选择正确,其次确认后台服务是否都启动完成。

图神经网络快速构建

我们在上方已经打开笔记,接着在控制台输入命令来检查集群是否已正确配置可以运行 Neptune ML
在这里插入图片描述

加载数据

这里使用 Bulk Loader来加载数据,通过编写脚本可以实现自动执行从MovieLens网站下载数据,调整数据格式,并将数据载入Neptune的全过程。

s3_bucket_uri="s3://cheetah-qing"
# remove trailing slashes
s3_bucket_uri = s3_bucket_uri[:-1] if s3_bucket_uri.endswith('/') else s3_bucket_uri

执行response = neptune_ml.prepare_movielens_data(s3_bucket_uri)命令即可下载 MovieLens 数据,并将其调整为可被 NeptuneBulk Loader 兼容的格式。
结果如下:

Completed Processing, data is ready for loading us![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1c0bc19a3cd84c79976827820d721a17.png)
ing the s3 url below:
s3://cheetah-qing/neptune-formatted/movielens-100k

操作完成后,执行下面代码加载数据

%load -s {response} -f csv -p OVERSUBSCRIBE --run

在这里插入图片描述

配置端点

执行命令来创建端点,并获取到推理端点的端点名称。

setup_node_classification=True
setup_node_regression=True
setup_link_prediction=True
setup_edge_classification=True
setup_edge_regression=Trueendpoints=neptune_ml.setup_pretrained_endpoints(s3_bucket_uri, setup_node_classification, setup_node_regression, setup_link_prediction, setup_edge_classification, setup_edge_regression)node_classification_endpoint=endpoints['node_classification_endpoint_name']['EndpointName']
node_regression_endpoint=endpoints['node_regression_endpoint_name']['EndpointName']
link_prediction_endpoint=endpoints['prediction_endpoint_name']['EndpointName']
edge_classification_endpoint=endpoints['edge_classification_endpoint_name']['EndpointName']
edge_regression_endpoint=endpoints['edge_regression_endpoint_name']['EndpointName']

Gremlin 查询

先执行下面代码,来验证图谱中,Forrest Gump 这个 moviegenre 不包含任何 genre
在这里插入图片描述

接下来我们修改这个查询。首先指定要在 Gremlin查询中使用的推理端点:g.with("Neptune#ml.endpoint","<INSERT ENDPOINT NAME>"),然后指定我们想要获取该属性的预测值:with("Neptune#ml.classification")。将这些内容结合在一起就可以得到下方的查询,该查询可通过我们的产品知识图谱 Forrest Gumpgenre。执行下面命令

%%gremlin
g.with("Neptune#ml.endpoint","${node_classification_endpoint}").V().has('title', 'Forrest Gump (1994)').properties("genre").with("Neptune#ml.classification").value()

结果如下:
在这里插入图片描述
查看结果可知,预测结果似乎是正确的,Forrest 似乎被正确预测为 Drama 类型。

删除环境

如果不需要这个服务,就把它删除掉,防止持续扣费。
在这里插入图片描述

删除 S3 存储桶

选择 cloudshell,执行aws s3 rb s3://cheetah-qing --force删除 S3 存储桶。
在这里插入图片描述

总结

Amazon Neptune 是一种高性能、可扩展且完全托管的图数据库服务,具有许多优势,使其在处理复杂关系数据时非常有效。

  • 快速开发和部署:Neptune 提供灵活的开发和部署环境,支持快速原型设计和部署,减少开发时间和成本。
  • Neptune 无缝集成 AWS 的其他服务,如 AWS LambdaAmazon CloudWatchAmazon S3 等,便于构建复杂的应用程序和数据管道。
  • 全球部署:通过 Amazon Neptune 全球部署选项,可以在全球多个区域快速部署和访问图数据库,实现低延迟和高可用性。
  • 高性能:Neptune 设计用于快速、低延迟的图查询,能够高效处理包含数十亿个关系和节点的图数据。其优化的存储引擎和查询引擎能提供快速的图遍历和查询性能。
  • 完全托管:作为 AWS 的托管服务,Amazon Neptune 减少了用户管理数据库基础设施的负担。AWS 负责软件更新、补丁管理、备份和恢复等操作,使用户可以专注于应用开发。

当然Amazon Neptune 还有很多操作,期待在以后的使用过程中继续挖掘!

相关文章:

亚马逊云科技产 Amazon Neptune 图数据库服务体验

目录 图数据库为什么使用图数据库Amazon Neptune实践登陆创建 S3 存储桶notebook图神经网络快速构建加载数据配置端点Gremlin 查询删除环境删除 S3 存储桶 总结 图数据库 图数据库是一种专门用于存储和处理图形数据结构的数据库管理系统。图形数据结构由节点&#xff08;Node&…...

【网络安全】重置密码token泄露,实现账户接管

未经许可&#xff0c;不得转载。 文章目录 正文 正文 对某站点测试过程中&#xff0c;登录账户触发忘记密码功能点&#xff0c;其接口、请求及响应如下&#xff1a; PUT /api/v1/people/forgot_password 可以看到&#xff0c;重置密码token和密码哈希均在响应中泄露。 删除co…...

计算机基础知识复习8.13

cookie和session区别 cookie:是服务器发送到浏览器&#xff0c;并保存在浏览器端的一小块数据 浏览器下次访问服务时&#xff0c;会自动携带该块数据&#xff0c;将其发送给服务器 session:是javaEE标准&#xff0c;用于在服务端记录客户端信息 数据存放在服务端更加安全&a…...

Unity URP无光照下Shadow 制作 <二> 合批处理

闲谈 相信大家在日常工作中发现了一个问题 &#xff0c; urp下虽然可以做到3个Pass 去写我们想要的效果&#xff0c;但是&#xff0c;不能合批&#xff08;不能合批&#xff0c;那不是我们CPU要干冒烟~&#xff01;&#xff09; 好家伙&#xff0c;熊猫老师的偏方来了 &#x…...

微乐校园pf

TOC springboot451微乐校园pf 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。这…...

文件其他相关函数

symlink 链接文件: file.txt -> hello.c 软链接文件、符号链接文件 硬链接文件 命令行&#xff1a;ln -s 123 softlink 快捷方式 int symlink(const char *oldpath, const char *newpath); 功能: 创建一个链接向oldpath文件的新符号链接文件 参数: oldpath:被链接向…...

SQLALchemy ORM 的关联关系之 ORM 中的多对多

SQLALchemy ORM 的关联关系之 ORM 中的多对多 场景示例实现多对多关系定义模型插入和查询数据总结在 SQLAlchemy ORM 中,多对多(Many-to-Many)关联关系是一种常见的关系类型,它表示两个表中的行可以相互关联,即一个表中的多行可以与另一个表中的多行相关联。为了实现这种关…...

sdkman install慢,采用squid代理

(1)A机器,IP:yy.yy.yy.yy 安装squid yum install squidvi /etc/squid/squid.confacl allowed_ip src xx.xx.xx.xx http_access allow allowed_ip http_access deny allsystemctl restart squid 开放3128端口 (2)B机器&#xff0c;IP:xx.xx.xx.xx, export http_proxyhttp://y…...

实时监控Windows服务器:使用Prometheus和Grafana的终极方案

视频指南 【1】快速上手&#xff1a;在Windows系统上部署Prometheus与Grafana&#xff0c;实时监控性能指标 【2】快速上手&#xff1a;在Windows系统上部署Prometheus与Grafana&#xff0c;实时监控性能指标 1. 下载并安装 Prometheus 下载 Prometheus&#xff1a; 访问 Pro…...

【文科生能看懂的】牛顿二项式定理

牛顿二项式定理 简单的二项式整数次幂展开的结果中的规律结果中各项的指数结果中各项的系数 二项式定理 牛顿二项式定理就是用来求某个二项式的整数次幂的展开式的。 简单的二项式整数次幂 我们可以先从简单的情况开始&#xff0c;比如二项式 ( a b ) (ab) (ab)的整数次幂&a…...

Fly Catcher:通过监测恶意信号来检测飞机欺骗

Fly Catcher 的开发者 Angelina Tsuboi 是一名飞行员、网络安全研究员和发明家。 她决定着手一个将这三个不同兴趣结合起来的项目&#xff0c;以解决航空雷达系统的一个重大问题。 ADS-B 系统最初用于基本的飞机定位和跟踪&#xff0c;Tsuboi 对该系统的网络安全方面进行了深…...

计算机网络——HTTP协议详解(上)

一、HTTP协议简单介绍 1.1 什么是HTTP协议 HTTP&#xff08;超文本传输协议&#xff09;是一种用于在Web浏览器和Web服务器之间传输数据的应用层协议。它是一种无状态协议&#xff0c;即服务器不会保留与客户端的任何连接状态信息&#xff0c;每个请求都被视为一个独立的事务。…...

十九、中介者模式

文章目录 1 基本介绍2 案例2.1 Developer 抽象类2.2 FrontendDeveloper 类2.3 BackendDeveloper 类2.4 Mediator 接口2.5 ProjectManager 类2.6 Client 类2.7 Client 类的运行结果2.8 总结 3 各角色之间的关系3.1 角色3.1.1 Colleague ( 同事 )3.1.2 ConcreteColleague ( 具体的…...

编程参考 - 头文件中使用static inline

在Linux kernel的头文件中&#xff0c;经常使用static inline来声明一个函数。 比如include/linux/delay.h中&#xff0c; static inline void ssleep(unsigned int seconds) { msleep(seconds * 1000); } static Keyword * 范围限制&#xff1a; 当应用于函数或变量时&#…...

Uniapp使用antd组件库

组件库官网 https://www.antdv.com/docs/vue/introduce-cn 安装 在命令行终端输入 npm uni --save ant-design-vue配置 我这里用的是uniapp的vue3版本模板 在main.js里面引入 只要改下面带序号的地方即可 import App from ./App// #ifndef VUE3 import Vue from vue im…...

计算机毕业设计选题推荐-高校实验室管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

nest定义响应码message文本

需求 需要对接口的异常响应码&#xff0c;手动设置message文本&#xff01;&#xff01;&#xff01; 例如&#xff1a;项目中使用multer中间件实现文件上传&#xff0c;multer设置了文件大小限制&#xff0c;该中间件校验文件时错误&#xff08;文件超出&#xff09;会自动响…...

Java | Leetcode Java题解之第342题4的幂

题目: 题解&#xff1a; class Solution {public boolean isPowerOfFour(int n) {return n > 0 && (n & (n - 1)) 0 && n % 3 1;} }...

【日常开发】java中一个list对象集合 将字段a为 大豆 小麦 玉米等元素放在最前面 并组成新集合

&#x1f388;边走、边悟&#x1f388;迟早会好 在Java中实现这个功能&#xff0c;可以使用Stream来筛选出符合条件的元素&#xff0c;将它们放在新集合的前面&#xff0c;同时保留其他元素在新集合的后面。以下是如何实现的代码示例&#xff1a; 代码示例&#xff1a; impo…...

C++ 设计模式——原型模式

原型模式 原型模式主要组成部分原型模式的使用步骤原型模式的 UML 图原型模式 UML 图解析优点和缺点适用场景总结 原型模式 原型(Prototype)模式是一种创建型模式。原型模式通过(原型对象)克隆出对个一模一样的对象。实际上&#xff0c;该模式与其说是一种设计模式&#xff0c…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...