DynamoDB解释–第1部分

DynamoDB最近有点流行,因此在关系和文档数据库上工作了多年之后,我决定尝试一下。 在使用DynamoDb之前,我对它所做的许多假设都被证明是错误的,因此,我希望这一系列博客文章将帮助您确定DynamoDB是否适合您的下一个项目。

在本系列文章中,我们将深入研究DynamoDB并发现其一些怪癖,这些怪癖可能与其他数据库有所不同。 在第一篇文章中,我们将讨论什么是DynamoDB及其如何使用主键。

在下一篇文章中,我们将研究从其他数据库进入DynamoDB的人们中最令人困惑的方面之一-数据检索-两者的工作原理有所不同。 我们将看到,在索引的帮助下,我们可以实现最常见的用例。

本系列的第三个也是最后一部分将集中在可用性和可伸缩性上,这是DynamoDB的两个主要优点,因为AWS为我们处理了它们。

在开始之前,我们先看看DynamoDB在数据库类别中的位置。

DynamoDB

什么是DynamoDB?

DynamoDB是NoSQL,高可用性,低延迟,可扩展的数据库,同时支持键值和文档存储数据模型。 它遵循无服务器方法,这意味着它是作为服务提供的,因此基础架构完全由AWS进行管理,无需任何配置即可直接使用。 这使用户无需管理实例,应用安全补丁和其他与基础架构相关的任务。 此外,定价可以非常合理,因为它遵循按使用付费的模式,而不是对预先设置的计算资源收费。

与大多数关系数据库以及一些NoSQL数据库(例如MongoDB)不同,DynamoDB缺少实例的概念。 这意味着用户直接在表上工作。 此外,表是无模式的,这意味着不需要存储在表中的对象具有相同的属性,从而为用户提供了更大的灵活性。

DynamoDB在为大型工作负载提供高性能时表现出色,因为它可以独立处理读取和写入吞吐量。 因此,它适用于分析操作,但对于简单的CRUD应用程序,它仍然可以作为一种便宜,快速,低配置的解决方案。

为了易于使用,AWS为浏览器和IoT设备提供了多种语言的SDK,包括Java,.NET,Node.js,PHP,Python,Ruby,Go,C ++和JavaScript。 除此之外,还可以使用JSON over HTTP发出请求。

什么啊

尽管它能够处理文档,但是不要认为DynamoDB是MongoDB的同类替代品。 它是围绕键值数据存储模型构建的,因此它与Redis或Memcached有更多相似之处。

关键区别在于,默认情况下,不是有效地查询文档的所有属性,只有属于主键或索引的那些属性才能被有效查询。 这是因为它的高性能来自于通过其键来搜索特定元素,而不是根据其他属性进行过滤。 而且,DynamoDB不支持查询嵌入式数据结构,也不提供全文搜索或其他功能,例如MapReduce或日期函数。

DynamoDB主键方法

与许多数据库一样,DynamoDB要求您定义一个主键,该主键唯一地标识表中的元素。 DynamoDB使用的主键与其他一些数据库略有不同,因为该键直接影响数据的物理存储方式,这对其数据的性能至关重要,这将在本系列的第二部分中进行说明。 类似于关系数据库,主键可以是简单键或复合键,后者是两个属性的组合。

DynamoDB使用它自己的密钥命名约定。 简单键称为分区键,使用复合键时,第一部分称为分区键(并充当分区键),第二部分为排序键。

DynamoDB将在SSD磁盘上为每个分区键创建一个物理分区。 检索数据时,此值将用作哈希函数的输入,哈希函数的结果确定数据存储在哪个分区中。

当使用复合主键时,第二部分称为排序键。 这意味着项目将一起存储在同一分区中,并按排序键排序。

因此,使用组合键时,最好选择高基数的分区键,以便物理分区尽可能小,从而在查询数据时提供最大的效率。

例如,查看寻找Jimi时它是如何工作的:

DynamoDB

当我们将讨论数据检索和索引时,请收看本系列的第二篇文章。 如果同时要尝试一下,请查看我的同事Andre Torres撰写的DynamoDB SDK简介及其SDK帖子,以获取Kotlin中DynamoDB SDK的动手入门。

翻译自: https://www.javacodegeeks.com/2019/03/dynamodb-explained-part-1.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值