La commande SETPROJECT permet de consulter et de définir les propriétés au niveau du projet dans MaxCompute. Elle sert à inspecter l'ensemble des paramètres configurables ou à mettre à jour les configurations du projet et de la session, telles que les ressources d'ordonnancement, le comportement SQL, les politiques de sécurité et les types de données.
Plateformes
Exécutez SETPROJECT sur le client MaxCompute (odpscmd) ou via le nœud ODPS SQL de DataWorks.
Remarques d'utilisation
Un projet MaxCompute diffère d'un espace de travail DataWorks. Pour obtenir le nom de votre projet, connectez-vous à la console MaxCompute et vérifiez la colonne Project Name dans l'onglet Project management de la console MaxCompute.
La commande
SETPROJECTne permet ni de créer ni de supprimer des projets. Pour créer un projet, consultez la rubrique Créer un projet MaxCompute.
Consulter les propriétés du projet
Cette commande retourne toutes les propriétés au niveau du projet ainsi que leurs valeurs actuelles.
Pour les propriétés au niveau de la session, utilisez plutôt la commande SHOW FLAGS. Reportez-vous à la section « SHOW FLAGS » dans la rubrique Opérations SET.
Syntaxe
setproject;
Propriétés
Le tableau suivant répertorie les propriétés courantes du projet.
La colonne Scope indique si une propriété s'applique uniquement à la session en cours ( Session ) ou à l'ensemble du projet ( Project ). Les propriétés limitées à la session ne sont valides que pendant la durée de la connexion actuelle et disparaissent à la fin de celle-ci. Les modifications au niveau du projet s'appliquent globalement à toutes les sessions.
| Catégorie | Portée | Paramètre | Description | Valeurs valides | Instructions concernées |
|---|---|---|---|---|---|
| Écosystème | Session | console.sql.result.instancetunnel |
Active ou désactive InstanceTunnel. Consultez les Remarques d'utilisation pour plus de détails sur les commandes Tunnel. | True : activé. False : désactivé. |
SELECT |
| Ordonnancement | Session | odps.stage.mapper.mem |
Mémoire allouée à chaque worker Map. | De 256 Mio à 12 288 Mio. Valeur par défaut : 1 024 Mio. | ALL |
| Ordonnancement | Session | odps.stage.reducer.mem |
Mémoire allouée à chaque worker Reduce. | De 256 Mio à 12 288 Mio. Valeur par défaut : 1 024 Mio. | ALL |
| Ordonnancement | Session | odps.stage.joiner.mem |
Mémoire allouée à chaque worker Join. | De 256 Mio à 12 288 Mio. Valeur par défaut : 1 024 Mio. | ALL |
| Ordonnancement | Session | odps.stage.mem |
Mémoire totale pour tous les workers d'une tâche. Priorité inférieure à odps.stage.mapper.mem, odps.stage.reducer.mem et odps.stage.joiner.mem. |
De 256 Mio à 12 288 Mio. Aucune valeur par défaut. | ALL |
| Ordonnancement | Session | odps.stage.mapper.split.size |
Taille des données d'entrée par worker Map (taille de split). Ce paramètre contrôle le nombre de workers lors de la phase Map. Si l'instruction SQL utilise LIMIT, le nombre de workers simultanés est plafonné à 1 ; évitez d'utiliser LIMIT lors de la configuration de ce paramètre. |
Valeur par défaut : 256 Mio. | ALL |
| Ordonnancement | Session | odps.sql.split.size |
Taille de shard pour le traitement parallèle au niveau de la table. Exemple : {"table1": 1024, "table2": 512} |
Unité : Mio. | ALL |
| Ordonnancement | Session | odps.sql.split.row.count |
Nombre de lignes par shard pour le traitement parallèle au niveau de la table. S'applique uniquement aux tables internes non transactionnelles et non clusterisées. Exemple : {"table1": 100, "table2": 500} |
Entier positif. | ALL |
| Ordonnancement | Session | odps.sql.split.dop |
Niveau de parallélisme pour le traitement au niveau de la table. Concerne uniquement les tables internes non transactionnelles et non clusterisées. Exemple : {"table1": 1, "table2": 5} |
Entier positif. | ALL |
| Ordonnancement | Session | odps.stage.reducer.num |
Nombre de workers à chaque étape Reduce. Si l'instruction SQL contient LIMIT, le nombre de workers simultanés est limité à 1. |
— | ALL |
| Ordonnancement | Session | odps.stage.joiner.num |
Nombre de workers à chaque étape Join. La présence de LIMIT dans l'instruction SQL limite les workers simultanés à 1. |
— | ALL |
| Ordonnancement | Session | odps.stage.num |
Nombre total de workers simultanés dans une tâche. Ce paramètre est moins prioritaire que odps.stage.mapper.split.size, odps.stage.reducer.num et odps.stage.joiner.num. L'utilisation de LIMIT dans l'instruction SQL plafonne les workers simultanés à 1. |
— | ALL |
| Ordonnancement | Projet | odps.instance.priority.enable |
Active la priorité des tâches pour les projets utilisant des ressources de calcul par abonnement. Voir Priorité des tâches. Seul le propriétaire du projet ou un utilisateur doté du rôle Super_Administrator peut exécuter cette commande. | True : activé. False : désactivé. |
ALL |
| SQL | Session | odps.sql.reshuffle.dynamicpt |
Active le partitionnement dynamique afin d'éviter la prolifération de petits fichiers. Si seul un petit nombre de partitions dynamiques est généré, définissez cette valeur sur False pour prévenir la skew des données. |
True : activé. False : désactivé. |
INSERT INTO, INSERT OVERWRITE |
| SQL | Session | odps.sql.udf.getjsonobj.new |
Détermine si GET_JSON_OBJECT conserve la chaîne originale dans sa valeur de retour. Pour les projets créés le 21 janvier 2021 ou après, les chaînes originales sont retournées par défaut. Les projets antérieurs retournent par défaut les caractères réservés JSON sous forme de caractères d'échappement. Voir Fonctions de chaîne. |
True : activé. False : désactivé. |
UDF |
| SQL | Session | odps.sql.udf.jvm.memory |
Mémoire heap maximale de la machine virtuelle Java (JVM) pour une fonction définie par l'utilisateur (UDF). Augmentez cette valeur si des tris volumineux en mémoire provoquent des erreurs de mémoire insuffisante (OOM), mais optimisez également le code UDF pour traiter la cause racine. | De 256 Mio à 12 288 Mio. Valeur par défaut : 1 024 Mio. | UDF |
| SQL | Session | odps.function.timeout |
Délai d'expiration pour une UDF. | De 0 s à 3 600 s. Valeur par défaut : 600 s. | UDF |
| SQL | Session | odps.sql.session.resources |
Ressources référencées par un type défini par l'utilisateur (UDT). Séparez les différentes ressources par des virgules. Voir Vue d'ensemble. | Ressources téléchargées. | UDT |
| SQL | Session | odps.sql.udt.display.tostring |
Active le mécanisme java.util.Objects.toString(...) sur le Wrap pour toutes les colonnes de sortie UDT. |
True : activé. False : désactivé. |
UDT |
| SQL | Session | odps.sql.session.java.imports |
Packages Java référencés par les UDT. Séparez les différents packages par des virgules. Voir Vue d'ensemble. | Packages Java téléchargés. | UDT |
| SQL | Session | odps.sql.skewjoin |
Active SKEWJOIN pour éviter les problèmes de longue traîne (long tail). | True : activé. False : désactivé. |
SELECT, JOIN |
| SQL | Session | odps.sql.skewinfo |
Clé et valeur sur lesquelles opère SKEWJOIN. Voir Optimisation de la skew des données. | — | SELECT, JOIN |
| SQL | Session | odps.sql.udf.ppr.deterministic |
Active l'élagage de partitions pour les UDF. Voir Clause WHERE. | True : activé. False : désactivé. |
UDF |
| SQL | Session | odps.sql.udf.ppr.to.subquery |
Ignore les erreurs lors du remplissage des résultats pendant l'élagage de partitions. Voir Syntaxe SELECT. | True : activé. False : désactivé. |
UDF |
| SQL | Session | odps.optimizer.enable.range.partial.repartitioning |
Active la fonctionnalité Shuffle Remove pour les tables clusterisées par plage. | True : activé. False : désactivé. |
INSERT OVERWRITE, CREATE TABLE |
| SQL | Session | odps.optimizer.merge.partitioned.table |
Lorsqu'une requête utilise plusieurs fois la même table partitionnée, fusionne les lectures de table pour minimiser les E/S et améliorer les performances. | True : activé. False : désactivé. |
SELECT |
| SQL | Session | odps.optimizer.skew.join.topk.num |
Nombre de valeurs de clés chaudes récupérées par l'optimiseur lors des opérations d'agrégation. Voir HINT SKEWJOIN. | — | HINT SKEWJOIN |
| SQL | Session | odps.optimizer.stat.collect.auto |
Active la fonctionnalité Freeride qui collecte automatiquement les statistiques de colonnes. Voir Optimiseur. | True : activé. False : désactivé. |
CREATE TABLE, INSERT INTO, INSERT OVERWRITE |
| SQL | Session | odps.optimizer.stat.collect.plan |
Plan de collecte spécifiant les statistiques de colonnes à rassembler. Voir Optimiseur. | — | CREATE TABLE, INSERT INTO, INSERT OVERWRITE |
| SQL | Session | odps.sql.external.net.vpc |
Active l'accès via Virtual Private Cloud (VPC) pour les tables externes. Voir Tables externes Hologres. | True : activé. False : désactivé. |
CREATE TABLE |
| SQL | Session | odps.sql.groupby.position.alias |
Autorise l'utilisation de constantes entières dans GROUP BY pour référencer des positions de colonnes dans SELECT. |
True : activé. False : désactivé. |
SELECT, GROUP BY |
| SQL | Session | odps.sql.groupby.skewindata |
Active la fonctionnalité anti-skew pour GROUP BY. |
True : activé. False : désactivé. |
GROUP BY |
| SQL | Session | odps.sql.orderby.position.alias |
Permet d'utiliser des constantes entières dans ORDER BY pour faire référence aux positions de colonnes dans SELECT. |
True : activé. False : désactivé. |
ORDER BY, SELECT |
| SQL | Session | odps.sql.mapjoin.memory.max |
Taille de la mémoire pour les petites tables chargées en mémoire lors d'un MAPJOIN. La limite globale totale pour toutes les petites tables d'une tâche correspond à std::min(8G, odps.sql.mapjoin.memory.max × number of small tables). |
De 0 Mio à 8 192 Mio. | JOIN |
| SQL | Session | odps.sql.distributed.map.join.memory.max |
Mémoire par instance HashTableBuilder lors d'un MAPJOIN. Valeur par défaut : 2 048 Mio. | De 0 Mio à 8 192 Mio. | JOIN |
| SQL | Session | odps.sql.python.version |
Version de Python utilisée lors de l'exécution des instructions SQL. | cp27, cp37 |
UDTF, UDAF |
| SQL | Session | odps.sql.select.output.format |
Contrôle l'affichage des en-têtes de colonnes dans les résultats SELECT par le client MaxCompute. Voir Client MaxCompute (odpscmd). | {"needHeader":false,"fieldDelim":""} : sans en-têtes. {"needHeader":true,"fieldDelim":""} : avec en-têtes. |
ALL |
| SQL | Session | odps.sql.unstructured.data.oss.use.https |
Active HTTPS pour l'accès aux tables externes au niveau de la couche sous-jacente. Voir Créer une table externe OSS. | True : activé. False : désactivé. |
ALL |
| SQL | Session | odps.sql.decimal.tostring.trimzero |
Supprime les zéros finaux après la virgule décimale pour le type DECIMAL. Valeur par défaut : True. |
True : zéros finaux supprimés. False : zéros finaux conservés. |
CAST |
| SQL | Session | odps.sql.unstructured.tablestore.put.row |
Appelle l'opération PutRow pour écrire des données dans une table externe Tablestore. Voir PutRow. | True : activé. False : désactivé. |
ALL |
| SQL | Session | odps.sql.unstructured.external.max.dop |
Concurrence maximale des workers accédant à une table externe. | Entier positif. | Requêtes et écritures de tables externes |
| SQL | Session/Projet | odps.sql.unstructured.file.pattern.black.list |
Ignore les fichiers correspondant à un modèle lors de la lecture de tables externes dans Object Storage Service (OSS) ou Hadoop Distributed File System (HDFS). Utilisez ce paramètre pour ignorer les fichiers _SUCCESS générés par Spark. Exemple au niveau de la session : SET odps.sql.unstructured.file.pattern.black.list=.*_SUCCESS$; |
.*_SUCCESS$ |
Requêtes de tables externes |
| SQL | Session | odps.meta.exttable.stats.onlinecollect |
Permet à l'optimiseur de collecter temporairement des statistiques sur les tables externes pendant l'exécution de la requête. Cela aide l'optimiseur à identifier les petites tables, à appliquer Hash Join, à optimiser l'ordre des jointures et à réduire les opérations de shuffle. Valeur par défaut : False. |
True : activé. False (par défaut) : désactivé. |
Requêtes de tables externes |
| SQL | Projet | odps.sql.allow.fullscan |
Autorise les analyses complètes de table sur le projet. Ces analyses consomment beaucoup de ressources et réduisent l'efficacité du traitement. Désactivez cette option en production sauf nécessité absolue. | True : activé. False : désactivé. |
SELECT |
| SQL | Projet | odps.table.lifecycle |
Définit l'exigence de cycle de vie pour les tables créées dans le projet. | Optional : la clause LIFECYCLE est facultative. Mandatory : la clause LIFECYCLE est obligatoire. Inherit : les tables sans cycle de vie explicite héritent de la valeur de odps.table.lifecycle.value. |
CREATE TABLE |
| SQL | Projet | odps.table.lifecycle.value |
Cycle de vie par défaut des tables, exprimé en jours. S'applique lorsque odps.table.lifecycle est défini sur Inherit. |
De 1 à 37 231. Valeur par défaut : 37 231. | CREATE TABLE |
| SQL | Projet | READ_TABLE_MAX_ROW |
Nombre maximal de lignes retournées par une instruction SELECT. | De 1 à 10 000. Valeur par défaut : 10 000. | SELECT |
| SQL | Projet | odps.output.field.formatter |
Règles de masquage dynamique des données appliquées aux résultats des requêtes SQL. Voir Masquage dynamique des données. | Règles de masquage personnalisées. | SELECT |
| SQL | Projet | odps.sql.acid.table.enable |
Active le mécanisme ACID (atomicité, cohérence, isolation et durabilité). Voir Sémantique ACID. | True : activé. False : désactivé. |
ALL |
| SQL | Session/Projet | odps.io.oss.use.vipserver |
Achemine l'accès OSS via VIPServer au lieu de Server Load Balancer (SLB). VIPServer prend en charge un débit supérieur avec contrôle de flux, mais peut entraîner des échecs de requête. Évaluez les compromis de stabilité avant l'activation. Valeur par défaut : False. |
True : activé. False (par défaut) : désactivé. |
Requêtes de tables externes |
| SQL | Session/Projet | odps.sql.executionengine.enable.string.to.date.full.format |
Active la conversion des chaînes de date incluant les heures, minutes et secondes. Valeur par défaut : False. |
True : activé. False : désactivé. |
CAST |
| SQL | Session/Projet | odps.sql.executionengine.enable.rand.time.seed |
Contrôle la graine utilisée par la fonction RAND. False (par défaut) : utilise l'ID de l'instance comme graine, garantissant l'idempotence. True : utilise l'heure système, rendant le résultat non idempotent et variable selon les appels. |
True : activé. False : désactivé. |
RAND |
| SQL | Session/Projet | odps.sql.type.system.odps2 |
Active l'édition de types de données MaxCompute V2.0. Voir Édition de types de données MaxCompute V2.0. | True : activé. False : désactivé. |
Fonctions supplémentaires MaxCompute V2.0 |
| SQL | Session/Projet | odps.sql.type.json.enable |
Active les types de données JSON. Voir Instructions pour l'utilisation des types de données JSON dans MaxCompute. | True : activé. False : désactivé. |
Types de données JSON MaxCompute |
| SQL | Session/Projet | odps.sql.hive.compatible |
Active l'édition de types de données compatible Hive. Nécessaire pour les syntaxes Hive telles que inputRecordReader, outputRecordReader et Serde. Voir Édition de types de données compatible Hive. |
True : activé. False : désactivé. |
ALL |
| SQL | Session/Projet | odps.sql.metering.value.max |
Limite supérieure des ressources consommées par une seule instruction SQL. Voir Contrôle de la consommation. | — | ALL |
| SQL | Session/Projet | odps.sql.timezone |
Fuseau horaire du projet MaxCompute. Voir Opérations de configuration du fuseau horaire. | — | ALL |
| SQL | Session/Projet | odps.sql.unstructured.oss.commit.mode |
Active le chargement multipartite OSS lors de l'écriture de données dans des tables externes OSS. Voir Écrire des données dans OSS. | True : activé. False : désactivé. |
INSERT OVERWRITE |
| SQL | Session/Projet | odps.sql.groupby.orderby.position.alias |
Autorise les constantes entières dans GROUP BY et ORDER BY pour référencer les positions de colonnes dans SELECT. Définir ce paramètre sur True pour un projet existant peut rompre la logique d'analyse des données actuelle. Effectuez des tests approfondis avant toute activation au niveau du projet. |
True : activé. False : désactivé. |
GROUP BY, ORDER BY, SELECT |
| SQL | Session/Projet | odps.ext.oss.orc.native |
Utilise un lecteur natif Optimized Row Columnar (ORC) pour lire les données de la table. | True : activé. False : désactivé. |
SELECT |
| SQL | Session | odps.sql.job.max.time.hours |
Durée maximale d'une tâche unique, en heures. | De 1 à 72. Valeur par défaut : 24. | Tâches SQL |
| Facturation | Session | odps.task.quota.preference.tag |
Groupe de quotas attribué à une tâche. La tâche est planifiée vers le groupe de quotas dont le tag correspond. En l'absence de correspondance, le groupe de quotas par défaut du projet est utilisé. S'applique uniquement aux tâches SQL. Exemple : set odps.task.quota.preference.tag = payasyougo; Le nom du tag peut contenir des lettres, des chiffres et des traits de soulignement. |
Nom du tag d'un groupe de quotas configuré dans MaxCompute Management. Vous ne pouvez configurer le nom du tag que pour les groupes de quotas situés dans la région à laquelle appartient le projet de votre tâche. Le nom du tag peut contenir des lettres, des chiffres et des traits de soulignement (_). | ALL |
| Facturation | Session | odps.task.wlm.quota |
Nom du quota utilisé pour exécuter les tâches d'une session. | — | ALL |
| Sécurité et autorisations | Projet | odps.forbid.fetch.result.by.bearertoken |
Contrôle l'affichage des résultats de tâche dans l'onglet Result de LogView. | True : les résultats sont masqués. False : les résultats sont affichés. |
ALL |
| Sécurité et autorisations | Projet | LabelSecurity |
Active le contrôle d'accès basé sur les libellés (LabelSecurity). Voir Contrôle d'accès basé sur les libellés. | True : activé. False : désactivé. |
ALL |
| Sécurité et autorisations | Projet | CheckPermissionUsingACL |
Active le contrôle d'accès basé sur les listes ACL. Voir Autorisations MaxCompute. | True : activé. False : désactivé. |
ALL |
| Sécurité et autorisations | Projet | CheckPermissionUsingPolicy |
Active le contrôle d'accès basé sur les politiques. Voir Contrôle d'accès basé sur les politiques. | True : activé. False : désactivé. |
ALL |
| Sécurité et autorisations | Projet | ObjectCreatorHasAccessPermission |
Accorde aux créateurs d'objets l'accès aux objets qu'ils créent. | True : activé. False : désactivé. |
ALL |
| Sécurité et autorisations | Projet | ObjectCreatorHasGrantPermission |
Permet aux créateurs d'objets d'autoriser d'autres utilisateurs à accéder aux objets qu'ils ont créés. | True : activé. False : désactivé. |
ALL |
| Sécurité et autorisations | Projet | ProjectProtection |
Active la protection des données du projet. Voir Protection des données du projet. | True : activé. False : désactivé. |
ALL |
| Sécurité et autorisations | Projet | odps.output.field.formatter |
Règles de masquage dynamique des données appliquées aux résultats des requêtes SQL. Voir Masquage dynamique des données. | Règles de masquage personnalisées. | SELECT |
| Sécurité et autorisations | Projet | odps.security.ip.whitelist |
Liste d'autorisation d'adresses IP pour accéder au projet via le réseau d'interconnexion des produits cloud. Séparez les adresses IP par des virgules. Voir Gérer les listes d'autorisation d'adresses IP. | Adresses IP séparées par des virgules. | ALL |
| Sécurité et autorisations | Projet | odps.security.vpc.whitelist |
Liste d'autorisation d'adresses IP pour accéder au projet via un VPC spécifique. Voir Gérer les listes d'autorisation d'adresses IP. | RegionID_VPCID[IP Address] |
ALL |
| Type de données | Projet | odps.sql.decimal.odps2 |
Active DECIMAL(precision,scale) dans l'édition de types de données MaxCompute V2.0. Voir Édition de types de données MaxCompute V2.0. |
True : activé. False : désactivé. |
ALL |
| Stockage des données | Projet | odps.timemachine.retention.days |
Période de rétention des données de sauvegarde, en jours. Voir Sauvegarde et restauration. | De 0 à 30. Valeur par défaut : 1. | ALL |
| Métadonnées | Projet | odps.schema.evolution.enable |
Active l'évolution de schéma. Valeur par défaut : False. |
True : activé. False (par défaut) : désactivé. |
Évolution de schéma |
Définir les propriétés du projet
Cette commande définit les propriétés au niveau du projet. Les modifications prennent effet sous 5 minutes ; vérifiez les résultats après ce délai.
Pour définir des propriétés au niveau de la session, utilisez plutôt l'instruction SET. Reportez-vous à la section « SET » dans la rubrique Opérations SET.
Autorisations
Seul le propriétaire du projet ou un utilisateur disposant du rôle de niveau projet Super_Administrator ou Admin peut définir les propriétés au niveau du projet. Voir Attribuer un rôle d'administrateur intégré à un utilisateur.
Syntaxe
setproject <KEY>=<VALUE>;
Paramètres
| Paramètre | Description |
|---|---|
KEY |
Nom de la propriété. |
VALUE |
Valeur de la propriété. Pour les valeurs valides, voir Consulter les propriétés du projet. |
Exemple
Activer les analyses complètes de table pour un projet :
setproject odps.sql.allow.fullscan=true;
Étapes suivantes
ADD ACCOUNTPROVIDER : ajoute le système de comptes RAM pour un projet.
USE : bascule vers un projet spécifique auquel vous avez accès.
LIST ACCOUNTPROVIDERS : liste les systèmes de comptes pris en charge par un projet.
REMOVE ACCOUNTPROVIDER : supprime le système de comptes RAM d'un projet.