DataSunrise Obtient le Statut Compétence DevOps AWS dans AWS DevSecOps et Surveillance, Journalisation, Performance

Optimisation des performances des requêtes avec Redshift Concurrency Scaling

Optimisation des performances des requêtes avec Redshift Concurrency Scaling

Introduction

Amazon Redshift est un puissant data warehouse qui vous aide à analyser rapidement de grandes quantités de données. À mesure que les volumes de données augmentent et que les demandes des utilisateurs augmentent, maintenir des performances de requêtes optimales peut devenir un défi. C’est ici que le Redshift Concurrency Scaling entre en jeu.

Cet article couvrira les bases du Redshift Concurrency Scaling, y compris les commandes de configuration et les paramètres. Nous discuterons également de la manière dont il aide à distribuer les charges de travail pour les applications à haute performance et haute disponibilité.

Qu’est-ce que le Redshift Concurrency Scaling ?

Le Redshift Concurrency Scaling ajuste la capacité du cluster pour plus de requêtes de lecture simultanées, ce qui fait une grande différence. Il modifie le nombre de questions que votre groupe peut traiter en même temps, assurant des réponses toujours rapides et cohérentes.

Comment ça fonctionne ? Redshift provisionne automatiquement des clusters transitoires supplémentaires lorsque le Concurrency Scaling est activé. Cela se produit chaque fois que le nombre de requêtes utilisateur simultanées dépasse le seuil de la file d’attente configurée. Les groupes temporaires lisent des requêtes que Redshift ne peut gérer que dans la file d’attente.

Votre groupe principal peut continuer à travailler sur d’autres tâches sans interruption. Une fois que la taille de la file d’attente descend en dessous du seuil, le système termine automatiquement les clusters transitoires pour optimiser les coûts.

Configuration du Concurrency Scaling

Pour exploiter la puissance du Redshift Concurrency Scaling, vous devez l’activer sur votre cluster. Voici comment :

1. Assurez-vous que votre cluster fonctionne avec un nœud de type ra3.16xlarge ou supérieur.

2. Exécutez la commande SQL suivante pour activer le Concurrency Scaling :

ALTER CLUSTER <your-cluster-name> SET CONCURRENCY SCALING ENABLED;

3. Configurez le mode Concurrency Scaling à l’aide de la commande SET. Deux modes sont disponibles :

– AUTO : Redshift gère automatiquement le nombre de clusters transitoires en fonction de la charge de travail. C’est le mode par défaut.

– MANUAL : Vous spécifiez le nombre maximum de clusters transitoires.

4. Pour définir le mode, utilisez la commande suivante :

ALTER CLUSTER <your-cluster-name> SET CONCURRENCY SCALING MODE 'AUTO|MANUAL';

5. Si vous utilisez le mode MANUEL, définissez le nombre maximum de clusters transitoires :

ALTER CLUSTER <your-cluster-name> SET CONCURRENCY SCALING MAX_CLUSTERS <number>;

Distribution de la charge de travail avec des files de requêtes

Redshift Concurrency Scaling fonctionne de concert avec les files de requêtes pour distribuer efficacement les charges de travail entre votre cluster et les clusters transitoires. Les files de requêtes vous permettent de prioriser et de gérer différents types de requêtes en fonction de leur importance et des ressources nécessaires.

Par défaut, Redshift dispose d’une file d’attente par défaut unique. Cependant, vous pouvez créer des files d’attente supplémentaires pour séparer et prioriser les charges de travail. Voici un exemple de création d’une nouvelle file de requêtes :

CREATE QUEUE reporting_queue
PRIORITY 5
QUERY_GROUP 'reporting';

Dans cet exemple, nous créons une file de rapports avec une priorité de 5. Nous associons ensuite la file de rapports à un groupe de requêtes appelé ‘reporting’. Les requêtes soumises à cette file auront une priorité plus élevée que celles de la file d’attente par défaut.

Pour acheminer les requêtes vers des files spécifiques, vous pouvez utiliser la commande SET :

SET query_group TO 'reporting';

Cette action définit le groupe de requêtes de la session actuelle sur ‘reporting’, et le système acheminera les requêtes suivantes vers la file associée.

Paramètres de Concurrency Scaling pour la haute disponibilité

Lors de la configuration du Redshift Concurrency Scaling pour les applications à haute disponibilité, il existe plusieurs paramètres clés à considérer :

  1. max_concurrency_scaling_clusters : Ce paramètre spécifie le nombre maximum de clusters transitoires qui peuvent être provisionnés. Définissez-le en fonction de vos exigences de charge de travail et de vos contraintes budgétaires.
  2. concurrency_scaling_mode : Comme mentionné précédemment, ce paramètre détermine si le Concurrency Scaling est géré automatiquement ou manuellement.
  3. wlm_query_slot_count : Ce paramètre définit le nombre de slots de requête (requêtes simultanées) par cluster. Ajustez-le en fonction des caractéristiques de votre charge de travail et des ressources disponibles.
  4. query_group : Utilisez des groupes de requêtes pour acheminer des requêtes vers des files spécifiques et prioriser les charges de travail critiques.

Voici un exemple de configuration pour un environnement à haute disponibilité :

ALTER CLUSTER <your-cluster-name> SET CONCURRENCY SCALING MAX_CLUSTERS 5;
ALTER CLUSTER <your-cluster-name> SET CONCURRENCY SCALING MODE 'AUTO';
ALTER CLUSTER <your-cluster-name> SET wlm_query_slot_count 50;
CREATE QUEUE critical_queue
PRIORITY 10
QUERY_GROUP 'critical';
CREATE QUEUE reporting_queue
PRIORITY 5
QUERY_GROUP 'reporting';

Dans cet exemple, nous aurons jusqu’à 5 clusters temporaires. Nous activerons également le Concurrency Scaling automatique. De plus, nous attribuerons 50 slots de requête par cluster. Nous créons deux files d’attente, critical_queue et reporting_queue, avec des priorités différentes pour gérer séparément les charges de travail critiques et de reporting.

Exemple réel

Considérons un scénario réel où une entreprise de commerce électronique utilise Redshift pour ses besoins en data warehousing. Lors des périodes de ventes chargées, ils reçoivent de nombreuses questions de différents départements tels que les ventes, les stocks et l’analyse des clients.

Pour gérer cette charge de travail accrue, ils activent le Redshift Concurrency Scaling avec la configuration suivante :

ALTER CLUSTER ecommerce_cluster SET CONCURRENCY SCALING ENABLED;
ALTER CLUSTER ecommerce_cluster SET CONCURRENCY SCALING MODE 'AUTO';
ALTER CLUSTER ecommerce_cluster SET CONCURRENCY SCALING MAX_CLUSTERS 10;
CREATE QUEUE sales_analytics_queue
PRIORITY 8
QUERY_GROUP 'sales_analytics';
CREATE QUEUE inventory_queue
PRIORITY 6
QUERY_GROUP 'inventory';
CREATE QUEUE customer_segmentation_queue
PRIORITY 4
QUERY_GROUP 'customer_segmentation';

Lorsque trop de requêtes sont en cours d’exécution en même temps, Redshift créera plus de clusters temporaires pour gérer la charge de travail. Les requêtes sont efficacement distribuées entre le cluster principal et les clusters transitoires en fonction de leurs groupes de requêtes et de leurs priorités de file d’attente assignées.

En conséquence, l’entreprise de commerce électronique maintient des performances de requête optimales pendant les périodes de pointe, garantissant des informations en temps opportun pour les décisions commerciales cruciales. Les requêtes d’analyse des ventes reçoivent la priorité la plus élevée, suivies par les requêtes de gestion des stocks et de segmentation des clients.

Conclusion

Redshift Concurrency Scaling vous permet d’ajuster la capacité de votre cluster pour gérer efficacement les augmentations soudaines de requêtes. En utilisant des files de requêtes et en configurant l’allocation des ressources, vous pouvez distribuer efficacement les charges de travail et prioriser les requêtes critiques pour des applications à haute performance et haute disponibilité.

N’oubliez pas de considérer des facteurs tels que les caractéristiques de la charge de travail, la disponibilité des ressources et le budget lors de la configuration du Concurrency Scaling. Avec la configuration appropriée, vous pouvez débloquer tout le potentiel de Redshift et offrir des performances de requêtes ultrarapides à vos utilisateurs.

Pour plus d’informations sur Redshift Concurrency Scaling, consultez la documentation officielle AWS :

DataSunrise : Renforcement de la sécurité et de la conformité des bases de données

Bien que Redshift offre des fonctionnalités robustes pour les performances et l’évolutivité, assurer la sécurité et la conformité de vos données est tout aussi important. DataSunrise propose des outils conviviaux et flexibles pour la sécurité, le masquage et la conformité des bases de données. Avec DataSunrise, vous pouvez mettre en œuvre des configurations haute disponibilité et protéger vos données sensibles.

Pour en savoir plus sur les solutions de DataSunrise et les voir en action, visitez notre site Web et planifiez votre démonstration personnalisée dès aujourd’hui !

Suivant

Sécurité de SQL Server

Sécurité de SQL Server

En savoir plus

Besoin de l'aide de notre équipe de support ?

Nos experts seront ravis de répondre à vos questions.

Countryx
United States
United Kingdom
France
Germany
Australia
Afghanistan
Islands
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
Antarctica
Antigua and Barbuda
Argentina
Armenia
Aruba
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia
Bosnia and Herzegovina
Botswana
Bouvet
Brazil
British Indian Ocean Territory
Brunei Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African Republic
Chad
Chile
China
Christmas Island
Cocos (Keeling) Islands
Colombia
Comoros
Congo, Republic of the
Congo, The Democratic Republic of the
Cook Islands
Costa Rica
Cote D'Ivoire
Croatia
Cuba
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Falkland Islands (Malvinas)
Faroe Islands
Fiji
Finland
French Guiana
French Polynesia
French Southern Territories
Gabon
Gambia
Georgia
Ghana
Gibraltar
Greece
Greenland
Grenada
Guadeloupe
Guam
Guatemala
Guernsey
Guinea
Guinea-Bissau
Guyana
Haiti
Heard Island and Mcdonald Islands
Holy See (Vatican City State)
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran, Islamic Republic Of
Iraq
Ireland
Isle of Man
Israel
Italy
Jamaica
Japan
Jersey
Jordan
Kazakhstan
Kenya
Kiribati
Korea, Democratic People's Republic of
Korea, Republic of
Kuwait
Kyrgyzstan
Lao People's Democratic Republic
Latvia
Lebanon
Lesotho
Liberia
Libyan Arab Jamahiriya
Liechtenstein
Lithuania
Luxembourg
Macao
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Micronesia, Federated States of
Moldova, Republic of
Monaco
Mongolia
Montserrat
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
Netherlands Antilles
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Niue
Norfolk Island
North Macedonia, Republic of
Northern Mariana Islands
Norway
Oman
Pakistan
Palau
Palestinian Territory, Occupied
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Pitcairn
Poland
Portugal
Puerto Rico
Qatar
Reunion
Romania
Russian Federation
Rwanda
Saint Helena
Saint Kitts and Nevis
Saint Lucia
Saint Pierre and Miquelon
Saint Vincent and the Grenadines
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia and Montenegro
Seychelles
Sierra Leone
Singapore
Slovakia
Slovenia
Solomon Islands
Somalia
South Africa
South Georgia and the South Sandwich Islands
Spain
Sri Lanka
Sudan
Suriname
Svalbard and Jan Mayen
Swaziland
Sweden
Switzerland
Syrian Arab Republic
Taiwan, Province of China
Tajikistan
Tanzania, United Republic of
Thailand
Timor-Leste
Togo
Tokelau
Tonga
Trinidad and Tobago
Tunisia
Turkey
Turkmenistan
Turks and Caicos Islands
Tuvalu
Uganda
Ukraine
United Arab Emirates
United States Minor Outlying Islands
Uruguay
Uzbekistan
Vanuatu
Venezuela
Viet Nam
Virgin Islands, British
Virgin Islands, U.S.
Wallis and Futuna
Western Sahara
Yemen
Zambia
Zimbabwe
Choose a topicx
Informations générales
Ventes
Service clientèle et support technique
Demandes de partenariat et d'alliance
Informations générales :
info@datasunrise.com
Service clientèle et support technique :
support.datasunrise.com
Demandes de partenariat et d'alliance :
partner@datasunrise.com