抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

Amazon DynamoDB 让海量数据管理变为可能

2019 年 11 月 18 日

Amazon DynamoDB 让海量数据管理变为可能

随着大数据技术的发展,其数据集可以增长的非常庞大,以至于基于传统的关系型数据库管理系统及其工具集很难处理这些庞大的数据集。处理这些问题需要新的工具、框架、软件和服务。与此同时,越来越多的企业需要连续不断地访问数据,从而提高效率,改善用户体验。好的大数据工具集将以较低的成本,接近实时的速度提供可伸缩、高性能的数据管理和分析功能。企业借助于这些工具可以获得更强大的智能及竞争优势。


NoSQL(Not only SQL)非关系型数据库是近年来发展最为迅猛的大数据处理技术之一。在这一领域有非常多的产品和解决方案,包括众多的开源工程。如何选择一款合适的产品往往是困扰企业的难题。此外,企业应用场景各式各样,如何将 NoSQL 与企业 IT 融合也是一个重要的课题。如今的企业中,并非所有用例都直观地倾向于使用关系型数据库,或者都需要严格的 ACID 属性(特别是一致性和隔离性)。以 Web 为中心的企业中信息管理的新兴模式,使得“非关系型数据库”成为处理这些数据的最佳选择(较之关系型数据库来说)。NoSQL 提供了对非结构化数据的支持,拥有支持分区的水平伸缩性,支持高可用性等。常见的 NoSQL 应用场景包括:日志挖掘、分析社交计算、外部数据聚合、前端订单处理系统、企业内容管理等。


Amazon DynamoDB 是一种完全托管的 NoSQL 数据库服务,提供快速且可预测的性能,能够实现无缝扩展。Amazon DynamoDB 可自动将表的数据和流量分布到足够多的服务器中,以处理客户指定的请求容量和数据存储量,同时保持一致的性能和高效的访问。所有数据项目均存储在固态硬盘(SSD)中,并在区域的多个可用区间自动复制,以提供内置的高可用性和数据持久性。例如,您可以使用 Amazon DynamoDB 创建数据库表,并可在表中存储和检索任意数量的数据和处理任何级别的请求流量。也可以通过 AWS 管理控制台创建新的 Amazon DynamoDB 数据库表、扩展或缩小表的请求容量而不导致停机或性能降低,还能查看资源使用率与性能指标。使用 Amazon DynamoDB,你可以将操作和扩展分布式数据库的管理工作负担交给 AWS 服务,无须担心硬件预配置、设置和配置、复制、软件修补或集群扩展等问题。


使用 Amazon DynamoDB 能带来哪些好处

1 可扩展:Amazon DynamoDB 旨在实现吞吐量和存储容量的高效无缝扩展


  • 预配置吞吐量:创建表时,只须指定所需的吞吐容量即可。Amazon DynamoDB 会为您的表分配专用资源以满足性能要求,并自动将数据分区到足够多的服务器以满足请求容量。如果您的应用程序需求发生变化,只须使用 AWS 管理控制台或 Amazon DynamoDB API 调用更新表的吞吐容量即可。在扩展过程中,仍然能够保证之前的吞吐量水平没有下降。

  • 自动存储扩展:Amazon DynamoDB 表中可存储的数据量没有限制,而且随着您使用 Amazon DynamoDB 写入 API 所存储数据量的增加,该服务会自动分配更多存储。

  • 完全分布式的无共享架构:Amazon DynamoDB 可水平扩展并在数百台服务器中无缝扩展单个表。


2 快速、可预测的性能:Amazon DynamoDB 的服务端平均延迟不超过 10 毫秒。该服务在固态硬盘中运行,其构建方式旨在任何规模均能保证服务性能持续优良,降低延迟。


3 轻松管理:Amazon DynamoDB 是完全托管的服务,您只须创建数据库表,其余事情都交由该服务代劳。您无须担心硬件或软件预配置、设置和配置、软件修补、操作可靠的分布式数据库集群,也不必担心随着扩展的需要在多个实例间对数据进行分区等问题。


4 内置容错能力:Amazon DynamoDB 内置容错能力,可在某个地区多个可用区域之间自动同步备份数据,以实现高效的可访问性,即使单台机器甚至设施出现死机,防护措施可保证数据万无一失。


5 灵活:Amazon DynamoDB 没有固定模式。相反,每个数据项目可以有不同数量的属性。多种数据类型(字符串、数字、二进制数据和集)使数据模型更加丰富。


6 高效的索引:Amazon DynamoDB 表中的每个项目均由一个主键标识,让您能够快速高效地访问数据项目。还可以就非键值属性定义二级索引,并使用替代键查询您的数据。


7 强一致性、原子计数器:与许多非关系数据库不同,Amazon DynamoDB 允许您对读取操作使用强一致性检验以确保始终读取最新的值,从而使开发更加便捷。Amazon DynamoDB 支持多种本地数据类型(数字、字符串、二进制数据和多值属性)。该服务还支持本地原子计数器,允许您通过调用单个 API 调用自动递增或递减数字属性。


8 安全:Amazon DynamoDB 非常安全,采用经过验证的加密方法验证用户身份,以防未授权数据访问。此外,它还与 AWS Identity and Access Management 集成,为组织内的用户实现精细的访问控制。


9 集成监控:Amazon DynamoDB 在 AWS 管理控制台中为您的表显示关键操作指标。该服务还与 CloudWatch 集成,以便您查看每个 Amazon DynamoDB 表的请求吞吐量和延迟,并轻松跟踪您的资源使用情况。


10 Amazon Elastic MapReduce 集成:Amazon DynamoDB 还与 Amazon Elastic MapReduce(Amazon EMR)集成。Amazon EMR 允许企业使用 AWS 服务中托管的即用即付计费 Hadoop 框架对大型数据集执行复杂分析。依赖 Amazon DynamoDB 的强大服务能力,客户可轻松使用 Amazon EMR 分析 Amazon DynamoDB 中存储的数据集,并在 Amazon S3 中存档结果,同时在 Amazon DynamoDB 中保存完整原始数据集。


AdRoll 使用 Amazon DynamoDB 的案例

广告重定向旨在将网站访问者转变为客户。重定向是带动全球在线企业营收的主要因素之一,而 AdRoll 是该行业的领导者之一,为了有效地服务于广告,AdRoll 需要能够灵活快速地增加容量,在极快的响应时间内实时中标,并通过自动化确保系统迅速响应竞价。


通过推出自己的实时竞价基础设施,AdRoll 需要为四个大区中的每个用户都同步数据,这大约涉及数亿用户及每秒数万次写入。该公司不仅要应对实时写入海量数据这一艰巨任务,而且,竞价系统对于每个竞价请求有着 100 毫秒的严格上限,因此,AdRoll 需要强力确保读取方面的性能。在评估了多种替代方案后,该公司决定使用 Amazon DynamoDB 来实现低延迟,确保吞吐量及快速扩展能力。


Amazon DynamoDB 表由主键(分区键,或分区键和排序键)和属性组成,如表 1 所示。无模式设计意味着每个数据项目都可能具有数量不同的属性。多种数据类型(字符串、数字、二进制数据和集合)使数据模型更加丰富。AdRoll 表设计为将 Cookie 用作分区键,将配置文件 ID 用作排序键,而将时间戳用作属性。AdRoll 对所有表都使用了分区键和排序键。


_ 表 1 Amazon DynamoDB 表


_


col 1col 2col 3
分区键排序键属性
Cookie(用户ID)配置文件时间戳
“1234”“Segment1”“1378237387”
“1234”“Segment2”“1378237417”


通过将 Amazon DynamoDB 与 Apache Storm 配合使用,AdRoll 只需不到 50 毫秒,即可在保持低成本的同时,复制其遍布世界各地的数据集,同时对竞价和对客户发布广告提供快速的响应时间。AWS 服务提供的可扩展性同样使 AdRoll 获益匪浅。AWS 服务使 AdRoll 能够处理来自 Facebook、Google、Yahoo 和其他高访问量网站的流量,借此,支持的每日展示次数超过了 500 亿。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/amazon-dynamodb-data-management/


2019 年 11 月 18 日 08:00417

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

BIGO技术 | Paxos的工程实践与极致优化

InfoQ_3597a20b53cc

BIGO

当远程工作成为未来的工作方式......

Atlassian

Atlassian Jira

第四范式自动化推荐系统:搜索协同过滤中的交互函数

天枢数智运营

人工智能 推荐系统 搜索

HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第2章HTML基础知识

Geek_8dbdc1

CSS html

What's New in Dubbo-go v1.5

apache/dubbo-go

golang dubbo

计算机网络基础(十)---网络层-迪杰斯特拉算法

书旅

算法 计算机网络 网络 最短路径

判断两个链表是否重合

LEAF

服务器是什么?其作用及有哪些分类?

德胜网络-阳

服务器

硬核干货:葡萄城 SpreadJS 前端表格技术分享

Geek_Willie

Excel SpreadJS 表格控件 表格开发

JVM系列之:String.intern的性能

程序那些事

性能 JVM string GC

【好书推荐】《Python黑魔法指南》-附高清PDF版

华为云开发者社区

Python 开发者 书摘 python3.7 书籍推荐

nginx安装配置(windows)

陈靓-哲露

4. JSON字符串是如何被解析的?JsonParser了解一下

YourBatman

Jackson JSON库

大厂经验(4):iOS端埋点自动采集技术原理剖析

DeeperMan

ios 前端 数据采集 埋点

到底一台服务器能够支持多少TCP并发连接?

南方有乔木兮

池化技术到达有多牛?看了线程和线程池的对比吓我一跳!

王磊

Java

腾讯“神盾-联邦计算”平台带你翻越数据合作的重重大山

小小的一朵云

大数据

什么是数字孪生,它的应用价值在哪里?

华为云开发者社区

AI IoT 数字化 汽车电子 工业互联网

如何设计一个亿级消息量的IM系统

Chank

Java Architecture Architect IM Instant Messaging

第八周作业

田振宇

真香!Linux 原来是这么管理内存的

cxuan

Linux 操作系统

《深度工作》学习笔记(2)

石云升

学习 专注 深度工作

案例解读:深入理解浏览器的缓存机制

华为云开发者社区

缓存 浏览器 服务器 缓存穿透 华为云

BIGO技术 | Paxos的工程实践与极致优化

InfoQ_3597a20b53cc

技术

CDN百科第八期 | 我的网站到底需不需要CDN加速?

阿里云Edge Plus

网站 CDN 云直播

百万并发「零拷贝」技术系列之Java实现

码农神说

Java 架构 高性能 零拷贝

判断链表相交

GalaxyCreater

算法

敏捷开发:一文了解影响地图和用户故事地图之间的那些事儿

华为云开发者社区

产品设计 敏捷开发 后端 地图 开发流程

将Arch Linux安装到U盘

Kurtis Moxley

Linux 安装操作系统

原创 | 使用JPA全面实现DDD持久化【关于本书】

编程道与术

Java hibernate DDD JDBC jpa

应用开发基础之-数据结构与算法

superman

Study Go: From Zero to Hero

Study Go: From Zero to Hero

Amazon DynamoDB 让海量数据管理变为可能-InfoQ