数据库服务 Amozon DynamoDB(入门分享)

数据库
0
0
{"value":"\n### **一、文章序言**\n#### **1.1 Dynamo 的诞生**\n亚马逊网络服务(Amazon)是全球流行的云服务提供者。它为企业提供完全管理的系统,以满足其数据库需求。DynamoDB 是由 Amazon 提供的一项服务,支持键值和文件结构。\n\n亚马逊在业务发展期间面临一些问题,主要受限于关系型数据库的可扩展性和高可用性,希望研发一套新的、基```KV```存储模型的数据库,将之命名为```Dynamo```\n\n相较于传统的关系型数据库 ```MySQL```,```Dynamo``` 的功能目标与之有一些细小的差别,例如 ```Amazon``` 的业务场景多数情况并不需要支持复杂查询,却要求必要的单节点故障容错性、数据最终一致性(即牺牲数据强一致优先保障可用性)、较强的可扩展性等。**[活动地址](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)**\n\n#### **1.2 Dynamo的简述**\nAmazon DynamoDB 是一种完全托管的 NoSQL 数据库服务,可提供快速且可预测的性能以及无缝的可扩展性。DynamoDB 让您可以减轻操作和扩展分布式数据库的管理负担,这样您就不必担心硬件配置、设置和配置、复制、软件修补或集群扩展。DynamoDB 还提供静态加密,从而消除了保护敏感数据所涉及的操作负担和复杂性。\n\n亚马逊 DynamoDB 是一个文档和键值数据库,为其用户提供个位数毫秒的性能。\n\n它是一个完全管理的、多活动的、多区域的、持久的数据库,为互联网规模的应用提供了内置的安全、内存缓存、备份和恢复。它可以处理每秒2000万个请求,每天多达10万亿个请求。\n\n#### **1.3 Dynamo 和 MySQL** \n```Dynamo``` 叙述的是一种 ```NoSQL``` 数据库的设计思想和实现方案,它是一个由多节点实例组成的集群,其中一个节点称之为 ```Instance```(或者 ```Node``` 其实无所谓),这个节点由三个模块组成,分别是请求协调器、```Gossip``` 协议检测、本地持久化引擎,其中最后一个持久化引擎被设计为**可插拔**的形式,可以支持不同的存储介质,例如 ```BDB```、```MySQL``` 等。\n\n#### **1.4 DynamoDB 组件**\n在 DynamoDB中,表、项目和属性是您使用的核心组件。表是项目的集合,而每个项目是属性的集合。DynamoDB 使用主键来唯一标识表中的每个项目,并且使用二级索引来提供更大的查询灵活性。您可以使用 DynamoDB流捕获DynamoDB 表中的数据修改事件。\n- **表**: 与其他数据库系统类似,DynamoDB 将数据存储在表中。表是数据的集合。\n- **项目**:每个表包含零个或多个项目。项目是一组在所有其他项目中唯一可识别的属性。在 DynamoDB 中,您可以在表中存储的项目数量没有限制。\n- **属性**:每个项目都由一个或多个属性组成。属性是基本数据元素,不需要进一步分解。DynamoDB 中的属性在许多方面与其他数据库系统中的字段或列相似。\n有关更多信息,请参阅使用 [DynamoDB 中的表和数据](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html)。\n\n### **二、入门案例**\n#### **2.1 账号注册**\n亚马逊作为国际官方网站功能性和流程的引导都做的十分完善,注册成功即可登录。[免费试用地址](https://aws.amazon.com/cn/getting-started/databases/get-started/?nc=sn&loc=4&trk=fab55528-7c2e-4517-b90e-65b760ecfc1c&sc_channel=el) \n\n![image.png](https://dev-media.amazoncloud.cn/4afbb210afd740a4b217bfe68e3b2bfc_image.png)\n\n我们根据指导注册后也会有对应的邮箱和手机收到验证消息,如果过程有疑问可以联系客服即可\n\n![image.png](https://dev-media.amazoncloud.cn/ea78111808f14e49a3e45484cf8ecd6a_image.png)\n\n#### **2.2 创建数据表**\n要使用 Amozon DynamoDB 就去全局搜索,点击 Dynamodb 即出来对应的应用服务。当然如果基础比较薄弱的小伙伴可以参考 [DynamoDB 使用教程](https://aws.amazon.com/cn/getting-started/hands-on/create-nosql-table/)\n\n![image.png](https://dev-media.amazoncloud.cn/ad5e2ef417714ab0b3360e47c04666ba_image.png)\n\n进入页面点击创建表即可,我们只需要定义**表名称**和**主键**即可,**排序键可有可无**\n\n![image.png](https://dev-media.amazoncloud.cn/86ff32afd3484619a9698a9aa5a6d418_image.png)\n\n创建成功即可到首页 看到对应的表\n\n![image.png](https://dev-media.amazoncloud.cn/0820ec2c82e54333b456e61eff856747_image.png)\n\n#### **2.3 创建数据**\n点击新建项目及创建我们对应的数据文件\n\n![image.png](https://dev-media.amazoncloud.cn/61819178fa944176bbca80225cc29133_image.png)\n\n如下我们在此表中创建了两个数据\n\n![image.png](https://dev-media.amazoncloud.cn/228530ca69df436da8661eb1ea5b89e1_image.png)\n\n#### **2.4 两种查询**\n查询有两种方式,一种是 scan ,一种是 query;如果使用过非关系型数据库,就可以发现其查询逻辑都是相似的。非关系型数据库表与表之间是没关联的。每个表的数据可以根据属性,类型,条件等查询。\n\n![image.png](https://dev-media.amazoncloud.cn/aaf53df950344527aa016163f0e1b5f8_image.png)\n\n案例演示:执行扫描 scan 查询\n\n![image.png](https://dev-media.amazoncloud.cn/aafba2b5a07b4e72bd37f84bf6ecd26f_image.png)\n\n执行查询 query 进行数据查询(此模式要带分区键-必填项)\n\n![image.png](https://dev-media.amazoncloud.cn/214abae591724b41bc758c99c28cfb3d_image.png)\n\n#### **2.5 数据导出**\nAmozon DynamoDB 此服务做的非常人性化,考虑到很多时候数据量很多,所以支持导出功能可以直接导出查询数据文件\n\n![image.png](https://dev-media.amazoncloud.cn/cfbf927c372243d88650732f9df33b00_image.png)\n\n导出后左下侧即可看到对应导出文档\n![image.png](https://dev-media.amazoncloud.cn/d391445b9f974340a784770692cedab2_image.png)\n\n#### **2.6 功能多样**\n点击具体的表可以看到有索引,监控,全局表,备份,导出和流,其他设置等等辅助功能\n\n![image.png](https://dev-media.amazoncloud.cn/11b2c251608e4472969c3d7000cdebd8_image.png)\n\n多样的功能让此我们可以更好的了解此非关系型数据库对应的功能,如监控功能,我演示的时候数据量较少,真实案例场景数据量庞大,更好的可以查看此数据库的性能。\n![image.png](https://dev-media.amazoncloud.cn/ae3d3420843a4111ad65f207ea4423ce_image.png)\n\n其余的功能大家在点击进入的时候会有对应的案例解释,感兴趣的可以点击[官方文档](https://aws.amazon.com/cn/getting-started/databases/get-started/?nc=sn&loc=4&trk=fab55528-7c2e-4517-b90e-65b760ecfc1c&sc_channel=el)尝试!\n\n### **三、功能简述**\n#### **3.1 结构讲解**\nDynamoDB 是一个文档或 NoSQL 数据库。虽然它可以用于存储二进制对象,但它是为存储结构化文本/JSON数据而设计的。它可以存储大小为400KB 的单个项目。这些项目被存储在表里,这些表可以位于一个特定的区域,也可以复制到全球。全局表支持多主机复制,允许客户从多个区域写进同一个项目或表。\n\n#### **3.2 操作方式**\nDynamoDB 在结构化文档上工作,因此,它最小的操作原子是一个项目里面的属性。你也可以在 DynamoDB 中存储二进制非结构化信息,但这并不是它的核心用例。多个用户可以同时修改一个结构化文档的属性,或者追加到同一个数组。DynamoDB 可以处理条件更新和批量操作,甚至是许多项目的原子交易。\n\n#### **3.3 优化方向**\nDynamoDB 的一些限制包括。\n- 监控不力会导致高成本。\n- 它只适用于键值操作。它不能很好地用于关系型操作。\n\n当然每个数据库都有自己的局限性,不过更重要的是发挥其优点!\n感兴趣的可以了解[**云原生数据库在线大会**](https://www.awsevents.cn/CloudNative/listDetails.html?trk=1227489f-bfd0-430a-85df-750d92bb9d11&sc_channel=el)!\n\n#### **3.4 数据分片**\n```Dynamo``` 设计之初就考虑到要支持增量扩展,因为节点的增减必须具备很好的可扩展性,尽可能降低期间的数据流动,从而减轻集群的性能抖动。```Dynamo``` 选择采用一致性哈希算法来处理节点的增删,一致性哈希的算法原理细节这里不再赘述,只是提一下为什么一致性哈希能解决传统哈希的问题。\n我们想象一下传统哈希算法的局限是什么,一旦我给定了节点总数 ```h```,那数据划分到哪个节点就固定了(```x mod h```),此时我一旦增减 ```h``` 的大小,那么全部数据的映射关系都要发生改变,解决办法只能是进行数据迁移,但是一致性哈希可以在一个圆环上优先划分好每个节点负责的数据区域。这样每次增删节点,影响的范围就被局限在一小部分数据。\n\n如图蓝色小圆 ABCD 的代表四个实际节点,橙色的小圆代表数据,他们顺时针落在第一个碰到的节点上\n\n![image.png](https://dev-media.amazoncloud.cn/8474ac18021e4490b65497bfff1c20c8_image.png)\n\n### **四、安利分享**\n#### **4.1 优点小结**\n\n结尾总结一下 Amazon DynamoDB 优点:\n- **完全托管**:DynamoDB 是一项完全托管的非关联型资料库服务,只需创建资料库表并设置自动扩容 (Auto Scaling) 的目标使用率,其余事情都可交由该服务来代劳。\n- **精细的访问控制**:DynamoDB 与 Amazon Identity and Access Management (IAM) 集成,对组织内的用户实现精细的访问控制。\n- **性能快速稳定**:服务端平均延迟通常不超过个位数毫秒 (ms)。\n- **灵活**: DynamoDB 支持存储、查询和更新文档。使用 Amazon 开发工具包 (SDK),可以编写将 JavaScript 对象表示法 (JSON) 文档直接储存到 Amazon DynamoDB 表中的应用程序。此功能减少了为插入、更新和检索 JSON 文档必须编写的新代码量。\n\n![image.png](https://dev-media.amazoncloud.cn/fefbf96b638241f180ca7f5d57565a72_image.png)\n\n#### **4.2 学习分享**\n针对初学者而言,亚马逊官方有非常详细的**视频/文档**教学,感兴趣的程序员们,大家一起内卷起来\n1. 入门资源中心:从0到1 轻松上手云服务,内容涵盖:成本管理,上手训练,开发资源:[**点我访问**](https://aws.amazon.com/cn/getting-started/?nc1=h_ls&trk=32540c74-46f0-46dc-940d-621a1efeedd0&sc_channel=el)\n2. 架构中心:亚马逊云科技架构中心提供了云平台参考架构图表、经过审查的架构解决方案、Well-Architected 最佳实践、模式、图标等:[**点我访问**](https://aws.amazon.com/cn/architecture/?intClick=dev-center-2021_main&trk=3fa608de-d954-4355-a20a-324daa58bbeb&sc_channel=el&cards-all.sort-by=item.additionalFields.sortDate&cards-all.sort-order=desc&awsf.content-type=*all&awsf.methodology=*all&awsf.tech-category=*all&awsf.industries=*all)\n3. 构建者库:了解亚马逊云科技如何构建和运营软件:[**点我访问**](https://aws.amazon.com/cn/builders-library/?cards-body.sort-by=item.additionalFields.sortDate&cards-body.sort-order=desc&awsf.filter-content-category=*all&awsf.filter-content-type=*all&awsf.filter-content-level=*all&trk=835e6894-d909-4691-aee1-3831428c04bd&sc_channel=el)\n4. 用于在亚马逊云科技平台上开发和管理应用程序的工具包::[**点我访问**](https://aws.amazon.com/cn/developer/tools/)\n\n![image.png](https://dev-media.amazoncloud.cn/aad891a0d5e84417b4eea5f331fcfef4_image.png)\n\n#### **4.3 专属福利**\n最后博主给大家争取了一些【专属福利】大家一起点击领取!\n- 福利一:[100余种产品免费套餐](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)。其中,计算资源 Amazon EC2 首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量。\n- 福利二:[最新优惠大礼包](https://www.amazonaws.cn/campaign/?sc_channel=el&sc_campaign=credit-acts-ldr&sc_country=cn&sc_geo=chna&sc_category=mult&sc_outcome=field&trkCampaign=request-credit-glb-ldr&trk=f45email&trk=02faebcb-3f61-4bcb-b68e-c63f3ae33c99&sc_channel=el),200$数据与分析抵扣券,200$机器学习抵扣券,200$微服务与应用开发抵扣券。\n- 福利三:解决方案 CloudFormation [一键部署模版库](https://aws.amazon.com/cn/quickstart/?solutions-all.sort-by=item.additionalFields.sortDate&solutions-all.sort-order=desc&awsf.filter-content-type=*all&awsf.filter-tech-category=*all&awsf.filter-industry=*all)\n\n\n\n\n","render":"<h3><a id=\"_1\"></a><strong>一、文章序言</strong></h3>\n<h4><a id=\"11_Dynamo__2\"></a><strong>1.1 Dynamo 的诞生</strong></h4>\n<p>亚马逊网络服务(Amazon)是全球流行的云服务提供者。它为企业提供完全管理的系统,以满足其数据库需求。DynamoDB 是由 Amazon 提供的一项服务,支持键值和文件结构。</p>\n<p>亚马逊在业务发展期间面临一些问题,主要受限于关系型数据库的可扩展性和高可用性,希望研发一套新的、基<code>KV</code>存储模型的数据库,将之命名为<code>Dynamo</code></p>\n<p>相较于传统的关系型数据库 <code>MySQL</code>,<code>Dynamo</code> 的功能目标与之有一些细小的差别,例如 <code>Amazon</code> 的业务场景多数情况并不需要支持复杂查询,却要求必要的单节点故障容错性、数据最终一致性(即牺牲数据强一致优先保障可用性)、较强的可扩展性等。<strong><a href=\"https://aws.amazon.com/cn/free/?nc2=h_ql_pr_ft&amp;all-free-tier.sort-by=item.additionalFields.SortRank&amp;all-free-tier.sort-order=asc&amp;awsf.Free%20Tier%20Types=*all&amp;awsf.Free%20Tier%20Categories=*all&amp;trk=e0213267-9c8c-4534-bf9b-ecb1c06e4ac6&amp;sc_channel=el\" target=\"_blank\">活动地址</a></strong></p>\n<h4><a id=\"12_Dynamo_9\"></a><strong>1.2 Dynamo的简述</strong></h4>\n<p>Amazon DynamoDB 是一种完全托管的 NoSQL 数据库服务,可提供快速且可预测的性能以及无缝的可扩展性。DynamoDB 让您可以减轻操作和扩展分布式数据库的管理负担,这样您就不必担心硬件配置、设置和配置、复制、软件修补或集群扩展。DynamoDB 还提供静态加密,从而消除了保护敏感数据所涉及的操作负担和复杂性。</p>\n<p>亚马逊 DynamoDB 是一个文档和键值数据库,为其用户提供个位数毫秒的性能。</p>\n<p>它是一个完全管理的、多活动的、多区域的、持久的数据库,为互联网规模的应用提供了内置的安全、内存缓存、备份和恢复。它可以处理每秒2000万个请求,每天多达10万亿个请求。</p>\n<h4><a id=\"13_Dynamo__MySQL_16\"></a><strong>1.3 Dynamo 和 MySQL</strong></h4>\n<p><code>Dynamo</code> 叙述的是一种 <code>NoSQL</code> 数据库的设计思想和实现方案,它是一个由多节点实例组成的集群,其中一个节点称之为 <code>Instance</code>(或者 <code>Node</code> 其实无所谓),这个节点由三个模块组成,分别是请求协调器、<code>Gossip</code> 协议检测、本地持久化引擎,其中最后一个持久化引擎被设计为<strong>可插拔</strong>的形式,可以支持不同的存储介质,例如 <code>BDB</code>、<code>MySQL</code> 等。</p>\n<h4><a id=\"14__DynamoDB__19\"></a><strong>1.4 DynamoDB 组件</strong></h4>\n<p>在 DynamoDB中,表、项目和属性是您使用的核心组件。表是项目的集合,而每个项目是属性的集合。DynamoDB 使用主键来唯一标识表中的每个项目,并且使用二级索引来提供更大的查询灵活性。您可以使用 DynamoDB流捕获DynamoDB 表中的数据修改事件。</p>\n<ul>\n<li><strong>表</strong>: 与其他数据库系统类似,DynamoDB 将数据存储在表中。表是数据的集合。</li>\n<li><strong>项目</strong>:每个表包含零个或多个项目。项目是一组在所有其他项目中唯一可识别的属性。在 DynamoDB 中,您可以在表中存储的项目数量没有限制。</li>\n<li><strong>属性</strong>:每个项目都由一个或多个属性组成。属性是基本数据元素,不需要进一步分解。DynamoDB 中的属性在许多方面与其他数据库系统中的字段或列相似。<br />\n有关更多信息,请参阅使用 <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html\" target=\"_blank\">DynamoDB 中的表和数据</a>。</li>\n</ul>\n<h3><a id=\"_26\"></a><strong>二、入门案例</strong></h3>\n<h4><a id=\"21__27\"></a><strong>2.1 账号注册</strong></h4>\n<p>亚马逊作为国际官方网站功能性和流程的引导都做的十分完善,注册成功即可登录。<a href=\"https://aws.amazon.com/cn/getting-started/databases/get-started/?nc=sn&amp;loc=4&amp;trk=fab55528-7c2e-4517-b90e-65b760ecfc1c&amp;sc_channel=el\" target=\"_blank\">免费试用地址</a></p>\n<p><img src=\"https://dev-media.amazoncloud.cn/4afbb210afd740a4b217bfe68e3b2bfc_image.png\" alt=\"image.png\" /></p>\n<p>我们根据指导注册后也会有对应的邮箱和手机收到验证消息,如果过程有疑问可以联系客服即可</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/ea78111808f14e49a3e45484cf8ecd6a_image.png\" alt=\"image.png\" /></p>\n<h4><a id=\"22__36\"></a><strong>2.2 创建数据表</strong></h4>\n<p>要使用 Amozon DynamoDB 就去全局搜索,点击 Dynamodb 即出来对应的应用服务。当然如果基础比较薄弱的小伙伴可以参考 <a href=\"https://aws.amazon.com/cn/getting-started/hands-on/create-nosql-table/\" target=\"_blank\">DynamoDB 使用教程</a></p>\n<p><img src=\"https://dev-media.amazoncloud.cn/ad5e2ef417714ab0b3360e47c04666ba_image.png\" alt=\"image.png\" /></p>\n<p>进入页面点击创建表即可,我们只需要定义<strong>表名称</strong>和<strong>主键</strong>即可,<strong>排序键可有可无</strong></p>\n<p><img src=\"https://dev-media.amazoncloud.cn/86ff32afd3484619a9698a9aa5a6d418_image.png\" alt=\"image.png\" /></p>\n<p>创建成功即可到首页 看到对应的表</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/0820ec2c82e54333b456e61eff856747_image.png\" alt=\"image.png\" /></p>\n<h4><a id=\"23__49\"></a><strong>2.3 创建数据</strong></h4>\n<p>点击新建项目及创建我们对应的数据文件</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/61819178fa944176bbca80225cc29133_image.png\" alt=\"image.png\" /></p>\n<p>如下我们在此表中创建了两个数据</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/228530ca69df436da8661eb1ea5b89e1_image.png\" alt=\"image.png\" /></p>\n<h4><a id=\"24__58\"></a><strong>2.4 两种查询</strong></h4>\n<p>查询有两种方式,一种是 scan ,一种是 query;如果使用过非关系型数据库,就可以发现其查询逻辑都是相似的。非关系型数据库表与表之间是没关联的。每个表的数据可以根据属性,类型,条件等查询。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/aaf53df950344527aa016163f0e1b5f8_image.png\" alt=\"image.png\" /></p>\n<p>案例演示:执行扫描 scan 查询</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/aafba2b5a07b4e72bd37f84bf6ecd26f_image.png\" alt=\"image.png\" /></p>\n<p>执行查询 query 进行数据查询(此模式要带分区键-必填项)</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/214abae591724b41bc758c99c28cfb3d_image.png\" alt=\"image.png\" /></p>\n<h4><a id=\"25__71\"></a><strong>2.5 数据导出</strong></h4>\n<p>Amozon DynamoDB 此服务做的非常人性化,考虑到很多时候数据量很多,所以支持导出功能可以直接导出查询数据文件</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/cfbf927c372243d88650732f9df33b00_image.png\" alt=\"image.png\" /></p>\n<p>导出后左下侧即可看到对应导出文档<br />\n<img src=\"https://dev-media.amazoncloud.cn/d391445b9f974340a784770692cedab2_image.png\" alt=\"image.png\" /></p>\n<h4><a id=\"26__79\"></a><strong>2.6 功能多样</strong></h4>\n<p>点击具体的表可以看到有索引,监控,全局表,备份,导出和流,其他设置等等辅助功能</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/11b2c251608e4472969c3d7000cdebd8_image.png\" alt=\"image.png\" /></p>\n<p>多样的功能让此我们可以更好的了解此非关系型数据库对应的功能,如监控功能,我演示的时候数据量较少,真实案例场景数据量庞大,更好的可以查看此数据库的性能。<br />\n<img src=\"https://dev-media.amazoncloud.cn/ae3d3420843a4111ad65f207ea4423ce_image.png\" alt=\"image.png\" /></p>\n<p>其余的功能大家在点击进入的时候会有对应的案例解释,感兴趣的可以点击<a href=\"https://aws.amazon.com/cn/getting-started/databases/get-started/?nc=sn&amp;loc=4&amp;trk=fab55528-7c2e-4517-b90e-65b760ecfc1c&amp;sc_channel=el\" target=\"_blank\">官方文档</a>尝试!</p>\n<h3><a id=\"_89\"></a><strong>三、功能简述</strong></h3>\n<h4><a id=\"31__90\"></a><strong>3.1 结构讲解</strong></h4>\n<p>DynamoDB 是一个文档或 NoSQL 数据库。虽然它可以用于存储二进制对象,但它是为存储结构化文本/JSON数据而设计的。它可以存储大小为400KB 的单个项目。这些项目被存储在表里,这些表可以位于一个特定的区域,也可以复制到全球。全局表支持多主机复制,允许客户从多个区域写进同一个项目或表。</p>\n<h4><a id=\"32__93\"></a><strong>3.2 操作方式</strong></h4>\n<p>DynamoDB 在结构化文档上工作,因此,它最小的操作原子是一个项目里面的属性。你也可以在 DynamoDB 中存储二进制非结构化信息,但这并不是它的核心用例。多个用户可以同时修改一个结构化文档的属性,或者追加到同一个数组。DynamoDB 可以处理条件更新和批量操作,甚至是许多项目的原子交易。</p>\n<h4><a id=\"33__96\"></a><strong>3.3 优化方向</strong></h4>\n<p>DynamoDB 的一些限制包括。</p>\n<ul>\n<li>监控不力会导致高成本。</li>\n<li>它只适用于键值操作。它不能很好地用于关系型操作。</li>\n</ul>\n<p>当然每个数据库都有自己的局限性,不过更重要的是发挥其优点!<br />\n感兴趣的可以了解<a href=\"https://www.awsevents.cn/CloudNative/listDetails.html?trk=1227489f-bfd0-430a-85df-750d92bb9d11&amp;sc_channel=el\" target=\"_blank\"><strong>云原生数据库在线大会</strong></a>!</p>\n<h4><a id=\"34__104\"></a><strong>3.4 数据分片</strong></h4>\n<p><code>Dynamo</code> 设计之初就考虑到要支持增量扩展,因为节点的增减必须具备很好的可扩展性,尽可能降低期间的数据流动,从而减轻集群的性能抖动。<code>Dynamo</code> 选择采用一致性哈希算法来处理节点的增删,一致性哈希的算法原理细节这里不再赘述,只是提一下为什么一致性哈希能解决传统哈希的问题。<br />\n我们想象一下传统哈希算法的局限是什么,一旦我给定了节点总数 <code>h</code>,那数据划分到哪个节点就固定了(<code>x mod h</code>),此时我一旦增减 <code>h</code> 的大小,那么全部数据的映射关系都要发生改变,解决办法只能是进行数据迁移,但是一致性哈希可以在一个圆环上优先划分好每个节点负责的数据区域。这样每次增删节点,影响的范围就被局限在一小部分数据。</p>\n<p>如图蓝色小圆 ABCD 的代表四个实际节点,橙色的小圆代表数据,他们顺时针落在第一个碰到的节点上</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/8474ac18021e4490b65497bfff1c20c8_image.png\" alt=\"image.png\" /></p>\n<h3><a id=\"_112\"></a><strong>四、安利分享</strong></h3>\n<h4><a id=\"41__113\"></a><strong>4.1 优点小结</strong></h4>\n<p>结尾总结一下 Amazon DynamoDB 优点:</p>\n<ul>\n<li><strong>完全托管</strong>:DynamoDB 是一项完全托管的非关联型资料库服务,只需创建资料库表并设置自动扩容 (Auto Scaling) 的目标使用率,其余事情都可交由该服务来代劳。</li>\n<li><strong>精细的访问控制</strong>:DynamoDB 与 Amazon Identity and Access Management (IAM) 集成,对组织内的用户实现精细的访问控制。</li>\n<li><strong>性能快速稳定</strong>:服务端平均延迟通常不超过个位数毫秒 (ms)。</li>\n<li><strong>灵活</strong>: DynamoDB 支持存储、查询和更新文档。使用 Amazon 开发工具包 (SDK),可以编写将 JavaScript 对象表示法 (JSON) 文档直接储存到 Amazon DynamoDB 表中的应用程序。此功能减少了为插入、更新和检索 JSON 文档必须编写的新代码量。</li>\n</ul>\n<p><img src=\"https://dev-media.amazoncloud.cn/fefbf96b638241f180ca7f5d57565a72_image.png\" alt=\"image.png\" /></p>\n<h4><a id=\"42__123\"></a><strong>4.2 学习分享</strong></h4>\n<p>针对初学者而言,亚马逊官方有非常详细的<strong>视频/文档</strong>教学,感兴趣的程序员们,大家一起内卷起来</p>\n<ol>\n<li>入门资源中心:从0到1 轻松上手云服务,内容涵盖:成本管理,上手训练,开发资源:<a href=\"https://aws.amazon.com/cn/getting-started/?nc1=h_ls&amp;trk=32540c74-46f0-46dc-940d-621a1efeedd0&amp;sc_channel=el\" target=\"_blank\"><strong>点我访问</strong></a></li>\n<li>架构中心:亚马逊云科技架构中心提供了云平台参考架构图表、经过审查的架构解决方案、Well-Architected 最佳实践、模式、图标等:<a href=\"https://aws.amazon.com/cn/architecture/?intClick=dev-center-2021_main&amp;trk=3fa608de-d954-4355-a20a-324daa58bbeb&amp;sc_channel=el&amp;cards-all.sort-by=item.additionalFields.sortDate&amp;cards-all.sort-order=desc&amp;awsf.content-type=*all&amp;awsf.methodology=*all&amp;awsf.tech-category=*all&amp;awsf.industries=*all\" target=\"_blank\"><strong>点我访问</strong></a></li>\n<li>构建者库:了解亚马逊云科技如何构建和运营软件:<a href=\"https://aws.amazon.com/cn/builders-library/?cards-body.sort-by=item.additionalFields.sortDate&amp;cards-body.sort-order=desc&amp;awsf.filter-content-category=*all&amp;awsf.filter-content-type=*all&amp;awsf.filter-content-level=*all&amp;trk=835e6894-d909-4691-aee1-3831428c04bd&amp;sc_channel=el\" target=\"_blank\"><strong>点我访问</strong></a></li>\n<li>用于在亚马逊云科技平台上开发和管理应用程序的工具包::<a href=\"https://aws.amazon.com/cn/developer/tools/\" target=\"_blank\"><strong>点我访问</strong></a></li>\n</ol>\n<p><img src=\"https://dev-media.amazoncloud.cn/aad891a0d5e84417b4eea5f331fcfef4_image.png\" alt=\"image.png\" /></p>\n<h4><a id=\"43__132\"></a><strong>4.3 专属福利</strong></h4>\n<p>最后博主给大家争取了一些【专属福利】大家一起点击领取!</p>\n<ul>\n<li>福利一:<a href=\"https://aws.amazon.com/cn/free/?nc2=h_ql_pr_ft&amp;all-free-tier.sort-by=item.additionalFields.SortRank&amp;all-free-tier.sort-order=asc&amp;awsf.Free%20Tier%20Types=*all&amp;awsf.Free%20Tier%20Categories=*all&amp;trk=e0213267-9c8c-4534-bf9b-ecb1c06e4ac6&amp;sc_channel=el\" target=\"_blank\">100余种产品免费套餐</a>。其中,计算资源 Amazon EC2 首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量。</li>\n<li>福利二:<a href=\"https://www.amazonaws.cn/campaign/?sc_channel=el&amp;sc_campaign=credit-acts-ldr&amp;sc_country=cn&amp;sc_geo=chna&amp;sc_category=mult&amp;sc_outcome=field&amp;trkCampaign=request-credit-glb-ldr&amp;trk=f45email&amp;trk=02faebcb-3f61-4bcb-b68e-c63f3ae33c99&amp;sc_channel=el\" target=\"_blank\">最新优惠大礼包</a>,200$数据与分析抵扣券,200$机器学习抵扣券,200$微服务与应用开发抵扣券。</li>\n<li>福利三:解决方案 CloudFormation <a href=\"https://aws.amazon.com/cn/quickstart/?solutions-all.sort-by=item.additionalFields.sortDate&amp;solutions-all.sort-order=desc&amp;awsf.filter-content-type=*all&amp;awsf.filter-tech-category=*all&amp;awsf.filter-industry=*all\" target=\"_blank\">一键部署模版库</a></li>\n</ul>\n"}
0
目录
关闭
contact-us