Todos os produtos
Search
Central de documentação

MaxCompute:Aceleração de Consultas MaxQA

Última atualização: Oct 19, 2026

O mecanismo MaxQA (MaxCompute Query Accelerator) otimiza o desempenho de consultas para cenários de quase tempo real. Ele opera em um pool de recursos de computação de consultas dedicado e otimiza o plano de controle, o otimizador de consultas, o mecanismo de execução, o mecanismo de armazenamento e o mecanismo de cache. O MaxQA é ideal para cenários de BI, análise interativa e data warehouses de quase tempo real que exigem baixa latência e alta estabilidade.

Disponibilidade do service

Cronograma de disponibilidade por região

Região

Disponibilidade geral

China (Hangzhou)

24 de novembro de 2025

China (Shanghai)

China (Beijing)

China (Shenzhen)

China (Ulanqab)

China (Hong Kong)

27 de novembro de 2025

Japan (Tokyo)

Singapore

Indonesia (Jakarta)

Germany (Frankfurt)

US (Silicon Valley)

US (Virginia)

UAE (Dubai)

Observações

Os novos grupos de cota interativa usam o modo MaxQA por padrão. As instâncias MaxQA existentes não são afetadas.

Operações básicas do MaxQA

Crie uma instância MaxQA

O MaxQA está disponível apenas para projetos do MaxCompute que utilizam o método de faturamento por assinatura. Para criar uma instância MaxQA:

  1. Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.

  2. No painel de navegação à esquerda, escolha Manage Configurations > Quotas .

  3. Na página Quotas, clique em Quota Configuration na coluna Actions da cota de destino.

  4. Configuração básica

    1. Na página Quota Configuration, selecione a guia Basic Configurations e clique em Edit Basic Configurations.

    2. Clique em Add Level-2 Quota, insira um Quota Name e selecione Interactive para o Type.

      • Ao usar o MaxQA, especifique um Quota Name. Recomendamos o uso de um nome relacionado aos atributos do seu negócio para distinguir várias instâncias.

      • As cotas Interactive são dedicadas à execução de jobs de aceleração de consultas (MaxQA).

  5. Clique em OK.

Após criar a instância, o status do grupo de cota interativa correspondente muda para Starting. Aguarde de 5 a 8 minutos até que o status mude para Running. Em seguida, você poderá usar a instância.

Exclua uma instância MaxQA

  1. Na página Quotas, clique em Quota Configuration na coluna Actions da cota de destino.

  2. Na página Quota Configuration, selecione a guia Basic Configurations e, em seguida, clique em Delete na coluna Actions da cota interativa de destino.

A exclusão é executada em segundo plano. A página não exibe atualizações de status nem o progresso da exclusão.

Dimensione uma instância MaxQA

Você pode aumentar ou reduzir a escala de um grupo de cota interativa de acordo com as necessidades do seu negócio:

  1. Na página Quotas, clique em Quota Configuration na coluna Actions da cota de destino.

  2. Na página Quota Configuration, selecione a guia Basic Configurations e clique em Edit Basic Configurations.

  3. Clique em Add Level-2 Quota e ajuste as Reserved CUs [minCU,maxCU] do grupo de cota interativa que você deseja expandir ou recolher. Um valor maior indica uma expansão, e um valor menor indica uma redução.

    Nota
    • O incremento mínimo para CUs é 25.

    • A CU mínima deve ser de pelo menos 25. Para garantir a estabilidade, defina a CU mínima como 50 ou mais. Se os recursos interativos não forem necessários, defina o valor como 0 ou exclua o grupo de cota.

    • Limitação de cota interativa:

      • As Elastically Reserved CUs não são suportadas para cotas interativas.

      • Para garantir o desempenho e a estabilidade da aceleração de consultas, defina a CU mínima igual à CU máxima em uma cota interativa.

  4. Clique em OK.

    O ajuste das CUs reservadas para o grupo de cota interativa será iniciado.

Scaling Out ou Scaling In aparece na coluna Actions do grupo de cota interativa. A expansão leva de 5 a 8 minutos. A redução pode levar mais tempo, dependendo de quando os jobs em execução forem concluídos. No pior cenário, o sistema pode precisar aguardar o tempo limite dos jobs nas máquinas que estão sendo removidas antes que a operação de redução seja iniciada. Seus jobs não são afetados durante as operações de dimensionamento.

Configure o dimensionamento baseado em tempo para o MaxQA

Você pode configurar um plano de dimensionamento baseado em tempo para o dimensionamento agendado:

  1. Na página Quotas, clique em Quota Configuration na coluna Actions da cota de destino.

  2. Na página Quota Configuration, selecione a guia Scaling Configuration.

  3. Configurar um plano de dimensionamento baseado em tempo

    1. Na guia Scaling Configuration, clique em Add Configuration Plan. Na caixa de diálogo Add Configuration Plan, insira um Configuration Plan Name e configure as Reserved CUs [minCU,maxCU] para a cota de nível 2.

    2. Para modificar um plano de configuração existente:

      Na guia Scaling Configuration, clique em Edit na coluna Actions do plano de destino para atualizá-lo.

  4. Configurar um agendamento baseado em tempo

    1. Na guia Scaling Configuration, clique em Edit Time Plan na seção Scheduled Scaling Management.

    2. Clique em Add Effective Period e, em seguida, selecione um Effective start time e um Configuration Plan.

      Isso permite ativar diferentes planos de configuração de cota em diferentes horários do dia. Para obter mais informações, consulte Manage compute resources and quotas.

Política de agendamento

Ao enviar um job, especifique o nome do grupo de cota interativa no cliente ou na string de conexão JDBC. O job será então agendado para execução na instância MaxQA correspondente.

Política de fallback

O MaxQA suporta uma política de fallback. Quando ativada, as tarefas do MaxQA que falham devido a exceções do sistema retornam automaticamente ao modo em lote. Ative a política de fallback das seguintes maneiras:

  • JDBC (versão 3.10.7 ou posterior): O fallback é ativado por padrão. Defina disableFallback para desativá-lo e use fallbackQuota para especificar a cota de destino.

  • Java SDK: MaxQAConnInfo.builder().fallbackInfo(FallbackInfo.enable("<offline_quota>")).build()

  • DataWorks: Configure as regras de fallback nas configurações de agendamento do DataStudio. Para obter mais informações, consulte Using DataWorks DataStudio.

Métodos de acesso

Você pode acessar o MaxQA pelos seguintes métodos:

Uso do cliente MaxCompute

  1. Instale e configure o cliente MaxCompute (odpscmd) v0.51.1 ou posterior. Para mais informações, consulte Connect by using a local client (odpscmd).

  2. No diretório conf da instalação do cliente, modifique o arquivo odps_config.ini adicionando o seguinte comando na última linha.

    -- Enable MaxQA connection information caching.
    enable_interactive_mode=true
    enable_quota_cache=true(Optional) 
  3. Execute o arquivo de script no diretório bin para iniciar o cliente MaxCompute.

    Importante
    • Para sistemas Linux/macOS: Execute o arquivo de script odpscmd.

    • Windows: Clique duas vezes no arquivo odpscmd.bat.

  4. Antes de executar um job, execute o comando a seguir. Os jobs subsequentes do cliente serão executados no modo MaxQA no grupo de cotas interativas correspondente.

    USE QUOTA <name_of_the_interactive_quota_group>;

Uso do DataWorks DataStudio

Importante

O MaxQA é compatível apenas com workspaces que usam a nova versão do DataStudio, atualmente em preview público. Se você estiver usando uma versão anterior do DataStudio, será necessário fazer o upgrade para a nova versão para usar o MaxQA. Para mais informações, consulte Enable the new version of DataStudio.

  1. Faça login no console do DataWorks e selecione uma região no canto superior esquerdo.

  2. No painel de navegação à esquerda, escolha Data Development and O&M > Data Development.

  3. Em Select Workspace, clique em Go to Data Studio.

  4. Na página Data Development, clique em Run Configuration à direita .

  5. Na página Debugging Configurations, selecione o recurso do projeto MaxCompute vinculado a este workspace para Computing Resource. A tabela a seguir descreve como selecionar a cota de computação para cada cenário:

    Nota
    • Ambiente de execução: Os jobs são executados no módulo de análise ou desenvolvimento de dados. O fallback de interativo para offline não se aplica.

    • Ambiente de execução de fallback: Os jobs são executados no módulo de agendamento. Se o modo interativo for especificado, você também poderá configurar o fallback para o modo offline quando o modo interativo falhar.

    Seleção de cota de computação

    Cota / Regra de roteamento especificada

    Modo de execução esperado

    Configuração de agendamento e fallback esperado

    Cota padrão do projeto

    Se existir uma regra de roteamento offline, a regra de roteamento entrará em vigor. As regras de roteamento interativo não se aplicam.

    A cota padrão do projeto é uma cota offline. Os jobs são executados na cota offline.

    Os jobs são executados na cota offline. O fallback não se aplica.

    Cota especificada

    Selecione uma cota offline.

    Os jobs são executados na cota offline.

    Os jobs são executados na cota offline. O fallback não se aplica.

    Cota especificada

    Selecione uma cota interativa.

    Os jobs são executados na instância do MaxQA que corresponde ao grupo de cotas interativas.

    Em Scheduling Configuration: se o fallback estiver desativado, nenhuma tentativa de fallback será feita; se a cota padrão do projeto for selecionada, a cota padrão do projeto será usada para o fallback (as regras de roteamento offline não se aplicam no fallback); se uma cota específica for selecionada, a cota offline especificada será usada para o fallback.

    Regra de roteamento do modo interativo

    Existem apenas regras de roteamento offline. Nenhuma regra de roteamento interativo correspondente é encontrada.

    Um erro é relatado: Cannot find MCQA quota to start connection on project *****. Para criar uma, consulte Using quotas for computing resources.

    Se o fallback estiver desativado, nenhuma tentativa de fallback será feita; se a cota padrão do projeto for selecionada, a cota padrão do projeto será usada para o fallback; se uma cota específica for selecionada, a cota offline especificada será usada para o fallback.

    Regra de roteamento do modo interativo

    Existe uma regra de roteamento interativo correspondente.

    Os jobs são executados na instância do MaxQA que corresponde ao grupo de cotas interativas.

  6. Após concluir a configuração, os jobs no nó SQL serão agendados para a instância do MaxQA que corresponde ao grupo de cotas interativas.

Para mais informações, consulte Create a MaxCompute SQL node in DataWorks.

Uso do SQL Analysis no console

  1. Faça login no console do MaxCompute e selecione uma região no canto superior esquerdo.

  2. No painel de navegação à esquerda, escolha Data Exploration > SQL Analysis.

  3. Após inserir suas instruções SQL no editor SQL, clique em Run Configurations à direita para configurar o Project e a Computing Quota.

  4. Selecione os recursos de computação que correspondem ao grupo de cotas interativas.

  5. Após concluir a configuração, os jobs na página SQL Analysis serão agendados para a instância do MaxQA que corresponde ao grupo de cotas interativas.

Para mais informações, consulte SQL Analysis.

Uso do MaxCompute Studio

Certifique-se de ter instalado o MaxCompute Studio e de tê-lo conectado ao seu projeto MaxCompute. Para usar o MaxQA, execute um script:

  1. Instale e configure o MaxCompute Studio v4.3.2 ou posterior. Para mais informações, consulte Install MaxCompute Studio.

  2. Crie um projeto do MaxCompute Studio e conecte-o ao seu projeto MaxCompute. Para mais informações, consulte Manage project connections.

  3. Crie um script SQL do MaxCompute no projeto. Para mais informações, consulte Develop and submit an SQL script.

  4. No script SQL do MaxCompute, insira instruções SQL. Na lista suspensa Execution Mode, selecione MaxQA.

  5. Clique no botão Specify additional parameters image, insira o nome do grupo de cotas interativas e clique em OK.

  6. Execute o script. O job agora usa o recurso de aceleração de consultas do MaxQA.

Uso de JDBC

Para ativar o MaxQA ao se conectar ao MaxCompute usando JDBC: Para mais informações sobre conexões JDBC, consulte User guide.

  1. Baixe o source com suporte ao MaxQA.

  2. Configure a dependência POM no Maven.

    <dependency>
       <groupId>com.aliyun.odps</groupId>
       <artifactId>odps-jdbc</artifactId>
       <version>${Latest Version}</version>
    </dependency>
    Importante

    No código anterior, Latest Version é um espaço reservado. Substitua-o por um número de versão específico do SDK para compilar o projeto com êxito. Acesse o GitHub Releases para visualizar todas as versões lançadas do odps-jdbc. Recomendamos o uso da versão mais recente. O formato do número da versão é X.X.X.

  3. Crie um programa Java a partir do source, adaptando-o para o seu ambiente. Para mais informações, consulte MaxCompute JDBC. O código a seguir fornece um exemplo.

    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&quotaName=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();
        }
    }

O código a seguir mostra um exemplo de string de conexão 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&quotaName=your_quota_group_name&enableLimit=false&enableOdpsLogger=true

Parâmetro

Descrição

MaxCompute_endpoint

O endpoint da região onde o service MaxCompute está localizado. Para mais informações, consulte Endpoints.

MaxCompute_project_name

O nome do projeto MaxCompute.

interactiveMode

O alternador para o recurso MaxQA. Defina como true para ativar.

quotaName

O nome do grupo de cotas interativas que você deseja usar.

enableLimit

Especifica se permite o download de mais de 10.000 linhas de dados.

enableOdpsLogger

Ativa a impressão de logs. Recomendado se o SLF4J não estiver configurado.

Uso de ferramentas de BI

Você pode se conectar ao MaxQA usando ferramentas de BI como Tableau, Quick BI, Guandata BI e SQL Workbench/J .

Tableau

Adicione a propriedade interactiveMode=true e a propriedade quotaName=your_quota_nick_name ao caminho da URL do servidor para ativar o recurso MaxQA. Recomendamos também adicionar a propriedade enableOdpsLogger=true para imprimir logs. Para etapas detalhadas, consulte Configure JDBC to use Tableau.

  • Formato da URL:

    <MaxCompute_endpoint>?project=<MaxCompute_project_name>&charset=UTF-8&interactiveMode=true&quotaName=<your_quota_group_name>&autoSelectLimit=1000000000

    Parâmetro

    Obrigatório

    Descrição

    MaxCompute_endpoint

    Sim

    O endpoint da região onde o service MaxCompute está localizado. Para mais informações, consulte Endpoints. Por exemplo, o endpoint para a região China (Hangzhou) é https://service.cn-hangzhou.maxcompute.aliyun.com/api.

    MaxCompute_project_name

    Sim

    O nome do projeto MaxCompute, como maxqatomax.

    your_quota_group_name

    Sim

    O nome do grupo de cotas interativas, como maxfor1.

    Na aba General da caixa de diálogo de conexão Alibaba MaxCompute, insira a URL construída no campo Server. Insira seu AccessKey ID no campo Username e seu AccessKey Secret no campo Password. Em seguida, clique em Sign In.

  • Exemplo de URL:

    https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true&quotaName=maxfor1&autoSelectLimit=1000000000

Quick BI

  1. Faça login no console do Quick BI.

  2. No painel de navegação à esquerda, selecione Data Sources e, no canto superior direito, clique em Create Data Source.

  3. Na página Create data source, selecione MaxCompute.

  4. Na página Configure connection, em Quota computing resource group, insira o nome do recurso de computação da MaxQA Quota para ativar o recurso MaxQA e usar os recursos de computação do MaxQA. Para mais informações, consulte Quick BI connection to MaxCompute.

Por exemplo, no campo Quota Computing Resource Group, insira maxqa (o nome da MaxQA Quota).

Guandata BI

  1. Adicione um driver.

    Faça o upload do MaxCompute JDBC Driver v3.8.5 ou posterior para o Guandata BI. Para mais informações, consulte MaxCompute JDBC e Release Notes.

    1. No canto superior direito do console do Guandata BI, clique no ícone image para acessar o Management Center.

    2. Clique em System Settings > General Settings e acesse a página Drivers and Connectors.

    3. Na aba Driver Management, clique em Add Driver, insira um Driver Name e salve a configuração.

    4. Clique no nome do novo driver. Na seção Driver List, clique em Upload File para fazer o upload do driver JDBC do MaxCompute. Em seguida, selecione com.aliyun.odps.jdbc.OdpsDriver para Driver e clique em Apply.

  2. Crie uma conta de dados para se conectar à fonte de dados do MaxCompute usando o MaxQA.

    1. Na barra de menu superior, clique em Data Preparation.

    2. No painel à esquerda, clique na aba Data Account. No canto superior direito, clique em New Data Account e configure a conta conforme as instruções.

      Parâmetro

      Descrição

      Selecionar conector

      Selecione MaxCompute.

      Configurar conta de dados

      Método de conexão

      Selecione JDBC URL.

      ID de logon

      O AccessKey ID da sua conta Alibaba Cloud.

      Chave de logon

      O AccessKey Secret da sua conta Alibaba Cloud.

      JDBC URL

      O formato da URL para a string de conexão JDBC do MaxQA é o seguinte: jdbc:odps:<maxcompute_endpoint>?project=<maxcompute_projectName>&charset=UTF-8&interactiveMode=true&quotaName=<your_quota_nickName>&autoSelectLimit=1000000000.

      A tabela a seguir descreve os parâmetros.

      • maxcompute_endpoint: O endpoint da região onde o service MaxCompute está localizado. Para mais informações, consulte Endpoints. Por exemplo, o endpoint para a região China (Hangzhou) é https://service.cn-hangzhou.maxcompute.aliyun.com/api.

      • maxcompute_projectName: O nome do projeto MaxCompute, como maxqatomax.

      • your_quota_nickName: O nome do grupo de cotas interativas a ser usado, como maxfor1. Para obter informações sobre como criar um grupo de cotas interativas, consulte Computing resource - Quota management.

      Exemplo:

      jdbc:odps:https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true&quotaName=maxfor1&autoSelectLimit=1000000000

      Versão do SQL

      Selecione 2.0/hive compatibility mode.

      Máximo de conexões

      O valor padrão é 16.

      driver

      Selecione Custom e, em seguida, selecione o driver que você criou.

    3. Clique em Test Connection. Após a exibição da mensagem Connection Successful, clique em Next.

    4. Confirme as informações da conta de dados, insira um Display Name personalizado e clique em Confirm and Create.

SQL Workbench/J

Na configuração do perfil, modifique a URL JDBC para ativar o MaxQA no SQL Workbench/J. Para mais informações, consulte Configure SQL Workbench/J by using JDBC.

  • Formato da URL:

    jdbc:odps:<MaxCompute_endpoint>?
    project=<MaxCompute_project_name>&charset=UTF-8&interactiveMode=true&quotaName=<your_quota_group_name>&autoSelectLimit=1000000000

    Parâmetro

    Obrigatório

    Descrição

    MaxCompute_endpoint

    Sim

    O endpoint da região do service MaxCompute. Para mais informações, consulte Endpoints. Por exemplo, para a região China (Hangzhou), o endpoint é https://service.cn-hangzhou.maxcompute.aliyun.com/api.

    MaxCompute_project_name

    Sim

    O nome do projeto MaxCompute, como maxqatomax.

    your_quota_group_name

    Sim

    O nome do grupo de cotas interativas que você deseja usar, como maxfor1.

  • Exemplo de URL:

    jdbc:odps:https://service.cn-hangzhou.maxcompute.aliyun.com/api?project=maxqatomax&charset=UTF-8&interactiveMode=true&quotaName=maxfor1&autoSelectLimit=1000000000

Uso do Java SDK

Para mais informações sobre o Java SDK, consulte Java SDK introduction.

  1. Configure a dependência POM no Maven. O código a seguir mostra um exemplo.

    <dependency>
      <groupId>com.aliyun.odps</groupId>
      <artifactId>odps-sdk-core</artifactId>
      <version>${Latest Version}</version>
    </dependency>
    Importante

    No código anterior, Latest Version é um espaço reservado. Você deve substituí-lo por um número de versão específico do SDK para compilar o projeto com êxito. Acesse o GitHub Releases para visualizar todas as versões lançadas do odps-sdk-core. Recomendamos o uso da versão mais recente. O formato do número da versão é X.X.X-public.

  2. Crie um programa Java. O código a seguir fornece um exemplo.

    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();
                }
            }
        }
    }

Uso do PyODPS

O PyODPS v0.12.1 e versões posteriores oferecem suporte ao MaxQA. O código a seguir mostra um exemplo.

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]

Uso do PyODPS com SQLAlchemy ou outras ferramentas de terceiros compatíveis com SQLAlchemy para aceleração de consultas

O PyODPS v0.12.2 e versões posteriores oferecem suporte à consulta de dados do MaxCompute por meio do MaxQA usando o SQLAlchemy. Especifique os seguintes parâmetros na string de conexão.

Parâmetro

Obrigatório

Descrição

interactive_mode=v2

Sim

A chave principal para o recurso de aceleração de consultas.

quota_name=<YOUR_INTERACTIVE_QUOTA_GROUP_NAME>

Sim

O nome do grupo de cotas interativas.

reuse_odps=true

Não

Ativa a reutilização forçada de conexão. Para algumas ferramentas de terceiros, como o Apache Superset, esta opção pode melhorar o desempenho.

Por exemplo, a string de conexão a seguir ativa o MaxQA e a reutilização forçada de conexão.

odps://<access_id>:<ACCESS_KEY>@<project>/?endpoint=<endpoint>&quota_name=<YOUR_INTERACTIVE_QUOTA_GROUP_NAME>&interactive_mode=v2&reuse_odps=true

Como verificar se um job usa o modo MaxQA

A partir da página Logview

Após a conclusão de um job, acesse sua página Logview para verificar se ele foi executado no modo MaxQA. Verifique o seguinte:

  • O InstanceId do MaxCompute termina com _mcqa.

  • O apelido da cota é o nome da cota interativa especificada.

  • Na aba Summary, o modo de execução do job é mcqa 2.0.

A partir da página Job O&M

  1. Faça login no console do MaxCompute e selecione uma região no canto superior esquerdo.

  2. No painel de navegação à esquerda, escolha Observation O&M > Jobs.

  3. Na página Jobs, clique na aba Regular Job List e defina Job Type como MCQA2 para visualizar os jobs do MaxQA dentro de um Time Range especificado.