10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

Amazon Redshift 并发扩展,始终保持巅峰性能

  • 2019-10-05
  • 本文字数:2309 字

    阅读完需:约 8 分钟

Amazon Redshift 并发扩展,始终保持巅峰性能

Amazon Redshift 是一款可以扩展到 EB 级的数据仓库。如今,数以万计的 AWS 客户(包括 NTT DOCOMO、Finra 和强生)使用 Redshift 来运行任务关键性的商业智能 (BI) 控制面板、分析实时流式处理数据以及运行预测性的分析作业。


但在高峰时刻,并发查询数量猛增,这时出现了一个问题。当许多业务分析师全部打开他们的 BI 控制面板,或者长时间运行的数据学工作负载与其他工作负载竞争资源时,Redshift 将会排队执行查询,直到集群中有足够的计算资源可用。这确保了所有工作都能够完成,但也可能意味着高峰时刻的性能会受到影响。系统本身提供了两种应对方案:


  • 超额预置集群以满足高峰需求。这种方案虽然解决了眼前的问题,但使用的资源和成本超过所需,形成了浪费。

  • 针对典型的工作负载优化集群。采用这种方案,您在高峰时刻必须花更长的时间等待结果,可能会延误重要的商业决策。

新推出并发扩展功能

今天,我想向大家介绍第三种方案。现在,您可以配置 Redshift 以根据需要增加查询处理能力。其过程十分透明并且可在几秒钟内完成,即使工作负载增加到数百条并发查询时,也能为您提供快速、稳定的性能。增加的处理能力可以在几秒钟内准备就绪,无需预热或提前预置。您只需为实际使用的处理能力付费,账单精确至秒,并且您的主集群每运行 24 小时还将赠送一小时的并发扩展集群抵扣时间。额外的处理能力将在不再需要时取消,这种方式非常适合解决我在上文描述的突增性使用案例。


您可以将突增处理能力分配给特定的用户或队列,并且可以继续使用现有的 BI 和 ETL 应用程序。并发扩展集群用于处理多种形式的只读请求,并且在工作负载上还有更多的灵活性,请参阅并发扩展以了解更多信息。

并发扩展功能的使用

您可以在几分钟内为现有的集群启用此功能! 我们建议首先使用全新的 Redshift 参数组来进行测试,因此我首先创建了一个参数组:



然后我编辑集群的工作负载管理配置,选中该新参数组,将 Concurrency Scaling Mode (并发扩展模式) 设置为自动,然后单击保存:



我将衍生自 TPC-DS 的云数据仓库基准作为测试数据和测试队列的源。我下载了 DDL 并使用我的 AWS 凭证进行自定义,然后使用 psql 来连接到我的集群并创建测试数据:


sample=# create database sample;CREATE DATABASEsample=# \connect sample;psql (9.2.24, server 8.0.2)WARNING: psql version 9.2, server version 8.0.         Some psql features might not work.SSL connection (cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256)You are now connected to database "sample" as user "awsuser".sample=# \i ddl.sql
复制代码


DDL 会创建表和负载,然后使用存储在 S3 存储桶中的数据进行填充:


sample=# \dt                 List of relations schema |          name          | type  |  owner--------+------------------------+-------+--------- public | call_center            | table | awsuser public | catalog_page           | table | awsuser public | catalog_returns        | table | awsuser public | catalog_sales          | table | awsuser public | customer               | table | awsuser public | customer_address       | table | awsuser public | customer_demographics  | table | awsuser public | date_dim               | table | awsuser public | dbgen_version          | table | awsuser public | household_demographics | table | awsuser public | income_band            | table | awsuser public | inventory              | table | awsuser public | item                   | table | awsuser public | promotion              | table | awsuser public | reason                 | table | awsuser public | ship_mode              | table | awsuser public | store                  | table | awsuser public | store_returns          | table | awsuser public | store_sales            | table | awsuser public | time_dim               | table | awsuser public | warehouse              | table | awsuser public | web_page               | table | awsuser public | web_returns            | table | awsuser public | web_sales              | table | awsuser public | web_site               | table | awsuser(25 rows)
复制代码


然后我下载了查询并打开了一组 PuTTY 窗口,以便可以为我的 Redshift 集群生成有意义的负载:



我运行了初始的并行查询集,然后逐步增加,我可以在集群的 Cluster Performance (集群性能) 选项卡中看到它们:



我可以在 Database Performance (数据库性能) 选项卡中看到有额外的处理能力在需要时上线,然后在不再需要时下线:



正如您可以看到,我的集群根据需要进行扩展,以尽快处理所有查询。“Concurrency Scaling Usage (并发扩展使用量)”显示了我使用额外处理能力的分钟数(正如我之前所提到,每个集群每 24 小时会累积一小时的并发扩展抵扣时间)。


我可以使用参数 max_concurrency_scaling_clusters 来控制可以使用的并发扩展集群数量(默认限制为 10,但您在需要时可以请求增加限制)。

现已推出

您现在可以立即在美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(俄勒冈)、欧洲(爱尔兰)以及亚太地区(东京)等区域使用并发扩展集群,今年还将在更多区域陆续推出。


作者介绍:


Jeff Barr


AWS 首席布道师; 2004 年开始发布博客,此后便笔耕不辍。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/new-concurrency-scaling-for-amazon-redshift-peak-performance-at-all-times/


2019-10-05 22:221286
用户头像

发布了 1929 篇内容, 共 155.6 次阅读, 收获喜欢 81 次。

关注

评论

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

LeetCode题解:91. 解码方法,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

进入大厂的简历应该是什么样子

我是程序员小贱

3月日更

你最喜欢的奥斯卡电影是哪部?

wbliu85

Lex Fridman: How to learn and master a new skill 简评

teoking

一名MindSpore新手的爬坑记录~~

依旧廖凯

28天写作 3月日更

啥?用了并行流还更慢了

L

Java

Python DataTime 日期处理

HoneyMoose

MySQL主从复制机制

luojiahu

MySQL 主从复制

「Linux」网络配置大揭秘

我是程序员小贱

3月日更

优雅编程 | Javascript闭包的4种高级用法

devpoint

闭包 防抖 节流 闭包要点

[转]html5设计原理

小江

(28DW-S8-Day21) 《流程型组织》学习笔记:「客户第一」还是「老板第一」

mtfelix

28天写作 流程型组织

打卡第一次

容光

办公自动化

算法攻关 - 重上到下打印二叉树 (O(n))_offer32

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 从上到下打印二叉树

微服务学习笔记

lenka

3月日更

Zookeeper.01 - 简介

insight

zookeeper 3月日更

Wireshark数据包分析学习笔记Day9

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

css高度坍塌与清除浮动

依旧廖凯

28天写作 3月日更

《经济学人》2021年3月13日刊精彩文章导读及资源免费下载

wbliu85

基于SparkMLlib智能课堂教学评价系统的设计与实现(一)

大数据技术指南

大数据 spark 智能时代 28天写作 3月日更

原来我还有网络天赋

叫练

网络 交换机

【LeetCode】设计哈希集合Java题解

Albert

算法 LeetCode 28天写作 3月日更

什么样的技术能进入一线大厂?这份阿里、百度、腾讯等 20家Java岗招聘要求梳理报告,会给你答案;

Java架构师迁哥

数字化“翻译官”

boshi

数字化 七日更

Python 日期格式和时间以及当前时间和时间戳

HoneyMoose

Elasticsearch 近实时搜索 Near Real-Time Search

escray

elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

万事开头难——人为推进效应

Justin

心理学 28天写作 游戏设计

Oracle中我们什么时候需要用到定时任务?

xiezhr

oracle 定时任务 存储过程

Elasticsearch Document 写入原理

escray

elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

虚拟路由器冗余协议 VRRP 详解

滚雪球学 Python 之怎么玩转时间和日期库

梦想橡皮擦

28天写作 3月日更

Amazon Redshift 并发扩展,始终保持巅峰性能_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章