Un groupe de quotas (quota) est un ensemble de ressources de calcul dans MaxCompute qui fournit le processeur et la mémoire nécessaires à l'exécution de vos tâches de calcul. MaxCompute vous permet d'affecter les tâches à un quota adapté en fonction de leurs besoins en ressources, favorisant ainsi une utilisation efficace des ressources.
Contexte
Vous pouvez utiliser les quotas MaxCompute de plusieurs manières :
Associez un projet à un quota de calcul par défaut. Les tâches soumises dans ce projet s'exécutent au sein de ce quota.
Spécifiez un quota de calcul au niveau de la tâche (
use quota). Cette fonctionnalité vous permet d'affecter les tâches issues d'un même projet à différents quotas, y compris les quotas par abonnement et ceux facturés à l'utilisation. Un quota spécifié au niveau de la tâche prévaut sur le quota par défaut du projet.Configurez des règles pour un quota. Cela permet d'ordonnancer vers ce quota les tâches qui répondent aux conditions définies par la règle.
Définition d'un quota par défaut pour un projet
Vous pouvez définir un quota de calcul par défaut pour un projet. Les tâches lancées depuis ce projet utilisent automatiquement le quota par défaut pour le calcul. Vous pouvez associer un projet à un quota par défaut lors de sa création. Il est également possible de modifier le quota par défaut d'un projet existant via la console. Pour plus d'informations, consultez la rubrique Gestion des projets.
Spécification d'un quota au niveau de la tâche
Pour spécifier un quota au niveau de la tâche, ajoutez une commande avant la requête de la tâche. Cette fonctionnalité vérifie si le propriétaire de la tâche dispose des autorisations nécessaires pour utiliser le quota spécifié.
-
Création d'un quota
Pour savoir comment créer un quota dans la nouvelle console, consultez la rubrique Configuration des quotas.
RemarqueNous vous recommandons d'utiliser une combinaison de lettres et de chiffres pour le nom du quota. Les noms de quotas en chinois existants restent utilisables.
-
Octroi des autorisations
Par défaut, aucun compte (y compris les comptes Alibaba Cloud) ni aucun rôle ne possède l'autorisation de spécifier un quota au niveau de la tâche. Vous devez accorder cette autorisation explicitement.
-
Création d'un rôle
Connectez-vous à la console MaxCompute et sélectionnez une région dans le coin supérieur gauche.
Dans le volet de navigation de gauche, choisissez .
Sur la page Tenants, cliquez sur l'onglet Roles.
-
Sous l'onglet Roles, cliquez sur Add Role. Dans la boîte de dialogue Add Role, saisissez un Role Name personnalisé, indiquez le contenu de la Policy Content, puis cliquez sur OK.
{ "Statement": [{ "Action": [ "odps:List", "odps:Usage"], "Effect": "Allow", "Resource": ["acs:odps:*:regions/*/quotas/*"]}], "Version": "1" }
-
Attribution du rôle au compte devant spécifier un quota au niveau de la tâche
Votre compte Alibaba Cloud ou un utilisateur RAM disposant de l'autorisation Super_Administrator peut octroyer ces permissions.
Le processus d'autorisation varie selon le type de compte.
Autorisation des comptes Alibaba Cloud
Exécutez les commandes suivantes pour autoriser un compte Alibaba Cloud :
-- Add the Alibaba Cloud account to the tenant and grant a tenant role to the account. ADD TENANT USER <Aliyun$xxxx>; GRANT TENANT ROLE <role_name> TO USER <Aliyun$xxxx>; -- View the permissions of a tenant role or user. SHOW GRANTS FOR TENANT ROLE <role_name>; SHOW GRANTS FOR TENANT USER <user_name>; SHOW PRINCIPALS FOR TENANT [ROLE] <role_name>;Autorisation des utilisateurs RAM
Suivez les étapes ci-dessous pour autoriser un utilisateur RAM :
Connectez-vous à la console MaxCompute et sélectionnez une région dans le coin supérieur gauche.
Dans le volet de navigation de gauche, choisissez .
Sur la page Tenants, cliquez sur l'onglet Users.
Sous l'onglet Users, repérez l'utilisateur RAM cible et cliquez sur Modify Role dans la colonne Actions.
Dans la boîte de dialogue Edit Role, déplacez les rôles souhaités de la section Available Roles vers la section Added Roles, puis cliquez sur OK.
-
-
Spécification du quota pour une tâche
Ajoutez la commande suivante avant la requête de la tâche pour spécifier le quota :
SET odps.task.wlm.quota = <quota_nick_name>;Le paramètre quota_nick_name spécifie le surnom du quota. Ce paramétrage s'applique uniquement aux quotas dédiés au traitement par lots.
Pour une tâche Spark, vous devez ajouter la configuration
spark.hadoop.odps.task.wlm.quotaet définir sa valeur sur<quota_nick_name>.-
Pour une tâche MaxCompute Query Acceleration (MCQA), tenez compte des éléments suivants :
Vous ne pouvez pas spécifier directement un quota interactif à l'aide de la commande précédente. Le système sélectionne automatiquement un quota interactif uniquement lorsque vous activez le mode d'accélération des requêtes. Pour plus d'informations, consultez la rubrique MaxCompute Query Acceleration (MCQA).
Le quota spécifié par la commande
set odps.task.wlm.quota=<quota_nick_name>;sert de quota de secours. Autrement dit, si une tâche échoue lors de son exécution dans le quota interactif, elle bascule vers le quotaquota_nick_namepour être exécutée, plutôt que de voir le quota d'accélération sélectionnerquota_nick_name. Par conséquent, les ressources consommées par les tâches accélérées avec succès restent imputées au quota de calcul par défaut lié au projet dans lequel la tâche est exécutée.Si vous ne spécifiez pas explicitement le paramètre
odps.task.wlm.quota, une tâche interactive tente d'abord de basculer vers le quota défini par une règle de quota. En l'absence de règle de quota configurée, la tâche bascule vers le quota par défaut du projet.
Règles de quota
MaxCompute vous permet de configurer des règles pour un quota. Les tâches qui satisfont aux conditions de la règle peuvent être ordonnancées pour s'exécuter dans le quota correspondant.
Limites
Vous pouvez configurer des règles pour les quotas de niveau 2, qu'ils soient souscrits ou facturés à l'utilisation (Standard et Idle).
Vous pouvez configurer au maximum 10 règles par quota de niveau 2.
Pour chaque règle, vous pouvez saisir jusqu'à 50 objets pour les paramètres Project et Job Owner . Cela signifie qu'une règle peut s'appliquer à un maximum de 50 projets et de 50 propriétaires de tâches (UID).
Pour chaque règle, vous pouvez saisir au maximum cinq paires clé-valeur pour les paramètres de tâche (Job Settings).
Pour chaque règle, la plage de valeurs acceptée pour la priorité de la tâche est
[0, 9].
Configuration des règles de quota
Toutes les règles de quota configurées sont actives. Vous pouvez supprimer les règles inutiles. Plusieurs règles entretiennent une relation logique OU. Si une tâche correspond à n'importe quelle règle d'un quota, elle est ordonnancée vers ce quota ou interdite d'y accéder, selon le mode de la règle. Vous pouvez configurer soit des règles de quota pour le traitement par lots (règles offline), soit des règles de quota interactif (règles interactives), selon vos besoins.
Utilisez-les avec parcimonie afin d'éviter de créer trop de règles, ce qui compliquerait la maintenance ultérieure.
Connectez-vous à la console MaxCompute et sélectionnez une région dans le coin supérieur gauche.
Dans le volet de navigation de gauche, choisissez .
Sur la page Quotas, cliquez sur l'icône
située à gauche d'un quota de niveau 1 pour le développer et afficher la liste des quotas de niveau 2.Dans la colonne Actions du quota de niveau 2 cible, cliquez sur Rule Configuration.
-
Dans la boîte de dialogue Quota Rule Configuration, cliquez sur Add Rule, ou bien cliquez sur Clone dans la colonne Actions d'une règle existante pour créer une nouvelle règle. Configurez les paramètres comme décrit ci-dessous.
Au sein d'une même règle, les conditions relatives aux multiples projets, types de tâches et paramètres de tâche (Job Settings) entretiennent une relation logique ET.
Une règle prend effet environ 5 minutes après son ajout.
Cas d'utilisation
Ordonnancement des tâches MCQA
Ordonnancement des tâches MaxCompute Query Acceleration
-
Quota d'accélération et quota de secours.
Une tâche MCQA nécessite deux quotas :
Un quota d'accélération (de type interactif)
Un quota de secours (de type traitement par lots).
Pour mettre en œuvre cette configuration, définissez une règle de quota associant un projet ou un propriétaire de tâche à la fois à un quota d'accélération et à un quota de secours.
-
Activation de MCQA par projet, par propriétaire de tâche ou selon d'autres critères.
Lors de la création d'un quota de type interactive, vous pouvez configurer différentes conditions de règle
ProjectListpour différents quotas. Cela vous permet d'activer le quota interactive projet par projet.
Isolation des tâches de remplissage de données
Isolation des tâches de remplissage de données
Une tâche de remplissage de données, qui réexécute des tâches pour repeupler des données historiques, peut consommer une grande quantité de ressources de calcul, notamment sur une longue période. Afin d'éviter d'affecter le fonctionnement normal des tâches quotidiennes, nous vous recommandons de créer un quota dédié avec des règles spécifiques pour les tâches de remplissage de données.
Par exemple, une tâche planifiée DataWorks transmet systématiquement le paramètre SKYNET_DAGTYPE:3 dans les Job Settings lors du lancement d'une tâche de remplissage de données. Vous pouvez exploiter ce comportement pour configurer la règle de quota suivante :
Créez un quota nommé
refillet configurez une règle pour le quotarefill. Si vous souhaitez que toutes les tâches de remplissage de données initiées par DataWorks s'exécutent par défaut dans le quotarefill, configurez une règle en mode normal. Pour ce faire, saisissezSKYNET_DAGTYPE=3dans le paramètre Job Settings.-
Vous pouvez également effectuer des configurations plus granulaires. Par exemple, vous pourriez vouloir que seules les tâches de remplissage de données du projet
P1avec une priorité de tâche comprise entre5 et 9s'exécutent dans le quotarefill. Pour ce faire, configurez une règle en mode normal, sélectionnezP1pour le projet, saisissez[5,9]pour la priorité, et saisissezSKYNET_DAGTYPE=3pour le paramètre Job Settings.RemarqueLa priorité indiquée ici correspond à la priorité de la tâche MaxCompute, et non à la priorité de la baseline DataWorks. La formule de conversion est la suivante :
Priorité MaxCompute = 9 - Priorité de la baseline DataWorks.
Isolation des tâches par rôle
Isolation des tâches provenant de différents rôles
Vous pouvez créer plusieurs quotas afin d'isoler les tâches provenant de différents rôles.
Généralement, vous pouvez distinguer les rôles des tâches en combinant les dimensions suivantes : Project, Job Owner, Job Type, Priority et Job Settings.
-
Lorsque les tâches de différents rôles utilisent des projets distincts :
Vous pouvez ajouter le nom du projet au champ Project dans la règle du quota souhaité.
-
Lorsque les tâches de différents rôles sont soumises par des utilisateurs différents :
Vous pouvez ajouter l'UID du propriétaire de la tâche au champ Job Owner dans la règle du quota souhaité.
-
Lorsque les tâches de différents rôles présentent des configurations différentes :
Vous pouvez utiliser le paramètre Job Settings pour distinguer les rôles. Le paramètre Job Settings fait référence aux instructions
set xxx=xxx;soumises conjointement avec la tâche. Elles peuvent être personnalisées ou ajoutées par le système. Par exemple, les tâches issues de DataWorks incluent automatiquement des paramètres d'identification. -
Lorsque différents rôles soumettent des types de tâches différents :
Vous pouvez utiliser le paramètre Job Type pour les distinguer. Par exemple, une tâche d'apprentissage automatique soumise depuis la plateforme PAI possède le Job Type
ALGO. Une requête SQL standard soumise via MaxCompute possède le Job TypeSQL.
Vous pouvez également combiner ces conditions de règle pour obtenir un contrôle plus fin de l'ordonnancement des tâches.