EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics

Amazon Redshift Best Practices for Workload Management


Norman Matos

Associate Scrum Master • Strategy


This tutorial demonstrates best practices in configuring Amazon Redshift to optimize workload management.

Table of Contents

  1. Optimizing Queue Configuration
  2. Monitoring MicroStrategy Workload within Amazon Redshift
  3. Query Prioritization

Amazon Redshift offers a feature called WLM (WorkLoad Management). This feature provides the ability to create multiple query queues and queries are routed to an appropriate queue at runtime based on their user group or query group. Each queue is defined by concurrency level, user groups, query groups, wild cards, memory percent to be used, and query timeout. Out of the box, Redshift has one queue for a “superuser” group with concurrency level defined as 1 and a “default” queue with concurrency of 5 where all other user groups’ queries are queued.
One can customize Redshift workload management using the Amazon Redshift management console, CLI or API.
 

Optimizing Queue Configuration

The WLM feature allows up to 8 separate workloads. You can modify WLM to an optimal queuing configuration based on history stats. Define separate queues for ETL user group and MSTR user group; then define concurrency level and memory allocation for each queue.
The total number of concurrent level should be less than 15. The recommended concurrent level for reporting/querying queue is 5-7. While increasing concurrency allows more queries to run, each query will get a smaller share of the memory allocated to its queue (unless you increase it). You may find that by increasing concurrency, some queries must use temporary disk storage to complete, which is also sub-optimal. For the query slots in each queue, the amount of resources will be allocated evenly for each slot.  If more resources are needed for a specific report/query slot, add the following command to allocate more resources before running the report:


set wlm_query_slot_count to 3;

Note that the number used in the above command should be lower than the concurrency level in the queue. 
 

Monitoring of Strategy Workload within Amazon Redshift


Redshift tracks all system activity and SQL statement execution statistics in system tables. These are global to all databases. One of the most commonly used tables to look at query history is STL_QUERY, which is utilized in the procedure below to show how to track specific Strategy queries using labels and hints.
 
The Strategy query labels and hints can be used to identify the Strategy submitted SQL statements within Redshift system tables.
 
Use the /*(myquerylabelhint)*/ hint to pass a user-defined label to a Redshift query. You can then identify those queries later for profiling and debugging purposes. This hint can be sent to the Redshift server through the use of the following report/project level Strategy VLDB property. Strategy hints would only label SELECT, Create table as, and insert select statements; statements like parameterized inserts (insert into table values (?,?) ) would have no labels hence, are not recommended for multi-pass SQL reports which use parameterized inserts, explicit create and insert statements.
 

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;


 
Strategy query labels are used to set Redshift query group for queue assignment however, they can also be used for Strategy SQL identification in Redshift ecosystem. Unlike Strategy hints, query labels can be used with all SQL statement types and hence, recommended for multi pass SQL reports. When the label of a query is stored in the system view stl_query, it is truncated to 15 characters (30 characters are stored in all other system tables). For this reason one has to be cautious when choosing the value for query label.
 
You can set the following as a Report Pre-statement:
 


set query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’

 
This will collect information on the server side about various variables like Project name, report name, user, etc.
 
To clean up the query group and release resources use the Clean-up Post statement:
 

reset query_group;

 
 
Strategy allows the use of wildcards that are replaced by values retrieved at a report’s run time as shown in the Pre/Post Statements.
 

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;


 
Example:
Strategy generated SQL pass with VLDB Property SQL Hint = “”


select a11.SUBCAT_ID  SUBCAT_ID,
       a12.SUBCAT_DESC  SUBCAT_DESC,
       a11.ITEM_ID  ITEM_ID,
       a11.ITEM_NAME  ITEM_NAME,
       a12.CATEGORY_ID  CATEGORY_ID,
       a13.CATEGORY_DESC  CATEGORY_DESC,
       a11.UNIT_COST  WJXBFS1,
       a11.UNIT_PRICE  WJXBFS2,
       (a11.UNIT_PRICE - a11.UNIT_COST)  WJXBFS3
from   items a11   
       join   subcat   a12
         on   (a11.SUBCAT_ID = a12.SUBCAT_ID)
       join   cat   a13
         on   (a12.CATEGORY_ID = a13.CATEGORY_ID)

 
VLDB Property SQL Hint = “/*(MSTR_!r)*/”

select /*(MSTR_D1AE5A6B11D5C4D04C200E8820504F4F)*/ a11.SUBCAT_ID  SUBCAT_ID,
       a12.SUBCAT_DESC  SUBCAT_DESC,
       a11.ITEM_ID  ITEM_ID,
       a11.ITEM_NAME  ITEM_NAME,
       a12.CATEGORY_ID  CATEGORY_ID,
       a13.CATEGORY_DESC  CATEGORY_DESC,
       a11.UNIT_COST  WJXBFS1,
       a11.UNIT_PRICE  WJXBFS2,
       (a11.UNIT_PRICE - a11.UNIT_COST)  WJXBFS3
from   items a11
       join   subcat   a12
         on   (a11.SUBCAT_ID = a12.SUBCAT_ID)
       join   cat   a13
         on   (a12.CATEGORY_ID = a13.CATEGORY_ID)

 
VLDB Property Report Pre Statement = set query_group to 'MSTRReport=!o;'
set query_group to 'MSTRReport=Cost, Price, and Profit per Unit;'
 

select /*(MSTR_D1AE5A6B11D5C4D04C200E8820504F4F)*/ a11.SUBCAT_ID  SUBCAT_ID,
       a12.SUBCAT_DESC  SUBCAT_DESC,
       a11.ITEM_ID  ITEM_ID,
       a11.ITEM_NAME  ITEM_NAME,
       a12.CATEGORY_ID  CATEGORY_ID,
       a13.CATEGORY_DESC  CATEGORY_DESC,
       a11.UNIT_COST  WJXBFS1,
       a11.UNIT_PRICE  WJXBFS2,
       (a11.UNIT_PRICE - a11.UNIT_COST)  WJXBFS3
from   items a11
       join   subcat   a12
         on   (a11.SUBCAT_ID = a12.SUBCAT_ID)
       join   cat   a13
         on   (a12.CATEGORY_ID = a13.CATEGORY_ID)

 
Below is an example query using the Redshift table stl_wlm_query that gives the execution time, queue time, class’s queue time and the total time of the query spent on the Redshift side, and how you can use the label to track the query
 

select a.pid, max(a.label) as label,
sum(b.total_queue_time / 1000000.000) as queueTime,
sum(b.total_exec_time / 1000000.000)  as ExecTime,
sum(case when b.service_class=2 then b.total_queue_time / 1000000.000 else 0.000 end) as Class2_QueueTime,
sum(case when b.service_class=3 then b.total_queue_time / 1000000.000 else 0.000 end) as Class3_QueueTime,
sum(case when b.service_class=2 then b.total_exec_time / 1000000.000 else 0.000 end) as Class2_ExecTime,
sum(case when b.service_class=3 then b.total_exec_time / 1000000.000 else 0.000 end) as Class3_ExecTime,
sum ((b.total_queue_time + b.total_exec_time ) / 1000000.000) as TotalTime,
min(b.exec_start_time) as starttime
from stl_wlm_query b
left join svl_qlog a
on a.query= b.query
and a.xid = b.xid
where b.exec_start_time >= '2013-01-15 16:47:57'
and b.exec_start_time <= '2013-01-30 20:00:00'
and a.label = 'MSTRReport=;'
group by a.pid

 

Query Prioritization


In general, there will be multiple applications submitting queries to Redshift in addition to Strategy. Redshift query group are leveraged to identify Strategy submitted SQL to Redshift, along with its assignment to the appropriate Redshift queue.
 
Redshift query group for a Strategy report is set and reset through the use of the following report level Strategy VLDB property.
 

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;

X
Service NameDefault PortApache Kafka 9092Apache Tomcat 8.0 Tomcat8 8080Apache Tomcat 8.0 usherGW 9501Apache Tomcat 8.0 usherIDM  1443 & 2443Apache ZooKeeper 2181Apache2.4 443Memcached 11211MongoDB 27017MySQL 3306Redis 6379Strategy Collaboration/Realtime Service 3000Strategy Intelligence Server 34952Strategy PDFExport Service 20100Strategy REST Server 7070Strategy Usher Analytics Log Consumer Strategy Distribution Manager Strategy Enterprise Manager Data Loader Strategy Execution Engine Strategy Health Agent Strategy Listener Strategy Logging Client Strategy Logging Consumer Strategy Logging Server Strategy Master Health Agent Strategy MongoDB SQL Engine Strategy NC PDF Formatter Strategy SMTP Service Strategy System Monitor DayRevenueMovingRevenue1/1/20001501501/2/20001002501/3/20002004501/4/20001004001/5/2000250550VLDB CategoryVLDB Property SettingValue Select / InsertSQL Hint/*MSTRProject=!p;MSTRReport=!o;MSTRUser=!u;MSTRJob=!j;*/VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR=!o;Project=!p;User=!u;Job=!j;’Pre/Post StatementsClean-up Post statementreset query_group;VLDB CategoryVLDB Property SettingValue E.g.Pre/Post StatementsReport Pre Statementset query_group to ‘MSTR_High=!o;’Pre/Post StatementsClean-up Post statementreset query_group;


 
A Strategy report job can submit one or more queries to Redshift. In such case all queries for a Strategy report would be labeled with the same query group and thus, would be assigned to same queue on Redshift.
 
An example implementation of Strategy Redshift WLM:

  1. High Priority Strategy Reports are set with Report Pre Statement “MSTR_HIGH=!o;”, medium priority reports with “MSTR_MEDIUM=!o;” and low priority reports with “MSTR_LOW=!o;”.
  2. Redshift WLM queues are created and associated with corresponding query groups e.g. “MSTR_HIGH_QUEUE” queue is associated with “MSTR_HIGH=*; “ query group.  (Where * is a Redshift wildcard)


Each Redshift queue is assigned with appropriate concurrency levels, memory percent to be used and query timeout.
 
 


Comment

0 comments

Details

Knowledge Article

Published:

August 3, 2017

Last Updated:

August 3, 2017