免费网站app哪个最好,外贸网址,电商系统平台开发的主要技术,项目外包app文章目录 福利来袭Amazon Neptune什么是图数据库为什么要使用图数据库什么是Amazon NeptuneNeptune 的特点 快速入门环境搭建notebook 图神经网络快速构建加载数据配置端点Gremlin 查询清理 删除环境S3 存储桶删除 授权声明#xff1a;本篇文章授权活动官方亚马逊云科技文章转… 文章目录 福利来袭Amazon Neptune什么是图数据库为什么要使用图数据库什么是Amazon NeptuneNeptune 的特点 快速入门环境搭建notebook 图神经网络快速构建加载数据配置端点Gremlin 查询清理 删除环境S3 存储桶删除 授权声明本篇文章授权活动官方亚马逊云科技文章转发、改写权包括不限于在 Developer Centre, 知乎自媒体平台第三方开发者媒体等亚马逊云科技官方渠道 福利来袭
前几天有小伙伴在群里灵魂发问双11到来之际阿里云、华为云、腾讯云哪家云服务的价格优惠力度最大看到这个问题群友各抒己见展开了激烈的讨论最终得出结论三家国内云服务厂商提供的产品差异不大价格优惠也不相上下。 看到这里我将目光默默的转向了国外的云服务厂商亚马逊云AWS。大家作为 IT 人应该都知道亚马逊云在全球云市场中的地位举足轻重。据2021年全球云计算IaaS市场报告显示亚马逊云市场份额高达38.9%而国内最牛的阿里云也仅占9.5%。
来到亚马逊云的官网我发现亚马逊云科技提供了100余种产品免费套餐。其中计算资源Amazon EC2首年12个月免费750小时/月存储资源 Amazon S3 首年12个月免费5GB标准存储容量数据库资源 Amazon RDS 首年12个月免费750小时Amazon Dynamo DB 25GB存储容量 永久免费。 至于 活动地址 嘛双手奉上赶快来白嫖呀同时给大家奉上数据库免费试用链接及上手教程 在AWS帐号注册过程中值得注意的一点填写信用卡或者借记卡卡号时虽然网址中标记的是VISA或者mastercard其实普通的信用卡也是可以的。 当然除了价格优势之外亚马逊云科技的优势还体现在以下方面
亚马逊云科技负责云自身的安全合规不仅保证底层云基础设施和云服务的安全和合规还提供了超过280多项安全、合规和治理方面的服务与工具。亚马逊云科技有着覆盖全球的基础设施。亚马逊云科技拥有超过200大类的云服务从广度和深度上都能满足数字化出海和出海数字化的技术需求。亚马逊云科技与全球超过10万家合作伙伴一起为出海企业提供从咨询、迁移到解决方案构建、到云上交付和运维的完整服务。在全球亚马逊是多个领域的引领者包括亚马逊电商、智能物流、智能语音助手、智慧零售以及设备等多个领域。
Amazon Neptune
在了解Amazon Neptune之前我们先来了解一下“图数据库”的概念。
什么是图数据库 如上图所示将结点的人物和箭头表示的关系构成的图进行存储和查询的数据库就被称为图数据库。图数据库强调数据之间的关联关系它将数据间的联系视为和数据本身同等重要。
为什么要使用图数据库
在互联网飞速发展的今天传统的关系型数据库在处理关系操作方面表现出疲软的态势而图数据库通过存储数据与关系能将访问数据结点和关系的操作提升至线性时间复杂度甚至能在一秒内遍历百万级的关系边性能显著。
我们可以利用图数据库以多种方式表示现实世界实体之间的相互关系包括行为、所有权、亲属关系、购买选择、个人联系、家庭关系等。以下是截止2021年8月DB-ENGINES中图数据库前二十位的排行榜名单我们可以看到Amazon的Neptune排在第八位。接下来就让我们来了解下Amazon Neptune。 什么是Amazon Neptune
Amazon Neptune是一项快速、可靠且完全托管式的图数据库服务可用来帮助我们轻松构建和运行适用于高度互连数据集的应用程序。Neptune的核心是一个专门打造的高性能图形数据库引擎此引擎经过优化可存储数十亿条关系并以数毫秒级延迟查询图形。
Neptune 的特点
Neptune 支持流行的图表查询语言 Apache TinkerPop W3C SPARQL Grimlin 和 Neo4J 的 OpenPher可让我们构建查询高效地浏览高度互连数据集。Neptune具有高度可用性带有只读副本 point-in-time Amazon S3 的持续备份以及跨可用区的复制。Neptune 提供了数据安全功能并支持加密静态数据和传输中的数据。Neptune 是完全托管的因此再也无需担心数据库管理任务例如硬件预配置、软件修补、设置、配置或备份。
光说不练假把式接下来就让我们操练起来吧
快速入门
环境搭建
首先我们需要登录到AWS的控制台 在控制台顶上搜索cloudshell 打开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执行完命令后大约需要等待30分钟此时后台会启动一系列的服务。 我们可以通过在控制台顶上搜索cloudformation来查看堆栈是否创建完成如果get-started-neptune-ml显示 CREATE_COMPLETE表示服务创建完成。 notebook
在搜索栏输入neptune点击进入导航栏选择“笔记本”点击右侧的“查看笔记本文档”。 倘若没有 notebook需确定地区是否选择正确默认为美国东部其次确认后台服务是否都启动完成。 图神经网络快速构建
我们可以根据上方打开的“ Amazon Neptune ML ”笔记来进行操作。在控制台输入命令来检查集群是否已正确配置可以运行 Neptune ML。 开始试验之前先来张步骤图感受下 加载数据
我们使用 Bulk Loader来加载数据其流程与将数据摄入Amazon Neptune完全相同。通过编写脚本可以实现自动执行从MovieLens网站下载数据调整数据格式并将数据载入Neptune的全过程。脚本如下
s3_bucket_uris3://cheetah-qing
# remove trailing slashes
s3_bucket_uri s3_bucket_uri[:-1] if s3_bucket_uri.endswith(/) else s3_bucket_uricheetah-qing为我们刚才创建的桶名称 执行response neptune_ml.prepare_movielens_data(s3_bucket_uri)命令即可下载 MovieLens 数据并将其调整为可被 Neptune 的 Bulk Loader 兼容的格式。
执行结果为
Completed Processing, data is ready for loading using the s3 url below:
s3://cheetah-qing/neptune-formatted/movielens-100k操作完成后执行%load -s {response} -f csv -p OVERSUBSCRIBE --run加载数据。 配置端点
执行命令来创建端点并获取到推理端点的端点名称。
setup_node_classificationTrue
setup_node_regressionTrue
setup_link_predictionTrue
setup_edge_classificationTrue
setup_edge_regressionTrueendpointsneptune_ml.setup_pretrained_endpoints(s3_bucket_uri, setup_node_classification, setup_node_regression, setup_link_prediction, setup_edge_classification, setup_edge_regression)node_classification_endpointendpoints[node_classification_endpoint_name][EndpointName]
node_regression_endpointendpoints[node_regression_endpoint_name][EndpointName]
link_prediction_endpointendpoints[prediction_endpoint_name][EndpointName]
edge_classification_endpointendpoints[edge_classification_endpoint_name][EndpointName]
edge_regression_endpointendpoints[edge_regression_endpoint_name][EndpointName]Gremlin 查询
现在终于到了我们的电影类型预测环节了我们一起来看看如何使用这些端点借助 Gremlin 查询进行推断。
在预测电影类型前我们先执行 来验证图谱中Forrest Gump 这个 movie 的 genre不包含任何 genre 值。
接下来我们修改这个查询来预测 Apollo 13 的类型开始之前先来设置一下
指定要在 Gremlin 查询中使用的推理端点g.with(Neptune#ml.endpoint,INSERT ENDPOINT NAME)指定我们想要获取该属性的预测值with(Neptune#ml.classification)
将这些内容结合在一起就可以得到下方的查询该查询可通过我们的产品知识图谱预测电影 Forrest Gump 的 genre。执行命令
%%gremlin
g.with(Neptune#ml.endpoint,${node_classification_endpoint}).V().has(title, Forrest Gump (1994)).properties(genre).with(Neptune#ml.classification).value()查看结果可知预测结果似乎是正确的Forrest 似乎被正确预测为 Drama 类型。
很多情况下我们可能需要预测一个节点的多个类别。例如在我们的产品知识图谱中一部电影很可能被归类为多个类型我们可能需要预测所有这些类型。默认情况下Neptune ML 会返回排名第一的结果但我们可以使用 .with(Neptune#ml.limit,3) 配置选项指定希望返回的结果数量。一起看看针对Forrest Gump 返回的排名前三的结果吧。 Neptune ML 返回的每个值都有一个与之关联的置信度分数而无论预测结果的置信度如何上述查询都会返回排名前三的结果。虽然该分数在查询时不可用但它可用于筛选掉置信度较低的预测。
假设我们想要返回Forrest Gump预测的排名前三的类型但前提是这些结果必须满足特定的置信度要求。为此可以使用.with(Neptune#ml.threshold,0.2D)选项为查询添加筛选器如下所示。 如上所示目前我们只得到了 Drama 这个预测类型因为这是唯一高于阈值的预测结果。
清理
我们已经使用Amazon Neptune来完成了预测电影类型的初体验我们之前创建的 SageMaker 端点依然在运行并会按照标准费率产生费用。如果已完成 Neptune ML 的试用工作希望避免产生这种重复性的成本那么可以运行neptune_ml.delete_pretrained_endpoints(endpoints)来删除所创建的推断端点。
除了推断端点的成本外我们之前使用的CloudFormation脚本也创建了多个额外资源。如果我们的全部操作均已完成那么我们得删除 CloudFormation 栈以避免产生重复的费用。
删除环境
为了防止之后的额外扣费必须进行下面的删除环境操作 S3 存储桶删除
选择 cloudshell执行aws s3 rb s3://cheetah-qing --force删除 S3 存储桶 至此我们的使用Amazon Neptune来完成预测电影类型的初体验就已经完成了现在我们来总结一下它的优势
Amazon Neptune 支持 Gremlin 和 SPARQL 的开放图谱 API并为这些图形模型及其查询语言提供高性能。Neptune 可在三个可用区内支持最多 15 个低延迟读取副本从而扩展读取容量并每秒执行超过 10 万个图形查询。Neptune 旨在提供超过 99.99% 的可用性。其存储系统具有容错能力并能自我修复专为云而构建可以跨三个可用区复制六个数据副本。Amazon Neptune 为您的数据库提供多级安全保护包括使用 Amazon VPC 进行网络隔离、支持终端节点访问的 IAM 身份验证、HTTPS 加密的客户端连接、使用您通过 AWS Key Management Service (KMS) 创建和控制的密钥对静态数据进行加密。Neptune 会自动持续地监控您的数据库并将其备份到 Amazon S3.因此可实现精细的时间点恢复。
如果有问题或者有更好的体验方式欢迎留言或私信阿Q呦我们一起进步