发布于: Jun 28, 2022

近期,Amazon Redshift 云数据库升级业已完成。在 Amazon Redshift 的协助下,客户得以顺利完成一系列业务目标,例如从加速现有数据库环境,到提取网络日志以进行大数据分析等等。Amazon Redshift 是一套全托管 PB 级大规模并行数据仓库,拥有极低的上手难度与出色的性能表现。Amazon Redshift还提供开放的标准 JDBC/ODBC 驱动程序接口,供您直接对接现有商业智能(BI)工具并复用现有分析查询方法。

Amazon Redshift 能够运行任意类型的数据模型,涵盖生产事务处理系统第三范式模型、星型与雪花型模型、数据仓库以及各类简单的平面表等。

本文将向大家介绍如何在应用 Amazon Redshift 过程中实现性能优化,并针对各类优化方式做出深入剖析及操作指导。

本文更新了 2019 年初发布的同名文章,旨在纳入一年多以来亚马逊云科技的各项最新进展,并将着重对其中要点做出阐述。


查询吞吐量比查询并发性更为重要

配置并发性(如内存管理)可以通过 Automatic WLM 与 Query Priorities 队列优先级机制将并发能力引入 Amazon Redshift 的内部机器学习模型。在大规模生产集群当中,我们看到自动化流程会为某些工作负载分配更多的活动语句,并对其他类型的用例分配较少活动语句。这种作法是为了最大程度提高吞吐量,保证 Amazon Redshift 集群能够在特定时段之内完成特定工作总量,例如实现每分钟 300 条查询,或者每小时处理 1500 条 SQL 语句等。本文建议大家充分利用并发机制提高吞吐量,因为吞吐量正是对集群用户具有直接影响的一类核心性能指标。

除了通过优化 Automatic WLM 设置实现吞吐量最大化之外,Amazon Redshift 中的并发扩展功能还可以将集群的吞吐量扩展至原始集群固有吞吐量的 10 倍。目前 Amazon Redshift 将 10 倍设定为吞吐量的软限制,大家可以根据需求与你的客户团队联系以调整此上限。

关注 Amazon Redshift 驱动程序

Amazon Web Services 建议大家使用 Amazon Redshift JDBC 或 ODBC 驱动程序,借此提高性能表现。每种驱动程序都对应多种可选配置,您可以进一步调整以控制语句使用量以及结果集中的具体行数。

对各类常见数据库管理任务进行自动化,借此降低使用门槛

2018 年,我们曾在文章中通过排序键、编码、表维护、分发以及工作负载管理等角度探讨了性能优化方面的几大关键注意事项。自那时以来,Amazon Redshift 先后添加多项自动化功能,为 SET DW 提供 100% 信息支持、将表维护纳入 Amazon Web Services 服务职责(不再由用户方承担),并通过智能化程度更高的默认设置增强了开箱即用性能。即使表任务随时间推移而有所变化,Amazon Redshift Advisor 仍会持续监控集群以寻找各类优化机会。Amazon Web Services 还发布了用于量化 Amazon Redshift 性能的基准方案,帮助大家轻松重现性能测试结果。

使用 RA3 节点与 Amazon Redshift Spectrum 实现计算与存储资源的独立扩展除了原本提供的 Dense Compute 与 Dense Storage 节点等便捷集群构建块之外,现在大家还可以使用其他工具进一步对计算与存储资源进行独立扩展。Amazon Redshift Managed Storage(即 RA3 节点家族)将帮助大家专注于调整计算资源量,而不必分神于存储容量问题。此外,并发扩展则允许我们根据实际需求,对整个集群内的其他计算资源进行调整。Amazon Redshift Spectrum 使用由 Amazon Simple Storage Service (Amazon S3)提供的、近乎无限的存储容量以支持按需计算层,其容量可高达主集群容量的 10 倍,且现已提供配套的物化视图支持选项。

利用暂停与还原功能优化使用成本

现在,所有 Amazon Redshift 集群皆可使用暂停与还原功能。对于按需创建的集群,集群暂停操作将停止按秒计算的服务计费。预留实例集群则可通过暂停与还原功能,定义特定访问时间或在特定时间点上冻结数据集。

相关文章