View a markdown version of this page

Configuration des files d'attente de requêtes - Amazon Redshift

Amazon Redshift ne prendra plus en charge l'utilisation des UDF Python après le 30 juin 2026. Nous allons commencer à l'appliquer par étapes. Pour plus d'informations sur les détails de la fin de vie de Python et des options de migration, consultez le billet de blog publié le 30 juin 2025.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration des files d'attente de requêtes

Amazon Redshift Serverless prend en charge la gestion des ressources de requêtes basée sur les files d'attente. Vous pouvez créer des files d’attente de requêtes dédiées avec des règles de surveillance personnalisées pour différentes charges de travail. Cette fonctionnalité permet un contrôle granulaire de l’utilisation des ressources.

Les règles de surveillance des requêtes (QMR) s'appliquent uniquement au niveau du groupe de travail Redshift Serverless, affectant toutes les requêtes exécutées dans ce groupe de travail de manière uniforme. Queue-based Cette approche vous permet de créer des files d'attente avec des règles de surveillance distinctes. Vous pouvez attribuer ces files d’attente à des rôles d’utilisateur et à des groupes de requêtes spécifiques. Chaque file d’attente fonctionne indépendamment, les règles n’affectant que les requêtes de cette file d’attente.

Les files d'attente vous permettent de définir des prédicats basés sur des métriques et des réponses automatisées. Par exemple, vous pouvez configurer des règles pour abandonner automatiquement les requêtes qui dépassent les limites de temps ou consomment trop de ressources.

Considérations

Lorsque vous utilisez des files d'attente sans serveur, tenez compte des points suivants :

  • Les clés de configuration de gestion de la charge de travail (WLM) suivantes utilisées dans les clusters provisionnés par Amazon Redshift ne sont pas prises en charge dans les files d'attente Redshift Serverless :max_execution_time,,,short_query_queue,auto_wlm,,concurrency_scaling,priority,queue_type. query_concurrency memory_percent_to_use user_group user_group_wild_card

    De plus, les actions hop, change_query_priority ne sont pas prises en charge dans Serverless.

  • L'action de saut (déplacement des requêtes entre les files d'attente) n'est pas prise en charge dans Amazon Redshift Serverless.

  • Les priorités de file d'attente sont prises en charge uniquement pour les clusters provisionnés par Amazon Redshift.

  • Amazon Redshift Serverless gère automatiquement la mise à l'échelle et l'allocation des ressources pour des performances optimales. Vous n'avez donc pas besoin de configurer manuellement les priorités des files d'attente.

Configuration de files d'attente de requêtes

Vous pouvez créer des files d'attente sous l'onglet Limites pour un groupe de travail sans serveur à l'aide de l'API Redshift Serverless ou de l' Console de gestion AWS AWS CLI API Redshift Serverless.

Console

Suivez ces étapes pour créer une file d'attente pour votre groupe de travail sans serveur.

  1. Accédez à votre groupe de travail Redshift Serverless.

  2. Sélectionnez l'onglet Limites.

  3. Dans Query Queues, choisissez Activer les files d'attente.

    Important

    L'activation des files d'attente de requêtes est une modification permanente. Vous ne pouvez pas revenir à la surveillance sans file d'attente une fois activée.

  4. Configurez vos files d'attente à l'aide des paramètres suivants :

    Paramètres de niveau de file d'attente

    • name- Identifiant de file d'attente (obligatoire, unique, non vide)

    • user_role- Tableau de rôles utilisateur (facultatif)

    • query_group- Tableau de groupes de requêtes (facultatif)

    • query_group_wild_card- 0 ou 1 pour activer la correspondance des caractères génériques (facultatif)

    • user_group_wild_card- 0 ou 1 pour activer la correspondance des caractères génériques (facultatif)

    • rules- Tableau de règles de surveillance (facultatif)

    Paramètres au niveau des règles

    • rule_name- Identifiant unique, 32 caractères maximum (obligatoire)

    • predicate- Tableau de conditions, 1 à 3 prédicats (obligatoire)

    • action- « abandonner » ou « enregistrer » (obligatoire)

    Paramètres au niveau du prédicat

    • metric_name- Métrique à surveiller (obligatoire)

    • operator- « = », « < », or « > » (obligatoire)

    • value- Seuil numérique (obligatoire)

    Restrictions

    • 8 files d'attente maximum

    • 25 règles maximum dans toutes les files d'attente

    • 3 prédicats maximum par règle

    • Les noms de règles doivent être uniques au monde

Exemple de configuration

Exemple de trois files d'attente : une pour les requêtes de tableau de bord avec un délai d'attente court, une pour les requêtes ETL avec un délai d'attente long et une file d'administration :

[ { "name": "dashboard", "user_role": ["analyst", "viewer"], "query_group": ["reporting"], "query_group_wild_card": 1, "rules": [ { "rule_name": "short_timeout", "predicate": [ { "metric_name": "query_execution_time", "operator": ">", "value": 60 } ], "action": "abort" } ] }, { "name": "ETL", "user_role": ["data_scientist"], "query_group": ["analytics", "ml"], "rules": [ { "rule_name": "long_timeout", "predicate": [ { "metric_name": "query_execution_time", "operator": ">", "value": 3600 } ], "action": "log" }, { "rule_name": "memory_limit", "predicate": [ { "metric_name": "query_temp_blocks_to_disk", "operator": ">", "value": 100000 } ], "action": "abort" } ] }, { "name": "admin_queue", "user_role": ["admin"], "query_group": ["admin"] } ]

Dans cet exemple :

  • Les requêtes du tableau de bord sont abandonnées si elles durent plus de 60 secondes

  • Les requêtes ETL sont enregistrées si elles s'exécutent pendant plus d'une heure

  • La file d'attente des administrateurs n'a aucune limite de ressources

CLI

Vous pouvez gérer les files d'attente à l'aide UpdateWorkgroup des API CreateWorkgroup or avec le paramètre wlm_json_configuration config pour spécifier les files d'attente au format JSON.

aws redshift-serverless create-workgroup \ --workgroup-name test-workgroup \ --namespace-name test-namespace \ --config-parameters '[{"parameterKey": "wlm_json_configuration", "parameterValue": "[{\"name\":\"dashboard\",\"user_role\":[\"analyst\",\"viewer\"],\"query_group\":[\"reporting\"],\"query_group_wild_card\":1,\"rules\":[{\"rule_name\":\"short_timeout\",\"predicate\":[{\"metric_name\":\"query_execution_time\",\"operator\":\">\",\"value\":60}],\"action\":\"abort\"}]},{\"name\":\"ETL\",\"user_role\":[\"data_scientist\"],\"query_group\":[\"analytics\",\"ml\"],\"rules\":[{\"rule_name\":\"long_timeout\",\"predicate\":[{\"metric_name\":\"query_execution_time\",\"operator\":\">\",\"value\":3600}],\"action\":\"log\"},{\"rule_name\":\"memory_limit\",\"predicate\":[{\"metric_name\":\"query_temp_blocks_to_disk\",\"operator\":\">\",\"value\":100000}],\"action\":\"abort\"}]},{\"name\":\"admin_queue\",\"user_role\":[\"admin\"],\"query_group\":[\"admin\"]}]"}]'

Bonnes pratiques

Gardez les bonnes pratiques suivantes à l'esprit lorsque vous utilisez des files d'attente sans serveur.

  • Utilisez des files d'attente distinctes pour les charges de travail ayant des exigences de limites distinctes (par exemple, ETL, rapports ou analyses ad hoc).

  • Commencez par des seuils simples et ajustez-les en fonction du comportement des requêtes et des modèles d'utilisation. Vous pouvez surveiller les modèles d'utilisation des requêtes à l'aide des tableaux et des vues décrits dans Tables et vues système pour les règles de surveillance des requêtes.