3.4 C
New York
Tuesday, December 5, 2023

Handle your workloads higher utilizing Amazon Redshift Workload Administration

With Amazon Redshift, you’ll be able to run a fancy mixture of workloads in your knowledge warehouse, corresponding to frequent knowledge hundreds operating alongside business-critical dashboard queries and complicated transformation jobs. We additionally see increasingly more knowledge science and machine studying (ML) workloads. Every workload sort has totally different useful resource wants and totally different service-level agreements (SLAs).

Amazon Redshift workload administration (WLM) helps you maximize question throughput and get constant efficiency for probably the most demanding analytics workloads by optimally utilizing the sources of your present knowledge warehouse.

In Amazon Redshift, you implement WLM to outline the variety of question queues which are obtainable and the way queries are routed to these queues for processing. WLM queues are configured based mostly on Redshift consumer teams, consumer roles, or question teams. When customers belonging to a consumer group or function run queries within the database, their queries are routed to a queue as depicted within the following flowchart.

Position-based entry management (RBAC) is a brand new enhancement that helps you simplify the administration of safety privileges in Amazon Redshift. You should utilize RBAC to manage end-user entry to knowledge at a broad or granular degree based mostly on their job function. Now we have launched help for Redshift roles in WLM queues, you’ll now discover Person roles together with Person teams and Question teams as question routing mechanism.

This submit offers examples of analytics workloads for an enterprise, and shares frequent challenges and methods to mitigate these challenges utilizing WLM. We information you thru frequent WLM patterns and the way they are often related together with your knowledge warehouse configurations. We additionally present assign consumer roles to WLM queues and use WLM question insights to optimize configuration.

Use case overview

ExampleCorp is an enterprise utilizing Amazon Redshift to modernize its knowledge platform and analytics. They’ve number of workloads with customers from numerous departments and personas. The service-level efficiency necessities differ by the character of the workload and consumer personas accessing the datasets. ExampleCorp wish to handle sources and priorities on Amazon Redshift utilizing WLM queues. For this multitenant structure by division, ExampleCorp can obtain learn/write isolation utilizing the Amazon Redshift knowledge sharing characteristic and meet its unpredictable compute scaling necessities utilizing concurrency scaling.

The next determine illustrates the consumer personas and entry in ExampleCorp.

ExampleCorp has a number of Redshift clusters. For this submit, we deal with the next:

  • Enterprise knowledge warehouse (EDW) platform – This has all write workloads, together with a number of the purposes operating reads through the Redshift Information API. The enterprise standardized knowledge from the EDW cluster is accessed by a number of client clusters utilizing the Redshift knowledge sharing characteristic to run downstream experiences, dashboards, and different analytics workloads.
  • Advertising knowledge mart – This has predictable extract, remodel, and cargo (ETL) and enterprise intelligence (BI) workloads at particular instances of day. The cluster admin understands the precise useful resource necessities by workload sort.
  • Auditor knowledge mart – That is solely used for a number of hours a day to run scheduled experiences.

ExampleCorp wish to higher handle their workloads utilizing WLM.

Answer overview

As we mentioned within the earlier part, ExampleCorp has a number of Redshift knowledge warehouses: one enterprise knowledge warehouse and two downstream Redshift knowledge warehouses. Every knowledge warehouse has totally different workloads, SLAs, and concurrency necessities.

A database administrator (DBA) will implement acceptable WLM methods on every Redshift knowledge warehouse based mostly on their use case. For this submit, we use the next examples:

  • The enterprise knowledge warehouse demonstrates Auto WLM with question priorities
  • The advertising knowledge mart cluster demonstrates handbook WLM
  • The auditors workforce makes use of their knowledge mart occasionally for sporadic workloads; they use Amazon Redshift Serverless, which doesn’t require workload administration

The next diagram illustrates the answer structure.


Earlier than starting this resolution, you want the next:

  • An AWS account
  • Administrative entry to Amazon Redshift

Let’s begin by understanding some foundational ideas earlier than fixing the issue assertion for ExampleCorp. First, how to decide on between auto vs. handbook WLM.

Auto vs. handbook WLM

Amazon Redshift WLM lets you flexibly handle priorities inside workloads to satisfy your SLAs. Amazon Redshift helps Auto WLM or handbook WLM on your provisioned Redshift knowledge warehouse. The next diagram illustrates queues for every possibility.

Auto WLM determines the quantity of sources that queries want and adjusts the concurrency based mostly on the workload. When queries requiring giant quantities of sources are within the system (for instance, hash joins between giant tables), the concurrency is decrease. For added data, check with Implementing computerized WLM. You must use Auto WLM when your workload is very unpredictable.

With handbook WLM, you handle question concurrency and reminiscence allocation, versus auto WLM, the place it’s managed by Amazon Redshift routinely. You configure separate WLM queues for various workloads like ETL, BI, and advert hoc and customise useful resource allocation. For added data, check with Tutorial: Configuring handbook workload administration (WLM) queues.

Use handbook when When your workload sample is predictable or if it is advisable throttle sure sorts of queries relying on the time of day, corresponding to throttle down ingestion throughout enterprise hours. If it is advisable assure a number of workloads are capable of run on the identical time, you’ll be able to outline slots for every workload.

Now that you’ve got chosen computerized or handbook WLM, let’s discover WLM parameters and properties.

Static vs. dynamic properties

The WLM configuration for a Redshift knowledge warehouse is about utilizing a parameter group underneath the database configuration properties.

The parameter group WLM settings are both dynamic or static. You’ll be able to apply dynamic properties to the database with no cluster reboot, however static properties require a cluster reboot for modifications to take impact. The next desk summarizes the static vs. dynamic necessities for various WLM properties.

WLM Property Automated WLM Handbook WLM
Question teams Dynamic Static
Question group wildcard Dynamic Static
Person teams Dynamic Static
Person group wildcard Dynamic Static
Person roles Dynamic Static
Person function wildcard Dynamic Static
Concurrency on important Not relevant Dynamic
Concurrency Scaling mode Dynamic Dynamic
Allow brief question acceleration Not relevant Dynamic
Most runtime for brief queries Dynamic Dynamic
% of reminiscence to make use of Not relevant Dynamic
Timeout Not relevant Dynamic
Precedence Dynamic Not relevant
Including or eradicating queues Dynamic Static

Word the next:

  • The parameter group parameters and WLM swap from handbook to auto or vice versa are static properties, and due to this fact require a cluster reboot.
  • For the WLM properties Concurrency on important, Share of reminiscence to make use of, and Timeout, that are dynamic for handbook WLM, the change solely applies to new queries submitted after the worth has modified and never for at the moment operating queries.
  • The question monitoring guidelines, which we talk about later on this submit, are dynamic and don’t require a cluster reboot.

Within the subsequent part, we talk about the idea of service class, which means which queue does the question get submitted to and why.

Service class

Whether or not you employ Auto or handbook WLM, the consumer queries submitted go to the supposed WLM queue through one of many following mechanisms:

  • User_Groups – The WLM queue straight maps to Redshift teams that would seem within the pg_group desk.
  • Query_Groups – Queue project is predicated on the query_group label. For instance, a dashboard submitted from the identical reporting consumer can have separate priorities by designation or division.
  • User_Roles (newest addition) – The queue is assigned based mostly on the Redshift roles.

WLM queues from a metadata perspective are outlined as service class configuration. The next desk lists frequent service class identifiers on your reference.

ID Service class
1–4 Reserved for system use.
5 Utilized by the superuser queue.
6–13 Utilized by handbook WLM queues which are outlined within the WLM configuration.
14 Utilized by brief question acceleration.
15 Reserved for upkeep actions run by Amazon Redshift.
100–107 Utilized by computerized WLM queue when auto_wlm is true.

The WLM queues you outline based mostly on user_groups, query_groups, or user_roles fall in service class ID 6–13 for handbook WLM and repair class id 100–107 for computerized WLM.

Utilizing Query_group, you’ll be able to power a question to go to service class 5 and run within the superuser queue (offered you might be a licensed superuser) as proven within the following code:

set query_group to 'superuser';
analyze table_xyz;
vacuum full table_xyz;
reset query_group;

For extra particulars on assign a question to a selected service class, check with Assigning queries to queues.

The brief question acceleration (SQA) queue (service class 14) prioritizes short-running queries forward of longer-running queries. For those who allow SQA, you’ll be able to scale back WLM queues which are devoted to operating brief queries. As well as, long-running queries don’t must take care of brief queries for slots in a queue, so you’ll be able to configure your WLM queues to make use of fewer question slots (a time period used for obtainable concurrency). Amazon Redshift makes use of an ML algorithm to research every eligible question and predict the question’s runtime. Auto WLM dynamically assigns a price for the SQA most runtime based mostly on evaluation of your cluster’s workload. Alternatively, you’ll be able to specify a set worth of 1–20 seconds when utilizing handbook WLM.

SQA is enabled by default within the default parameter group and for all new parameter teams. SQA can have a most concurrency of six queries.

Now that you simply perceive how queries get submitted to a service class, it’s essential to know methods to keep away from runaway queries and provoke an motion for an unintended occasion.

Question monitoring guidelines

You should utilize Amazon Redshift question monitoring guidelines (QMRs) to set metrics-based efficiency boundaries for WLM queues and specify what motion to take when a question goes past these boundaries.

The Redshift cluster routinely collects question monitoring metrics. You’ll be able to question the system view SVL_QUERY_METRICS_SUMMARY as an support to find out threshold values for outlining the QMR. Then create the QMR based mostly on following attributes:

  • Question runtime, in seconds
  • Question return row rely
  • The CPU time for a SQL assertion

For a whole checklist of QMRs, check with WLM question monitoring guidelines.

Create pattern parameter teams

For our ExampleCorp use case, we show computerized and handbook WLM for a provisioned Redshift knowledge warehouse and share a serverless perspective of WLM.

The next AWS CloudFormation template offers an automatic technique to create pattern parameter teams which you can connect to your Redshift knowledge warehouse for workload administration.

Enterprise knowledge warehouse Redshift cluster utilizing computerized WLM

For the EDW cluster, we use Auto WLM. To configure the service class, we have a look at all three choices: user_roles, user_groups, and query_groups.

Right here’s a glimpse of how this may be arrange in WLM queues after which utilized in your queries.

On the Amazon Redshift console, underneath Configurations within the navigation pane, select Workload Administration. You’ll be able to create a brand new parameter group or modify an present one created by you. Choose the parameter group to edit its queues. There’s at all times a default queue (the final one in case of a number of queues outlined), which is a catch-all for queries that don’t get routed to any particular queue.

Person roles in WLM

With the introduction of consumer roles in WLM queues, now you’ll be able to handle your workload by including totally different roles to totally different queues. This might help you prioritize the queries based mostly on the roles a consumer has. When a consumer runs a question, WLM will test if this consumer’s roles have been added in any workload queues and assign the question to the primary matching queue. So as to add roles into the WLM queue, you’ll be able to go to the WLM web page, create or modify an present workload queue, add a consumer’s roles within the queue, and choose Matching wildcards so as to add roles that get matched as wildcards.

For extra details about convert from teams to roles, check with Amazon Redshift Roles (RBAC), which walks you thru a saved process to transform teams to roles.

Within the following instance, we now have created the WLM queue EDW_Admins, which makes use of edw_admin_role created in Amazon Redshift to submit the workloads on this queue. The EDW_Admins queue is created with a excessive precedence and computerized concurrency scaling mode.

Person teams

Teams are collections of customers who’re all granted permissions related to the group. You should utilize teams to simplify permission administration by granting privileges only one time. If the members of a bunch get added or eliminated, you don’t must handle them at a consumer degree. For instance, you’ll be able to create totally different teams for gross sales, administration, and help and provides the customers in every group the suitable entry to the information they want for his or her work.

You’ll be able to grant or revoke permissions on the consumer group degree, and people modifications will apply to all members of the group.

ETL, knowledge analysts, or BI or determination help techniques can use consumer teams to higher handle and isolate their workloads. For our instance, ETL WLM queue queries might be run with the consumer group etl. The info analyst group (BI) WLM queue queries will run utilizing the bi consumer group.

Select Add queue so as to add a brand new queue that you’ll use for user_groups, on this case ETL. If you need these to be matched as wildcards (strings containing these key phrases), choose Matching wildcards. You’ll be able to customise different choices like question precedence and concurrency scaling, defined earlier on this submit. Select Save to finish this queue setup.

Within the following instance, we now have created two totally different WLM queues for ETL and BI. The ETL queue has a excessive precedence and concurrency scaling mode is off, whereas the BI queue has a low precedence and concurrency scaling mode is off.

Use the next code to create a bunch with a number of customers:

-- Instance of create group with a number of customers
create group ETL with consumer etl_user1, etl_user2;
Create group BI with consumer bi_user1, bi_user2;

Question teams

Query_Groups are labels used for queries which are run inside the identical session. Consider these as tags that you could be wish to use to determine queries for a uniquely identifiable use case. In our instance use case, the information analysts or BI or determination help techniques can use query_groups to higher handle and isolate their workloads. For our instance, weekly enterprise experiences can run with the query_group label wbr. Queries from the advertising division may be run with a query_group of selling.

The good thing about utilizing query_groups is that you should use it to constrain outcomes from the STL_QUERY and STV_INFLIGHT tables and the SVL_QLOG view. You’ll be able to apply a separate label to each question that you simply run to uniquely determine queries with out having to search for their IDs.

Select Add queue so as to add a brand new queue that you’ll use for query_groups, on this case wbr or weekly_business_report. If you need these to be matched as wildcards (strings containing these key phrases), choose Matching wildcards. You’ll be able to customise different choices like question precedence and concurrency scaling choices as defined earlier on this submit. Select Save to save lots of this queue setup.

Now let’s see how one can power a question to make use of the query_groups queue simply created.

You’ll be able to assign a question to a queue at runtime by assigning your question to the suitable question group. Use the SET command to start a question group:

SET query_group TO wbr;
-- or
SET query_group TO weekly_business_report;

Queries following the SET command would go to the WLM queue Query_Group_WBR till you both reset the question group or finish your present login session. For details about setting and resetting server configuration parameter, see SET and RESET, respectively.

The question group labels that you simply specify should be included within the present WLM configuration; in any other case, the SET query_group command has no impact on question queues.

For extra query_groups examples, check with WLM queue project guidelines.

Advertising Redshift cluster utilizing handbook WLM

Increasing on the advertising Redshift cluster use case of ExampleCorp, this cluster serves two sorts of workloads:

  • Operating ETL for a interval of two hours between 7:00 AM to 9:00 AM
  • Operating BI experiences and dashboards for the remaining time throughout the day

When you have got such a readability within the workloads, and your scope of utilization is customizable by design, you might wish to think about using handbook WLM, the place you’ll be able to management the reminiscence and concurrency useful resource allocation. Auto WLM will nonetheless be relevant, however handbook WLM will also be a alternative.

Let’s arrange handbook WLM on this case, with two WLM queues: ETL and BI.

To greatest make the most of the sources, we use an AWS Command Line Interface (AWS CLI) command firstly of our ETL, which can make our WLM queues ETL-friendly, offering greater concurrency to the ETL queue. On the finish of our ETL, we use an AWS CLI command to vary the WLM queue to have BI-friendly useful resource settings. Modifying the WLM queues doesn’t require a reboot of your cluster; nonetheless, modifying the parameters or parameter group does.

For those who have been to make use of Auto WLM, this might have been achieved by dynamically altering the question precedence of the ETL and BI queues.

By default, whenever you select Create, the WLM created might be Auto WLM. You’ll be able to swap to handbook WLM by selecting Swap WLM mode. After switching WLM mode, select Edit workload queues.

It will open the Modify workload queues web page, the place you’ll be able to create your ETL and BI WLM queues.

After you add your ETL and BI queues, select Save. You must have configured the next:

  • An ETL queue with 60% reminiscence allocation and question concurrency of 9
  • A BI queue with 30% reminiscence allocation and question concurrency of 4
  • A default queue with 10% reminiscence allocation and question concurrency of two

Your WLM queues ought to seem with settings as proven within the following screenshot.

Enterprises could desire to finish these steps in an automatic approach. For the advertising knowledge mart use case, the ETL begins at 7:00 AM. An excellent begin to the ETL circulate could be to have a job that makes your WLM settings ETL queue pleasant. Right here’s how you’d modify concurrency and reminiscence (each dynamic properties in handbook WLM queues) to an ETL-friendly configuration:

aws redshift --region 'us-east-1' modify-cluster-parameter-group --parameter-group-name manual-wlm-demo --parameters '{"ParameterName": "wlm_json_configuration","ParameterValue": "[{"query_group": [], "user_group": ["etl"],"query_group_wild_card": 0,"user_group_wild_card": 0, "query_concurrency": 9, "max_execution_time": 0, "memory_percent_to_use": 60, "identify": "ETL" }, {"query_group": [], "user_group": ["bi"],"query_group_wild_card": 0,"user_group_wild_card": 0, "query_concurrency": 3, "max_execution_time": 0, "memory_percent_to_use": 20, "identify": "BI" }, { "query_group": [], "user_group": [], "query_group_wild_card": 0, "user_group_wild_card": 0, "query_concurrency": 3, "max_execution_time": 5400000, "memory_percent_to_use": 20, "identify": "Default queue", "guidelines": [ { "rule_name": "user_query_duration_threshold", "predicate": [ { "metric_name": "query_execution_time", "operator": ">", "value": 10800 } ], "motion": "abort" } ] }, { "short_query_queue": "true" } ]","Description": "ETL Begin, ETL Pleasant"}';

The previous AWS CLI command programmatically units the configuration of your WLM queues with out requiring a reboot of the cluster as a result of the queue settings modified have been all dynamic settings.

For the advertising knowledge mart use case, at 9:00 AM or when the ETL is completed, you’ll be able to have a job run an AWS CLI command to change the WLM queue useful resource settings to a BI-friendly configuration as proven within the following code:

aws redshift --region 'us-east-1' modify-cluster-parameter-group --parameter-group-name manual-wlm-demo --parameters '{"ParameterName": "wlm_json_configuration","ParameterValue": "[{"query_group": [], "user_group": ["etl"],"query_group_wild_card": 0,"user_group_wild_card": 0, "query_concurrency": 1, "max_execution_time": 0, "memory_percent_to_use": 5, "identify": "ETL" }, {"query_group": [], "user_group": ["bi"],"query_group_wild_card": 0,"user_group_wild_card": 0, "query_concurrency": 12, "max_execution_time": 0, "memory_percent_to_use": 80, "identify": "BI" }, { "query_group": [], "user_group": [], "query_group_wild_card": 0, "user_group_wild_card": 0, "query_concurrency": 2, "max_execution_time": 5400000, "memory_percent_to_use": 15, "identify": "Default queue", "guidelines": [ { "rule_name": "user_query_duration_threshold", "predicate": [ { "metric_name": "query_execution_time", "operator": ">", "value": 10800 } ], "motion": "abort" } ] }, { "short_query_queue": "true" } ]","Description": "ETL Finish, BI Pleasant"}';

Word that with regard to a handbook WLM configuration, the utmost slots you’ll be able to allocate to a queue is 50. Nonetheless, this doesn’t imply that in an computerized WLM configuration, a Redshift cluster at all times runs 50 queries concurrently. This will change based mostly on the reminiscence wants or different sorts of useful resource allocation on the cluster. We suggest configuring your handbook WLM question queues with a complete of 15 or fewer question slots. For extra data, see Concurrency degree.

In case of WLM timeout or a QMR hop motion inside handbook WLM, a question can try and hop to the subsequent matching queue based mostly on WLM queue project guidelines. This motion in handbook WLM is known as question queue hopping.

Auditor Redshift knowledge warehouse utilizing WLM in Redshift Serverless

The auditor knowledge warehouse workload runs on the month, and quarter finish. For this periodic workload, Redshift Serverless is properly suited, each from a value and ease of administration perspective. Redshift Serverless makes use of ML to be taught out of your workload to routinely handle workload and auto scaling of compute wanted on your workload.

In Redshift Serverless, you’ll be able to arrange utilization and question limits. The question limits allow you to arrange the QMR. You’ll be able to select Handle question limits to routinely set off the default abort motion when queries transcend efficiency boundaries. For extra data, check with Question monitoring metrics for Amazon Redshift Serverless.

For different detailed limits in Redshift Serverless, check with Configure monitoring, limits, and alarms in Amazon Redshift Serverless to maintain prices predictable.

Monitor utilizing system views for operational metrics

The system views in Amazon Redshift are used to watch the workload efficiency. You’ll be able to view the standing of queries, queues, and repair lessons by utilizing WLM-specific system tables. You’ll be able to question system tables to discover the next particulars:

  • View which queries are being tracked and what sources are allotted by the workload supervisor
  • See which queue a question has been assigned to
  • View the standing of a question that’s at the moment being tracked by the workload supervisor

You’ll be able to obtain the pattern SQL pocket book system queries. You’ll be able to import this in Question Editor V2.0. The queries within the pattern pocket book might help you discover your workloads being managed by WLM queues.


On this submit, we lined real-world examples for Auto WLM and handbook WLM patterns. We launched consumer roles project to WLM queues, and shared queries on system views and tables to assemble operational insights in your WLM configuration. We encourage you to discover utilizing Redshift consumer roles with workload administration. Use the script offered on AWS re:Publish to transform teams to roles, and begin utilizing consumer roles on your WLM queues.

Concerning the Authors

Rohit Vashishtha is a Senior Analytics Specialist Options Architect at AWS based mostly in Dallas, Texas. He has over 17 years of expertise architecting, constructing, main, and sustaining large knowledge platforms. Rohit helps prospects modernize their analytic workloads utilizing the breadth of AWS providers and ensures that prospects get the most effective value/efficiency with utmost safety and knowledge governance.

Harshida Patel is a Principal specialist SA with AWS.

Nita Shah is an Analytics Specialist Options Architect at AWS based mostly out of New York. She has been constructing knowledge warehouse options for over 20 years and focuses on Amazon Redshift. She is targeted on serving to prospects design and construct enterprise-scale well-architected analytics and determination help platforms.

Yanzhu Ji is a Product Supervisor within the Amazon Redshift workforce. She has expertise in product imaginative and prescient and technique in industry-leading knowledge merchandise and platforms. She has excellent ability in constructing substantial software program merchandise utilizing internet growth, system design, database, and distributed programming methods. In her private life, Yanzhu likes portray, pictures, and enjoying tennis.

Related Articles


Please enter your comment!
Please enter your name here

Latest Articles