关键字: [Amazon Web Services re:Invent 2023, MongoDB, Data Modeling, Access Patterns, Embedded Documents, Workload Optimization, Schema Design]
本文字数: 1200, 阅读完需: 6 分钟
视频
如视频不能正常播放,请前往bilibili观看本视频。>> https://www.bilibili.com/video/BV19c411S797
导读
在节奏明快、充满实际案例的讲座中,Rick Houlihan 将介绍实际应用程序的性能基准,以及随着模式的改变,性能会发生怎样的变化。检查何时嵌入比引用更好,何时更糟糕,并分析何时将数据存储在一起会加快速度,何时会减慢速度。Rick 旨在提供关于实现最佳性能而进行的模式设计的见解,以及为什么答案似乎总是 "视情况而定"。本讲座由亚马逊云科技合作伙伴 MongoDB 为您带来。
演讲精华
以下是小编为您整理的本次演讲的精华,共900字,阅读时间大约是4分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。
里克·奥兰德(Rick O'Lander)现任MongoDB公司的现场首席技术官,他在非关系型数据库领域拥有丰富的经验,特别是在MongoDB和亚马逊云科技(Amazon Web Services)方面。在开始演讲时,他对过去近十年里人们仍然对他的演讲感兴趣表示感激。他简要介绍了自己在非关系型数据库领域的工作经历,强调说这是他第二次在MongoDB公司任职,上一次大约是在十年前,当时在企业销售团队工作。
在加入MongoDB之前,奥兰德曾在亚马逊云科技工作,是DynamoDB推出后的首批企业解决方案架构师之一。在亚马逊云科技期间,他与DynamoDB服务团队合作多年,帮助客户有效地使用该技术。最终,他加入了亚马逊零售团队,领导了一个名为Project Rolling Stone的项目,该项目涉及离开Oracle数据库,并最终将关系数据库从亚马逊的一级应用服务中完全移除。在此期间,他还领导了亚马逊的NoSQL黑带团队,该团队定义了公司在广泛采用的NoSQL方面的最佳实践和设计模式。
鉴于这一丰富的背景,奥兰德解释说他的演讲将专注于NoSQL数据库中的性能优化方案设计。他表示,要实现良好的性能,需要了解什么是“良好性能”以及破除关于规范化和嵌入式数据等主题的常见误区。他的目标是让数据建模技巧更加实用,即对于一种使用场景或工作负载来说有效的方法可能对另一种情况完全不适用。他强调,最佳的方案设计在很大程度上取决于应用程序实际访问和使用数据的方式。
他对比了关系数据库(通常采用第三范式作为灵活地建模数据的标准方法)和非关系型数据库(主要通过反规范化将相关数据一起嵌入以优化模式满足频繁访问模式)。尽管第三范式允许在规范化的数据上运行即席查询,但这种灵活性往往伴随着性能开销,需要进行跨不同表的数据连接。由于NoSQL数据库在处理反规范化数据上的查询方面表现更优,因此优化常见情况是更好的选择。
奥兰德用一篇包含文章、评论、标签和用户的示例来说明这两者的区别。在关系模型中,这些不同的实体将在多个规范化的表中分开。而在NoSQL数据库中,可以通过直接将评论和标签嵌入到文章文档中来实现反规范化。最佳的分组方式取决于典型的访问模式——按ID获取带有嵌入评论的文章可能是要优化的常见使用情况,而较少使用的查询,如为用户获取所有评论,可能需要连接规范化后的数据。
他建议避免两个主要的反模式:过度嵌入(导致文档大小无限制地增长,检索不必要的数据,或者包含实际上从未使用的数据)和过度规范化(将实体分散到太多的集合中,使得连接常见访问模式的数据变得昂贵)。
奥兰德接着讨论了一些有用的架构设计模式,如将相关实体存储在一起的单集合模式,用于缓存聚合的计算字段,以及仅将子代数据的子集嵌入父级文档的子集嵌入模式。目的是优化模式以满足最频繁的访问模式。
他强调了NoSQL领域中模式验证的重要性,包括对不良数据的拒绝以及避免非结构化模式。此外,他还提供了一些实际案例,例如使用MongoDB对TPC-C进行性能测试,结果表明数据量减少了10-30%,索引大小缩小至原来的二分之一。相较于关系型模式,由于嵌套文档的存在,执行速度提高了15-25%。另一个例子是一个高流量交易系统的优化,该系统每天处理2500万笔交易,峰值为每秒25000次请求,每天处理7.5亿个操作,峰值为每秒75000次请求。通过将模式与应用程序的使用数据保持一致,性能提升了2-3倍。
总的来说,O'Lander表示,NoSQL的模式设计是由访问模式和工作负载驱动的,而非基于关系型数据库的原则。通过与应用程序的数据使用情况相匹配,开发者可以避免低效并优化性能。最常见的性能问题根源往往在于无效的模式设计。只要具备适当的专业知识,几乎所有应用程序都可以优化为在像MongoDB这样的NoSQL数据库上正常运行。
下面是一些演讲现场的精彩瞬间:
专业人士对MongoDB等文档型数据库的优势进行了强调,这些数据库相较于关系型数据库能提供更灵活的数据建模方式,以便优化经常访问的模式。

他们探讨了一些高效的数据建模技术,比如将关联数据集中存储的单集合模式。

例如,实时交易系统就需要跟踪交易的执行情况,这种系统在开市前的几分钟内,每秒可能需要处理高达25,000个请求的高峰期。

每个交易写入操作中不必要的索引还会产生额外的开销。

通过优化数据模型、减少写入开销以及提高查询效率,团队的系统性能提升了2到3倍。

专业人士还强调了了解客户需求以及提供启动指南的重要性,这有助于客户更好地利用亚马逊的云计算服务。

总结
瑞克·奥拉在re:Invent的亚马逊云科技演讲中,探讨了优化数据库性能的架构设计最佳实践。他强调了良好的性能应包括快速的响应时间、高吞吐量、高效性和可扩展性。这些领域性能不佳的根本原因通常是数据使用不当,例如过度嵌入信息或过度规范化。
奥拉先生在演讲中详细阐述了如何根据应用程序的使用模式调整架构。他解释了何时使用嵌入、分离文档、单集合对比引用以及计算字段的技巧。正确的调整可以避免性能陷阱,如优化很少使用的查询或将不需要的数据在更新时移动。
通过几个实例,奥拉先生展示了这些原则的实际应用。例如,对于电子商务网站,他会嵌入最近的评论以优化常用文章访问,但将较旧的评论单独存储。而对于一个交易系统,他将交易和执行建模为独立的文档,如同表中的行,避免昂贵的连接操作。
奥拉先生强调,正确的架构取决于工作负载。他建议记录访问模式和频率,以确定优化优先级。采用这种以工作负载为中心的方法,即使复杂的应用程序也能实现出色的NoSQL数据库性能。
演讲原文
https://blog.youkuaiyun.com/just2gooo/article/details/134836876
想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!
2023亚马逊云科技re:Invent全球大会 - 官方网站
点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!
点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!
即刻注册亚马逊云科技账户,开启云端之旅!
【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”
亚马逊云科技是谁?
亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。

本文围绕亚马逊云科技re:Invent 2023演讲展开,MongoDB现场首席技术官Rick O'Lander介绍NoSQL数据库性能优化方案设计。对比关系与非关系数据库,强调最佳方案取决于应用访问数据方式,避免过度嵌入和规范化,还给出架构设计模式及实际案例,展示优化性能的方法。

被折叠的 条评论
为什么被折叠?



