Le moteur MaxQA (MaxCompute Query Accelerator) optimise les performances des requêtes pour les scénarios en quasi temps réel. Il s'exécute au sein d'un pool de ressources de calcul dédié aux requêtes et optimise le plan de contrôle, l'optimiseur de requêtes, le moteur d'exécution, le moteur de stockage ainsi que le mécanisme de mise en cache. MaxQA est idéal pour les scénarios de BI, l'analyse interactive et les entrepôts de données en quasi temps réel qui exigent une faible latence et une grande stabilité.
Disponibilité du service
Calendrier de disponibilité par région
Région | Bêta publique | Disponibilité générale |
Chine (Hangzhou) | 17 février 2025 | 24 novembre 2025 |
Chine (Shanghai) | ||
Chine (Pékin) | ||
Chine (Shenzhen) | ||
Chine (Ulanqab) | ||
Chine (Hong Kong) | 5 mars 2025 | 27 novembre 2025 |
Japon (Tokyo) | 5 mars 2025 | |
Singapour | 20 mars 2025 | |
Indonésie (Jakarta) | ||
Allemagne (Francfort) | 31 mars 2025 | |
États-Unis (Silicon Valley) | ||
États-Unis (Virginie) |
Remarques
Les nouveaux groupes de quotas interactifs utilisent par défaut le mode MaxQA. Les instances MaxQA existantes ne sont pas affectées.
Opérations de base sur MaxQA
Créer une instance MaxQA
MaxQA est disponible uniquement pour les projets MaxCompute utilisant la méthode de facturation par abonnement. Pour créer une instance MaxQA :
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 Quota Configuration dans la colonne Actions du quota cible.
-
Configuration de base
Sur la page Quota Configuration, sélectionnez l'onglet Basic Configurations et cliquez sur Edit Basic Configurations.
-
Cliquez sur Add Level-2 Quota, saisissez un Quota Name et sélectionnez Interactive pour le Type.
Lors de l'utilisation de MaxQA, spécifiez un Quota Name. Nous vous recommandons d'utiliser un nom lié à vos attributs métier afin de distinguer plusieurs instances.
Les quotas Interactive sont dédiés à l'exécution des tâches d'accélération des requêtes (MaxQA).
Cliquez sur OK.
Après la création de l'instance, l'état du groupe de quotas interactif correspondant passe à Starting. Attendez 5 à 8 minutes jusqu'à ce que l'état passe à Running. Vous pouvez alors utiliser l'instance.
Supprimer une instance MaxQA
Sur la page Quotas, cliquez sur Quota Configuration dans la colonne Actions du quota cible.
Sur la page Quota Configuration, sélectionnez l'onglet Basic Configurations, puis cliquez sur Delete dans la colonne Actions du quota interactif cible.
La suppression s'exécute en arrière-plan. La page n'affiche ni mises à jour d'état ni progression de la suppression.
Mettre à l'échelle une instance MaxQA
Vous pouvez augmenter ou réduire la capacité d'un groupe de quotas interactifs en fonction de vos besoins métier :
Sur la page Quotas, cliquez sur Quota Configuration dans la colonne Actions du quota cible.
Sur la page Quota Configuration, sélectionnez l'onglet Basic Configurations et cliquez sur Edit Basic Configurations.
-
Cliquez sur Add Level-2 Quota et ajustez les Reserved CUs [minCU,maxCU] du groupe de quotas interactifs que vous souhaitez mettre à l'échelle. Une valeur plus élevée indique une augmentation de la capacité, tandis qu'une valeur plus faible indique une réduction.
RemarqueL'incrément minimal pour les CU est de 25.
Le nombre minimal de CU doit être d'au moins 25. Pour garantir la stabilité, définissez le nombre minimal de CU à 50 ou plus. Si les ressources interactives ne sont pas nécessaires, définissez la valeur sur 0 ou supprimez le groupe de quotas.
-
Limitation des quotas interactifs :
Les Elastically Reserved CUs ne sont pas pris en charge pour les quotas interactifs.
Pour assurer les performances et la stabilité de l'accélération des requêtes, définissez le nombre minimal de CU égal au nombre maximal de CU dans un quota interactif.
-
Cliquez sur OK.
L'ajustement des CU réservés pour le groupe de quotas interactifs commence.
Scaling Out ou Scaling In apparaît dans la colonne Actions pour le groupe de quotas interactifs. L'augmentation de la capacité prend environ 5 à 8 minutes. La réduction de la capacité peut prendre plus de temps, selon le moment où les tâches en cours se terminent. Dans le pire des cas, le système peut devoir attendre l'expiration du délai des tâches sur les machines en cours de suppression avant que l'opération de réduction ne commence. Vos tâches ne sont pas affectées pendant les opérations de mise à l'échelle.
Configurer la mise à l'échelle basée sur le temps pour MaxQA
Vous pouvez configurer un plan de mise à l'échelle basé sur le temps pour une mise à l'échelle planifiée :
Sur la page Quotas, cliquez sur Quota Configuration dans la colonne Actions du quota cible.
Sur la page Quota Configuration, sélectionnez l'onglet Scaling Configuration.
-
Configurer un plan de mise à l'échelle basé sur le temps
Sur l'onglet Scaling Configuration, cliquez sur Add Configuration Plan. Dans la boîte de dialogue Add Configuration Plan, saisissez un Configuration Plan Name et configurez les Reserved CUs [minCU,maxCU] pour le quota de niveau 2.
-
Pour modifier un plan de configuration existant :
Sur l'onglet Scaling Configuration, cliquez sur Edit dans la colonne Actions du plan cible pour le mettre à jour.
-
Configurer une planification basée sur le temps
Sur l'onglet Scaling Configuration, cliquez sur Edit Time Plan dans la section Scheduled Scaling Management.
-
Cliquez sur Add Effective Period, puis sélectionnez une Effective start time et un Configuration Plan.
Cela vous permet d'activer différents plans de configuration de quotas à différents moments de la journée. Pour plus d'informations, consultez la rubrique Gérer les ressources de calcul et les quotas.
Politique de planification
Lorsque vous soumettez une tâche, spécifiez le nom du groupe de quotas interactifs dans le client ou dans la chaîne de connexion JDBC. La tâche est ensuite planifiée pour s'exécuter sur l'instance MaxQA correspondante.
Politique de secours
MaxQA prend en charge une politique de secours. Lorsqu'elle est activée, les tâches MaxQA qui échouent en raison d'exceptions système basculent automatiquement vers le mode batch. Vous pouvez activer la politique de secours de différentes manières :
JDBC (version 3.10.7 ou ultérieure) : Le secours est activé par défaut. Définissez disableFallback pour le désactiver et utilisez fallbackQuota pour spécifier le quota cible.
Java SDK :
MaxQAConnInfo.builder().fallbackInfo(FallbackInfo.enable("<offline_quota>")).build()DataWorks : Configurez les règles de secours dans les paramètres de planification de DataStudio. Pour plus d'informations, consultez la rubrique Utilisation de DataWorks DataStudio.
Méthodes d'accès
Vous pouvez accéder à MaxQA en utilisant les méthodes suivantes :
Utilisation du client MaxCompute
Installez et configurez le client MaxCompute (odpscmd) v0.51.1 ou version ultérieure. Pour plus d'informations, consultez la rubrique Connexion à l'aide d'un client local (odpscmd).
-
Dans le répertoire
confde l'installation du client, modifiez le fichierodps_config.inien ajoutant la commande suivante à la dernière ligne.-- Enable MaxQA connection information caching. enable_interactive_mode=true enable_quota_cache=true(Optional) -
Exécutez le fichier de script dans le répertoire
binpour démarrer le client MaxCompute.ImportantPour les systèmes Linux/macOS : Exécutez le fichier de script
odpscmd.Windows : Double-cliquez sur le fichier
odpscmd.bat.
-
Avant d'exécuter une tâche, exécutez la commande suivante. Les tâches suivantes du client s'exécuteront en mode MaxQA sur le groupe de quotas interactifs correspondant.
USE QUOTA <name_of_the_interactive_quota_group>;
Utilisation de DataWorks DataStudio
MaxQA est pris en charge uniquement dans les espaces de travail qui utilisent la nouvelle version de DataStudio, actuellement en bêta publique. Si vous utilisez une version antérieure de DataStudio, vous devez effectuer la mise à niveau vers la nouvelle version pour utiliser MaxQA. Pour plus d'informations, consultez la rubrique Activer la nouvelle version de DataStudio.
Connectez-vous à la console DataWorks et sélectionnez une région dans le coin supérieur gauche.
Dans le volet de navigation de gauche, choisissez .
Select Workspace, puis cliquez sur Go to Data Studio.
Sur la page Data Development, cliquez sur Run Configuration à droite .
-
Sur la page Debugging Configurations, sélectionnez le projet MaxCompute lié à cet espace de travail pour Computing Resource. Le tableau suivant décrit comment sélectionner le quota de calcul pour chaque scénario :
RemarqueEnvironnement d'exécution : Les tâches s'exécutent dans le module d'analyse des données ou de développement des données. Le basculement de l'interactif vers le mode hors ligne ne s'applique pas.
Environnement d'exécution de secours : Les tâches s'exécutent dans le module de planification. Si le mode interactif est spécifié, vous pouvez également configurer un basculement vers le mode hors ligne en cas d'échec du mode interactif.
Sélection du quota de calcul
Quota spécifié / Règle de routage
Mode d'exécution attendu
Configuration de la planification et basculement attendu
Quota par défaut du projet
Si une règle de routage hors ligne existe, la règle de routage s'applique. Les règles de routage interactives ne s'appliquent pas.
Le quota par défaut du projet est un quota hors ligne. Les tâches s'exécutent sur le quota hors ligne.
Les tâches s'exécutent sur le quota hors ligne. Le basculement ne s'applique pas.
Quota spécifié
Sélectionnez un quota hors ligne.
Les tâches s'exécutent sur le quota hors ligne.
Les tâches s'exécutent sur le quota hors ligne. Le basculement ne s'applique pas.
Quota spécifié
Sélectionnez un quota interactif.
Les tâches s'exécutent sur l'instance MaxQA correspondant au groupe de quotas interactifs.
Dans Scheduling Configuration : si le basculement est désactivé, aucune tentative de basculement n'est effectuée ; si le quota par défaut du projet est sélectionné, le quota par défaut du projet est utilisé pour le basculement (les règles de routage hors ligne ne s'appliquent pas lors du basculement) ; si un quota spécifique est sélectionné, le quota hors ligne spécifié est utilisé pour le basculement.
Règle de routage en mode interactif
Seules des règles de routage hors ligne existent. Aucune règle de routage interactive correspondante n'est trouvée.
Une erreur est signalée :
Cannot find MCQA quota to start connection on project *****. Pour en créer un, consultez la rubrique Utilisation des quotas pour les ressources de calcul.Si le basculement est désactivé, aucune tentative de basculement n'est effectuée ; si le quota par défaut du projet est sélectionné, le quota par défaut du projet est utilisé pour le basculement ; si un quota spécifique est sélectionné, le quota hors ligne spécifié est utilisé pour le basculement.
Règle de routage en mode interactif
Une règle de routage interactive correspondante existe.
Les tâches s'exécutent sur l'instance MaxQA correspondant au groupe de quotas interactifs.
Une fois la configuration terminée, les tâches sur le nœud SQL sont planifiées sur l'instance MaxQA correspondant au groupe de quotas interactifs.
Pour plus d'informations, consultez la rubrique Créer un nœud MaxCompute SQL dans DataWorks.
Utilisation de SQL Analysis dans la console
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 .
Après avoir saisi vos instructions SQL dans l'éditeur SQL, cliquez sur Run Configurations à droite pour configurer le Project et le Computing Quota.
Sélectionnez les ressources de calcul correspondant au groupe de quotas interactifs.
Une fois la configuration terminée, les tâches sur la page SQL Analysis sont planifiées sur l'instance MaxQA correspondant au groupe de quotas interactifs.
Pour plus d'informations, consultez la rubrique SQL Analysis.
Utilisation de MaxCompute Studio
Assurez-vous d'avoir installé MaxCompute Studio et de l'avoir connecté à votre projet MaxCompute. Pour utiliser MaxQA, exécutez un script :
Installez et configurez MaxCompute Studio v4.3.2 ou version ultérieure. Pour plus d'informations, consultez la rubrique Installer MaxCompute Studio.
Créez un projet MaxCompute Studio et connectez-le à votre projet MaxCompute. Pour plus d'informations, consultez la rubrique Gérer les connexions de projet.
Créez un script MaxCompute SQL dans le projet. Pour plus d'informations, consultez la rubrique Développer et soumettre un script SQL.
-
Dans le script MaxCompute SQL, saisissez les instructions SQL. Dans la liste déroulante Execution Mode, sélectionnez MaxQA.
-
Cliquez sur le bouton Specify additional parameters
, saisissez le nom du groupe de quotas interactifs, puis cliquez sur OK. Exécutez le script. La tâche utilise désormais la fonctionnalité d'accélération des requêtes MaxQA.
Utilisation de JDBC
Pour activer MaxQA lors de la connexion à MaxCompute via JDBC : pour plus d'informations sur les connexions JDBC, consultez le Guide d'utilisation.
Téléchargez le code source avec prise en charge de MaxQA.
-
Configurez la dépendance POM dans Maven.
<dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-jdbc</artifactId> <version>${Latest Version}</version> </dependency>ImportantDans le code ci-dessus,
Latest Versionest un espace réservé. Remplacez-le par un numéro de version spécifique du SDK pour compiler correctement le projet. Consultez les Versions GitHub pour afficher toutes les versions publiées d'odps-jdbc. Nous vous recommandons d'utiliser la dernière version. Le format du numéro de version est X.X.X. -
Créez un programme Java à partir du code source, en l'adaptant à votre environnement. Pour plus d'informations, consultez la documentation MaxCompute JDBC. L'exemple de code suivant illustre cette procédure.
import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class MaxCompute { private static final String DRIVER_NAME = "com.aliyun.odps.jdbc.OdpsDriver"; // An AccessKey ID of an Alibaba Cloud account has permissions to call all API operations. This is a high-risk operation. We recommend that you create and use a RAM user to call API operations or perform routine O&M. To create a RAM user, log on to the RAM console. // In this example, the AccessKey ID and AccessKey Secret are stored in environment variables. You can also store them in a configuration file based on your business needs. // We strongly recommend that you do not hard-code the AccessKey ID and AccessKey Secret in your code. This poses a security risk. private static String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); private static String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); public static void main(String[] args) throws SQLException { try { Class.forName(DRIVER_NAME); } catch (ClassNotFoundException e) { e.printStackTrace(); System.exit(1); } Connection conn = DriverManager.getConnection( "jdbc:odps:https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000", MaxCompute.accessId, MaxCompute.accessKey); // create a table Statement stmt = conn.createStatement(); final String tableName = "jdbc_test11"; stmt.execute("DROP TABLE IF EXISTS " + tableName); stmt.execute("CREATE TABLE " + tableName + " (key BIGINT, value STRING)"); // get meta data DatabaseMetaData metaData = conn.getMetaData(); System.out.println("product = " + metaData.getDatabaseProductName()); System.out.println("jdbc version = " + metaData.getDriverMajorVersion() + ", " + metaData.getDriverMinorVersion()); ResultSet tables = metaData.getTables(null, "default", tableName, null); while (tables.next()) { String name = tables.getString("TABLE_NAME"); System.out.println("inspecting table: " + name); ResultSet columns = metaData.getColumns(null, null, name, null); while (columns.next()) { System.out.println( columns.getString("COLUMN_NAME") + "\t" + columns.getString("TYPE_NAME") + "(" + columns.getInt("DATA_TYPE") + ")"); } columns.close(); } tables.close(); stmt.close(); conn.close(); } }
Le code suivant présente un exemple de chaîne de connexion JDBC.
// your_quota_group_name is the name of the interactive quota group that you want to use.
jdbc:odps:<MaxCompute_endpoint>?
project=<MaxCompute_project_name>&interactiveMode=true"aName=your_quota_group_name&enableLimit=false&enableOdpsLogger=true
|
Paramètre |
Description |
|
MaxCompute_endpoint |
L'endpoint de la région où se trouve le service MaxCompute. Pour plus d'informations, consultez les Endpoints. |
|
MaxCompute_project_name |
Le nom du projet MaxCompute. |
|
interactiveMode |
L'interrupteur de la fonctionnalité MaxQA. Définissez la valeur sur |
|
quotaName |
Le nom du groupe de quotas interactifs que vous souhaitez utiliser. |
|
enableLimit |
Indique s'il est autorisé de télécharger plus de 10 000 lignes de données. |
|
enableOdpsLogger |
Active l'impression des journaux. Recommandé si SLF4J n'est pas configuré. |
Utilisation d'outils BI
Vous pouvez vous connecter à MaxQA à l'aide d'outils BI tels que Tableau, Quick BI, Guandata BI et SQL Workbench/J .
Tableau
Ajoutez la propriété interactiveMode=true et la propriété quotaName=your_quota_nick_name au chemin de l'URL du serveur pour activer la fonctionnalité MaxQA. Nous vous recommandons également d'ajouter la propriété enableOdpsLogger=true pour imprimer les journaux. Pour les étapes détaillées, consultez la section Configurer JDBC pour utiliser Tableau.
-
Format de l'URL :
<MaxCompute_endpoint>?project=<MaxCompute_project_name>&charset=UTF-8&interactiveMode=true"aName=<your_quota_group_name>&autoSelectLimit=1000000000Paramètre
Obligatoire
Description
MaxCompute_endpoint
Oui
L'endpoint de la région où se trouve le service MaxCompute. Pour plus d'informations, consultez l'Endpoint. Par exemple, l'endpoint de la région Chine (Hangzhou) est
https://service.cn-hangzhou.maxcompute.aliyun.com/api.MaxCompute_project_name
Oui
Le nom du projet MaxCompute, par exemple
maxqatomax.your_quota_group_name
Oui
Le nom du groupe de quotas interactifs, par exemple
maxfor1.Dans l'onglet General de la boîte de dialogue de connexion Alibaba MaxCompute, saisissez l'URL construite dans le champ Server. Saisissez votre AccessKey ID dans le champ Username et votre AccessKey Secret dans le champ Password. Cliquez ensuite sur Sign In.
-
Exemple d'URL :
https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000
Quick BI
Connectez-vous à la console Quick BI.
Dans le volet de navigation de gauche, sélectionnez Data Sources, puis cliquez sur Create Data Source dans le coin supérieur droit.
Sur la page Create data source, sélectionnez MaxCompute.
Sur la page Configure connection, pour Quota computing resource group, saisissez le nom de la ressource de calcul Quota MaxQA pour activer la fonctionnalité MaxQA et utiliser les ressources de calcul MaxQA. Pour plus d'informations, consultez la section Connexion Quick BI à MaxCompute.
Par exemple, dans le champ Quota Computing Resource Group, saisissez maxqa (le nom du quota MaxQA).
Guandata BI
-
Ajoutez un pilote.
Téléchargez le pilote MaxCompute JDBC Driver v3.8.5 ou une version ultérieure vers Guandata BI. Pour plus d'informations, consultez les documents MaxCompute JDBC et les Notes de version.
Dans le coin supérieur droit de la console Guandata BI, cliquez sur l'icône
pour accéder au Management Center.Cliquez sur System Settings > General Settings, puis accédez à la page Drivers and Connectors.
Dans l'onglet Driver Management, cliquez sur Add Driver, saisissez un Driver Name et enregistrez la configuration.
Cliquez sur le nom du nouveau pilote. Dans la section Driver List, cliquez sur Upload File pour télécharger le pilote MaxCompute JDBC. Sélectionnez ensuite com.aliyun.odps.jdbc.OdpsDriver pour Driver et cliquez sur Apply.
-
Créez un compte de données pour vous connecter à la source de données MaxCompute en utilisant MaxQA.
Dans la barre de menu supérieure, cliquez sur Data Preparation.
-
Dans le volet de gauche, cliquez sur l'onglet Data Account. Dans le coin supérieur droit, cliquez sur New Data Account et configurez le compte comme indiqué.
Paramètre
Description
Sélectionner le connecteur
Sélectionnez MaxCompute.
Configurer le compte de données
Méthode de connexion
Sélectionnez JDBC URL.
ID de connexion
L'AccessKey ID de votre compte Alibaba Cloud.
Clé de connexion
L'AccessKey Secret de votre compte Alibaba Cloud.
URL JDBC
Le format d'URL pour la chaîne de connexion MaxQA JDBC est le suivant :
jdbc:odps:<maxcompute_endpoint>?project=<maxcompute_projectName>&charset=UTF-8&interactiveMode=true"aName=<your_quota_nickName>&autoSelectLimit=1000000000.Le tableau suivant décrit les paramètres.
maxcompute_endpoint: l'endpoint de la région où se trouve le service MaxCompute. Pour plus d'informations, consultez l'Endpoint. Par exemple, l'endpoint de la région Chine (Hangzhou) esthttps://service.cn-hangzhou.maxcompute.aliyun.com/api.maxcompute_projectName: le nom du projet MaxCompute, par exemplemaxqatomax.your_quota_nickName: le nom du groupe de quotas interactifs à utiliser, par exemplemaxfor1. Pour savoir comment créer un groupe de quotas interactifs, consultez la section Gestion des quotas - Ressources de calcul.
Exemple :
jdbc:odps:https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000Version SQL
Sélectionnez 2,0/hive compatibility mode.
Connexions maximales
La valeur par défaut est 16.
pilote
Sélectionnez Custom, puis sélectionnez le pilote que vous avez créé.
Cliquez sur Test Connection. Une fois le message Connection Successful affiché, cliquez sur Next.
Confirmez les informations du compte de données, saisissez un Display Name personnalisé, puis cliquez sur Confirm and Create.
SQL Workbench/J
Dans la configuration du profil, modifiez l'URL JDBC pour activer MaxQA dans SQL Workbench/J. Pour plus d'informations, consultez la section Configurer SQL Workbench/J à l'aide de JDBC.
-
Format de l'URL :
jdbc:odps:<MaxCompute_endpoint>? project=<MaxCompute_project_name>&charset=UTF-8&interactiveMode=true"aName=<your_quota_group_name>&autoSelectLimit=1000000000Paramètre
Obligatoire
Description
MaxCompute_endpoint
Oui
L'endpoint de la région du service MaxCompute. Pour plus d'informations, consultez l'Endpoint. Par exemple, pour la région Chine (Hangzhou), l'endpoint est
https://service.cn-hangzhou.maxcompute.aliyun.com/api.MaxCompute_project_name
Oui
Le nom du projet MaxCompute, par exemple
maxqatomax.your_quota_group_name
Oui
Le nom du groupe de quotas interactifs que vous souhaitez utiliser, par exemple
maxfor1. -
Exemple d'URL :
jdbc:odps:https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true"aName=maxfor1&autoSelectLimit=1000000000
Utilisation du SDK Java
Pour plus d'informations sur le SDK Java, consultez l'Introduction au SDK Java.
-
Configurez la dépendance POM dans Maven. Le code suivant présente un exemple.
<dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-sdk-core</artifactId> <version>${Latest Version}</version> </dependency>ImportantDans le code ci-dessus,
Latest Versionest un espace réservé. Vous devez le remplacer par un numéro de version spécifique du SDK pour compiler correctement le projet. Consultez les Versions GitHub pour afficher toutes les versions publiées d'odps-sdk-core. Nous vous recommandons d'utiliser la dernière version. Le format du numéro de version est X.X.X-public. -
Créez un programme Java. Le code suivant présente un exemple.
import com.aliyun.odps.Odps; import com.aliyun.odps.OdpsException; import com.aliyun.odps.account.Account; import com.aliyun.odps.account.AliyunAccount; import com.aliyun.odps.sqa.ExecuteMode; import com.aliyun.odps.sqa.SQLExecutor; import com.aliyun.odps.sqa.SQLExecutorBuilder; import java.util.HashMap; import java.util.Map; public class MaxCompute { public static void main(String args[]) { // Set the account and project information. // An AccessKey ID of an Alibaba Cloud account has permissions to call all API operations. This is a high-risk operation. We recommend that you create and use a RAM user to call API operations or perform routine O&M. To create a RAM user, log on to the RAM console. // In this example, the AccessKey ID and AccessKey Secret are stored in environment variables. You can also store them in a configuration file based on your business needs. // We strongly recommend that you do not hard-code the AccessKey ID and AccessKey Secret in your code. This poses a security risk. Account account = new AliyunAccount(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); Odps odps = new Odps(account); odps.setDefaultProject("maxqatomax"); odps.setEndpoint("https://service.cn-hangzhou.maxcompute.aliyun.com/api"); // Prepare to build the SQLExecutor. SQLExecutorBuilder builder = SQLExecutorBuilder.builder(); SQLExecutor sqlExecutor = null; try { // Create an executor that uses MaxQA mode by default. // enableMcqaV2(true) enables MaxQA mode sqlExecutor = builder.odps(odps) .executeMode(ExecuteMode.INTERACTIVE) .quotaName("maxfor1") .enableMcqaV2(true) .build(); // If needed, you can pass custom settings for the query. Map<String, String> queryHint = new HashMap<>(); queryHint.put("odps.sql.mapper.split.size", "128"); // Submit a query job. You can pass hints. sqlExecutor.run("select count(1) from test_table;", queryHint); // The Logview of the current query job. System.out.println("Logview:" + sqlExecutor.getLogView()); // The instance ID of the current query job. System.out.println("InstanceId:" + sqlExecutor.getQueryId()); } catch (OdpsException e) { e.printStackTrace(); } finally { if (sqlExecutor != null) { // Close the executor to release resources. sqlExecutor.close(); } } } }
Utilisation de PyODPS
PyODPS v0.12.1 et versions ultérieures prennent en charge MaxQA. Le code suivant présente un exemple.
import os
from odps import ODPS
# Set the account and project information.
# Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET
# environment variables are set to your AccessKey ID and AccessKey Secret.
# We do not recommend that you use the AccessKey ID and AccessKey Secret strings directly.
o = ODPS(
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
project='maxto****',
endpoint='https://service.cn-hangzhou.maxcompute.aliyun.com/api',
)
# If needed, you can pass custom settings for the query.
hints = {"odps.sql.mapper.split.size": "128"}
inst = o.execute_sql_interactive(
'select count(1) from test_table',
use_mcqa_v2=True,
quota_name='maxfor1',
# Set quota_name to the name of the interactive quota group for the MaxQA instance.
hints=hints,
)
# The Logview of the current query job.
print(inst.get_logview_address())
# The instance ID of the current query job.
print(inst.id)
# Read data row by row.
with inst.open_reader() as reader:
result = [res.values for res in reader]
Utilisation de PyODPS avec SQLAlchemy ou d'autres outils tiers prenant en charge SQLAlchemy pour l'accélération des requêtes
PyODPS v0.12.2 et versions ultérieures permettent d'interroger les données MaxCompute via MaxQA en utilisant SQLAlchemy. Spécifiez les paramètres suivants dans la chaîne de connexion.
|
Paramètre |
Obligatoire |
Description |
|
interactive_mode=v2 |
Oui |
L'interrupteur principal de la fonctionnalité d'accélération des requêtes. |
|
quota_name=<YOUR_INTERACTIVE_QUOTA_GROUP_NAME> |
Oui |
Le nom du groupe de quotas interactifs. |
|
reuse_odps=true |
Non |
Active la réutilisation forcée de la connexion. Pour certains outils tiers, tels qu'Apache Superset, cette option peut améliorer les performances. |
Par exemple, la chaîne de connexion suivante active MaxQA et la réutilisation forcée de la connexion.
odps://<access_id>:<ACCESS_KEY>@<project>/?endpoint=<endpoint>"a_name=<YOUR_INTERACTIVE_QUOTA_GROUP_NAME>&interactive_mode=v2&reuse_odps=true
Vérifier si un job utilise le mode MaxQA
À partir de la page Logview
Une fois un job terminé, accédez à sa page Logview pour vérifier qu'il s'est exécuté en mode MaxQA. Vérifiez les points suivants :
L'InstanceId MaxCompute se termine par
_mcqa.Le surnom du quota correspond au nom du quota interactif spécifié.
Dans l'onglet Summary, le mode d'exécution du job est
mcqa 2.0.
À partir de la page Job O&M
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 Jobs, cliquez sur l'onglet Regular Job List et définissez Job Type sur MCQA2 pour afficher les jobs MaxQA dans une Time Range spécifiée.