初体验完全托管型图数据库 Amazon Neptune

这篇具有很好参考价值的文章主要介绍了初体验完全托管型图数据库 Amazon Neptune。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 前言

嗨,大家好呀!最近我跟一个学摄影的高中朋友突然聊起天,发现摄影真的是一门我根本无法达到的艺术,我作为普通人,那只能说叫做拍照,哈哈。但给我更大的启发的是,这位朋友同时对星球星际也特别感兴趣,但正因为人类对宇宙的探索是十分有限的,我们即使通过高端的望远镜也只能领略到浩瀚宇宙的一角。有时候想到,宇宙中数十亿的星球聚集在一起,缩小到一定的比例,不就像一张由各个节点组成的网络吗?现实中我们的互联网、人体中的细胞、交际关系等,不都是这样吗?

这个时候我就联想到,那如果我们做开发的时候,对于这种“关系网络”,应该如何更加优雅地去存储呢?关系型数据库显然不够优雅,毕竟谁也不想通过数量庞大地关系表来表示错综复杂的数据,而且也不直观。

正因为如此,亚马逊推出了一款图数据库,用于解决这一问题。这就是大名鼎鼎的 Amazon Neptune。Neptune 译为海王星,可以说是非常的形象了。更为重要的是,Amazon Neptune 还支持免费试用,并且还提供了上手教程。只需要戳一下这里,就能开始使用了。
https://aws.amazon.com/cn/getting-started/databases/get-started/?nc=sn&loc=4&trk=fab55528-7c2e-4517-b90e-65b760ecfc1c&sc_channel=el

而且亚马逊这次提供的产品不仅仅只是 Neptune,亚马逊云科技提供了100余种产品免费套餐。其中,计算资源Amazon EC2首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量;数据库资源 Amazon RDS 首年12个月免费,750小时;Amazon Dynamo DB 25GB存储容量 永久免费。这边是入口:https://aws.amazon.com/cn/free/?nc2=h_ql_pr_ft&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all&trk=e0213267-9c8c-4534-bf9b-ecb1c06e4ac6&sc_channel=el

1. Amazon Neptune 是什么?

首先,我们来看亚马逊官方对 Amazon Neptune 给的英文定义:

Amazon Neptune is a fast, reliable, fully managed graph database service that makes it easy to build and run applications that work with highly connected datasets. The core of Neptune is a purpose-built, high-performance graph database engine. This engine is optimized for storing billions of relationships and querying the graph with milliseconds latency. Neptune supports the popular graph query languages Apache TinkerPop Gremlin, the W3C’s SPARQL, and Neo4j’s openCypher, enabling you to build queries that efficiently navigate highly connected datasets. Neptune powers graph use cases such as recommendation engines, fraud detection, knowledge graphs, drug discovery, and network security.

我们将其翻译为中文:

Amazon Neptune是一种快速、可靠、完全管理的图形数据库服务,可以轻松构建和运行与高度连接的数据集一起工作的应用程序。Neptune的核心是一个专门构建的高性能图形数据库引擎。此引擎针对存储数十亿个关系和查询延迟毫秒的图形进行了优化。Neptune支持流行的图形查询语言Apache TinkerPop、Gremlin、W3C的SPARQL和Neo4j的openCypher,使您能够构建高效导航高度连接数据集的查询。Neptune powers图表用例,如推荐引擎、欺诈检测、知识图表、药物发现和网络安全。

通过官方定义我们了解到:Amazon Neptune 是一款支持 Gremlin 等图形查询语言查询的图形数据库产品,并且对高数据量时性能问题进行了优化,适用于推荐引擎、欺诈检测、知识图表、药物发现和网络安全等领域。

说到数据库产品,大家首先想到的可能是大名鼎鼎的关系型数据库 MySQL 。那么同为数据库,两者之间有什么区别呢?举个通俗易懂的例子,学习过关系型数据库的小伙伴应该都知道,在关系型数据库中,想要实现 用户-权限-关系 这个功能点,我们除了要设计三张主表外,还需要额外设计两张关系表,并且要通过设计复杂的外键,编写复杂的 SQL 语句,才能达到实现我们的产品,并且还要牺牲一部分性能,而 Neptune 则非常善于处理这种关系复杂的案例。这正是 Neptune 的用武之处。

2. 案例复现 Neptune 的用武之处

在理解 Neptune 之前,我们先来看一下什么是图表数据库。
amazon neptune,Python文章杂谈,数据库,运维,云计算
上图我们可以获得信息: Justin 的朋友是 Anna,Anna 喜欢 books 和 Movies,而 Justin 只喜欢 Movies。而从上一节我们知道,图表数据库更善于存储和查询数据项与数据项之间的关系。而对于上图,我们更加印证了这一点,想想如果用关系型数据库去表示上面的这些关系,既复杂,又不直观。

上面的元素以及他们的关系,我们可以试图用更专业的词语去描述他们。比如:
对于每个数据项,我们把他们叫做 vertices,也就是顶点。
对于数据项之间的关系,我们把他们叫做 edges(边),每条边都有一种类型,并且由一个数据项指向另一个数据项。

3. Neptune 可以运用于哪些领域?

在我们现实世界中,存在着各种各样的关系,而当我们需要描述这些关系的时候,就可以使用图表数据库。

几种常见的领域:
知识图谱:在这个领域中,我们可以将知识定义为顶点,知识的从属可以定义为边。例如 编程语言 和 Java 可以定义为顶点,Java 属于 编程语言这层关系定义为边。
社交网络:将各种人物定义为顶点,把关系(朋友,老师,家长)定义为边。
行车路线:把两座城市定义为顶点,把路的名称定义为边。
物流:将货物的出发地和目的地定义为顶点,路线定义为边。

4. 如何查询 Neptune 图数据库?

在第一节中,我们讲到,官方推荐我们可以使用 Gremlin 或 SPARQL 等流行的图形查询语言对 Neptune 数据库进行查询,接下来我们来演示一下。
amazon neptune,Python文章杂谈,数据库,运维,云计算

对于上图的关系,我们如果想要查询 Howard 的朋友的朋友,那么怎么编写代码呢?
Gremlin 遍历查询,返回 Howard 的朋友的朋友:

g.V().has('name', 'Howard').out('friend').out('friend').values('name')
SPARQL 遍历查询,返回 Howard 的朋友的朋友:
prefix : <#>

  select ?names where {
    ?howard :name "Howard" .
    ?howard :friend/:friend/:name ?names .
  }

5. 使用 Neptune 图表笔记本

5.1 使用方式及对比

Neptune 图表笔记本,顾名思义就是用于编写代码的工具,用于管理 Neptune 图数据库。亚马逊提供了两种方式使用笔记本。一种是在 Neptune 工作台托管 Neptune 笔记本,一种是在本地计算机上设置图形笔记本。

对于使用笔记本的两种操作方式,主要的特点如下:
amazon neptune,Python文章杂谈,数据库,运维,云计算

通过综合对比之后发现,Neptune 工作台完全托管方式比本地安装更加方便,更加高效。

5.2 Neptune 工作台托管的使用方法

1、确保允许入站规则
2、登录 AWS 管理控制台
3、在左侧导航窗口,选择笔记本并创建笔记本
amazon neptune,Python文章杂谈,数据库,运维,云计算

4、选择一个自己的集群,如果你自己没有集群的话,需要选择创建集群创建一个。
5、创建好笔记本后选择打开笔记本即可。
amazon neptune,Python文章杂谈,数据库,运维,云计算

6. 实验环境搭建

6.1 实验环境搭建

步骤一:登录到 AWS console,选择 cloudshell
1、先进入亚马逊官网,找到 AWS 管理控制台
amazon neptune,Python文章杂谈,数据库,运维,云计算

2、搜索 cloudshell 服务并进入
amazon neptune,Python文章杂谈,数据库,运维,云计算

将会来到一个控制台页面
amazon neptune,Python文章杂谈,数据库,运维,云计算

步骤二:创建 S3 存储桶,取个不常见的名字,需要记住创建的名字,后面都会用到,在这个地方我将我的存储桶的名字命名为 myawsjackui,你可以任意的取一个名字。创建存储桶的命令如下:aws s3api create-bucket --bucket 自己取个复杂点的名字 --region us-east-1

你也可以使用手动的方式创建存储桶,方法如下:
amazon neptune,Python文章杂谈,数据库,运维,云计算
amazon neptune,Python文章杂谈,数据库,运维,云计算

步骤三:创建 cloudformation
创建 cloudformation 命令如下:aws s3api create-bucket --bucket jack_for_test_one --region us-east-1

创建完成后,控制台没有报错信息,此时你需要等待大约 30 分钟才能进行下一步。
30 分钟过后,搜索 cloudformation ,找到对应的服务并打开
amazon neptune,Python文章杂谈,数据库,运维,云计算
amazon neptune,Python文章杂谈,数据库,运维,云计算
amazon neptune,Python文章杂谈,数据库,运维,云计算
amazon neptune,Python文章杂谈,数据库,运维,云计算

6.2 实验具体步骤(一)

步骤一:创建笔记本
搜索 neptune ,打开对应的服务,找到笔记本选项,会发现目录下有一个名为 aws-neptune-get-test的笔记本,打开该笔记本。
amazon neptune,Python文章杂谈,数据库,运维,云计算

amazon neptune,Python文章杂谈,数据库,运维,云计算
amazon neptune,Python文章杂谈,数据库,运维,云计算
amazon neptune,Python文章杂谈,数据库,运维,云计算
amazon neptune,Python文章杂谈,数据库,运维,云计算

步骤二:具体实验步骤
1、运行 Neptune ML

amazon neptune,Python文章杂谈,数据库,运维,云计算

2、配置自己的存储桶及获取资源
amazon neptune,Python文章杂谈,数据库,运维,云计算

amazon neptune,Python文章杂谈,数据库,运维,云计算

amazon neptune,Python文章杂谈,数据库,运维,云计算

amazon neptune,Python文章杂谈,数据库,运维,云计算

3、创建相关端点,等待约 5 - 10 分钟
amazon neptune,Python文章杂谈,数据库,运维,云计算

4、节点回归
amazon neptune,Python文章杂谈,数据库,运维,云计算

5、关联预测
amazon neptune,Python文章杂谈,数据库,运维,云计算

6.3 实验具体步骤(二)

1、项目运行流程图:
amazon neptune,Python文章杂谈,数据库,运维,云计算

2、数据集包含电影、用户,以及用户对这些电影的评分信息,大致关系如下:
amazon neptune,Python文章杂谈,数据库,运维,云计算

3、同样是准备好运行 Neptune ML
amazon neptune,Python文章杂谈,数据库,运维,云计算

4、加载数据
amazon neptune,Python文章杂谈,数据库,运维,云计算

5、此时必须确认数据已经成功过加载
amazon neptune,Python文章杂谈,数据库,运维,云计算

6、包括边缘数据
amazon neptune,Python文章杂谈,数据库,运维,云计算

7、导出数据
完成数据验证操作后,我们首先需要移除一些 rated 顶点,以便构建可以预测这些缺失连接的模型。
amazon neptune,Python文章杂谈,数据库,运维,云计算

8、接下来我们需要除去这些边缘来模拟真实缺失的边缘
amazon neptune,Python文章杂谈,数据库,运维,云计算

9、再一次检查数据,发现边缘已经去除
amazon neptune,Python文章杂谈,数据库,运维,云计算

10、导出对应的数据
amazon neptune,Python文章杂谈,数据库,运维,云计算

11、接下来要对数据进行处理、模拟训练和端点创建
amazon neptune,Python文章杂谈,数据库,运维,云计算

amazon neptune,Python文章杂谈,数据库,运维,云计算

12、预测用户可能对哪些电影进行评论
amazon neptune,Python文章杂谈,数据库,运维,云计算

13、最后需要对数据进行清理
amazon neptune,Python文章杂谈,数据库,运维,云计算

7. 使用总结

Neptune 这款产品对我来说是眼前一亮的感觉,上手体验感非常优雅,支持常见的开放图谱 API,在安全方面方面也是提供了多级保护,并且完全托管的概念让开发者不在过多的关注如何管理数据库任务等等。
amazon neptune,Python文章杂谈,数据库,运维,云计算

总而言之,在关系型数据库仍然占据主流的今天,很多领域,特别是大数据相关领域,对数据的查询效率要求非常高,需要更小更低的延迟,这种时候,传统的数据库从设计之初的角度就已经不够使用。你完全可以尝试使用一款全新的图数据库来更优雅地存储各种错综复杂地关系。文章来源地址https://www.toymoban.com/news/detail-795122.html

到了这里,关于初体验完全托管型图数据库 Amazon Neptune的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 在 Amazon 上以高可用性模式实现 Microsoft SQL 数据库服务现代化的注意事项

    在 Amazon 上以高可用性模式实现 Microsoft SQL 数据库服务现代化的注意事项

    许多企业都有需要 Microsoft SQL Server 来运行关系数据库工作负载的应用程序:一些应用程序可能是专有软件,供应商可使用它强制 Microsoft SQL Server 运行数据库服务;其他应用程序可能是长期存在的、自主开发的应用程序,它们在最初开发时便已包含 Microsoft SQL Server。当企业将

    2024年02月16日
    浏览(9)
  • MySQL 数据库初体验

    MySQL 数据库初体验

    描述事物的符号记录 包括数字、文字、图形、图像、声音、档案记录等 以 “记录” 形式按统一的格式进行存储 将不同的记录组织在一起 用来存储具体数据 表的集合,是存储数据的仓库 以一定的组织方式存储的相互有关的数据集合 是按照数据结构来组织、存储和管理数据

    2024年02月09日
    浏览(14)
  • Mysql数据库初体验

    Mysql数据库初体验

    1.数据库的组成 (1)数据(Data) 描述事物的符号记录 包括数字,文字、图形、图像、声音、档案记录等 以\\\"记录\\\"形式按统一的格式进行存储 (2)表 将不同的记录组织在一起 用来存储具体数据 (3)数据库 表的集合,是存储数据的仓库 以一定的组织方式存储的相互有关的数据集合

    2024年02月09日
    浏览(4)
  • Hbase数据库完全分布式搭建以及java中操作Hbase

    Hbase数据库完全分布式搭建以及java中操作Hbase

    基础的环境准备不在赘述,包括jdk安装,防火墙关闭,网络配置,环境变量的配置,各个节点之间进行免密等操作等。使用的版本2.0.5. 参考官方文档 分布式的部署,都是在单节点服务的基础配置好配置,直接分发到其他节点即可。 jdk路径的配置,以及不适用内部自带的zk. 配

    2024年02月03日
    浏览(15)
  • 分布式数据库Apache Doris简易体验

    📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜😜😜 中国DBA联盟(ACDU)成员,目前服务于工业互联网 擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优

    2024年02月06日
    浏览(18)
  • PLSQL Developer 配置Oracle主目录和OCI库 & 连接登录Oracle数据库(完全指南)

    PLSQL Developer 配置Oracle主目录和OCI库 & 连接登录Oracle数据库(完全指南)

    温馨提示: 一、如果你在机器上装了oracle数据库服务器,就不需要在单独在该机器上安装oracle客户端了,因为装oracle数据库的时候会自动安装oracle客户端。 二、如果想用本地的计算机访问或连接远程的oracle数据库,那么就必须在本地的计算机上安装oracle客户端软件。在安装

    2024年02月10日
    浏览(30)
  • 「OceanBase 4.1 体验」OceanBase:解读领先的分布式数据库系统,功能与体验全解析

    「OceanBase 4.1 体验」OceanBase:解读领先的分布式数据库系统,功能与体验全解析

    本文旨在介绍 OceanBase 4.1 版本的特点、更新内容和初体验,帮助读者了解和掌握这个开源分布式关系型数据库管理系统。如果你对大规模数据存储和处理的挑战感兴趣,或者正在寻找一种满足互联网领域高并发、高可靠性和高扩展性要求的数据库解决方案,本文将为你提供有

    2024年02月05日
    浏览(10)
  • 数据库ChatGPT插件来了,SQL使用体验进一步起飞

    数据库ChatGPT插件来了,SQL使用体验进一步起飞

    基于 ChatGPT API 和 OpenMLDB 数据库实现的 openmldb-chatgpt-plugin 项目开源了,作为人类迄今为止最强AI模型之一(GPT4未开放API),集成了 ChatGPT 模型的数据库有多好用,下面将带大家体验一下。 实现原理是在ChatGPT API基础上做了一定的 Prompt engineering ,没有用 fine tune ,在标准SQL场景

    2023年04月16日
    浏览(9)
  • 【腾讯云TDSQL-C Serverless 产品体验】新时代数据库大杀器

    【腾讯云TDSQL-C Serverless 产品体验】新时代数据库大杀器

    近年来,随着互联网行业的高速发展,关系型数据库也面临着前所未有的挑战。云原生数据库成为解决这些挑战的重要方案之一。腾讯云推出的 TDSQL-C Serverless 版正是云原生数据库领域的佼佼者之一。 我在CSDN “学习” 的过程中发现腾讯云联合CSDN推出了 “腾讯云TDSQL-C产品测

    2024年02月07日
    浏览(28)
  • 【腾讯云 TDSQL-C Serverless 产品体验】饮水机式使用云数据库

    【腾讯云 TDSQL-C Serverless 产品体验】饮水机式使用云数据库

    云计算的发展从IaaS,PaaS,SaaS,到最新的BaaS,FasS,在这个趋势中serverless(去服务器化) 计算资源发展Physical - Virtualisation - Cloud Compute - Container - Serverless。 TDSQL-C 是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势,100%兼容 MySQL,为用

    2024年02月07日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包