Todos os produtos
Search
Central de documentação

AnalyticDB:Parâmetros de configuração e hints

Última atualização: Jul 04, 2026

O AnalyticDB for MySQL oferece duas formas de configurar parâmetros:

  • **SET ADB_CONFIG KEY=VALUE** — aplica a definição em todo o cluster (escopo global).

  • Hints (/*+ KEY=VALUE*/) — aplicam a definição apenas a uma única instrução SQL.

Ao configurar o mesmo parâmetro com ambos os métodos, o hint tem precedência.

A partir da versão 3.2.5 do cluster Milvus, o sistema valida o tipo de configuração.

Parâmetros de configuração comuns

Para visualizar e atualizar a versão secundária do seu cluster, acesse a seção Configuration Information na página Cluster Information no console do AnalyticDB for MySQL .

Janela de switchover

REPLICATION_SWITCH_TIME_RANGE

Define a janela de tempo para switchover durante o scale-out do cluster. Durante o switchover, o cluster antigo atende tráfego somente leitura por 5 a 10 minutos. Configure este parâmetro no cluster antigo após conectar-se a ele.

Sem a definição de uma janela de tempo, os clusters realizam o switchover automaticamente após a sincronização de todos os dados incrementais do cluster antigo para o novo.

Sintaxe:

SET ADB_CONFIG REPLICATION_SWITCH_TIME_RANGE=`23:00, 23:30`;

Veja também: Dimensionar um cluster Data Warehouse Edition

Limites de consulta

MAX_IN_ITEMS_COUNT

Define o número máximo de valores permitidos em uma condição IN. Deve ser um número inteiro positivo.

Versão do cluster

Padrão

3.1.8 e anteriores

2000

3.1.9.x – 3.1.10.x

4000

3.2.1 e posteriores

20000

Sintaxe:

SET ADB_CONFIG MAX_IN_ITEMS_COUNT=4000;

Veja também: Gravações e consultas

MAX_SELECT_ITEMS_COUNT

Define o número máximo de colunas em uma instrução SELECT. Valor padrão: 1024. O aumento deste parâmetro pode afetar a estabilidade do cluster. Recomendamos não ajustá-lo manualmente.

Sintaxe:

SET ADB_CONFIG MAX_SELECT_ITEMS_COUNT=1000;

Veja também: Gravações e consultas

QUERY_TIMEOUT

Define o tempo limite para a fase de execução da consulta. Valor padrão: 1800000 ms (30 minutos).

Este parâmetro controla apenas o tempo limite de execução de instruções SQL e não afeta o tempo limite de conexão ou de ociosidade da sessão.

Sintaxe:

SET ADB_CONFIG QUERY_TIMEOUT=1000;

INSERT_SELECT_TIMEOUT

Especifica o tempo máximo de execução para instruções INSERT, UPDATE e DELETE no nível do cluster.

  • Padrão: 24×3600000 ms

  • Deve ser um número inteiro positivo. Unidade: milissegundos (ms).

Sintaxe:

SET ADB_CONFIG INSERT_SELECT_TIMEOUT=3600000;

Veja também: Limites

Pushdown de predicado

FILTER_NOT_PUSHDOWN_COLUMNS / NO_INDEX_COLUMNS

Desativa o pushdown de predicado para colunas específicas no nível do cluster. O nome do parâmetro depende da versão do seu cluster:

Versão do cluster

Parâmetro

3.1.4 e posteriores

FILTER_NOT_PUSHDOWN_COLUMNS

Anteriores a 3.1.4

NO_INDEX_COLUMNS

Sintaxe:

-- Cluster version 3.1.4 and later
SET ADB_CONFIG FILTER_NOT_PUSHDOWN_COLUMNS=[Schema1.tableName1:colName1|colName2;Schema2.tableName2:colName1|colName2];

-- Earlier than 3.1.4
SET ADB_CONFIG NO_INDEX_COLUMNS=[tableName1.colName1;colName2,tableName2.colName1];

Veja também: Condições de filtro sem pushdown

Modo de execução de consulta

QUERY_TYPE

Altera o modo de execução de consulta para o cluster.

  • Valores válidos: interactive, batch

Este parâmetro não está disponível para clusters Data Warehouse Edition no modo reservado, nem para clusters Enterprise Edition, Basic Edition e Data Lakehouse Edition.

Sintaxe:

SET ADB_CONFIG QUERY_TYPE=interactive;

Veja também: Modo de execução de consulta

Concorrência da fila de consultas

Estes parâmetros controlam a concorrência máxima e a profundidade da fila para cada nível de prioridade por nó frontend.

Parâmetro

Fila

Padrão

Descrição

XIHE_ENV_QUERY_ETL_MAX_CONCURRENT_SIZE

LOWEST

20

Máximo de consultas simultâneas

XIHE_ENV_QUERY_ETL_MAX_QUEUED_SIZE

LOWEST

200

Máximo de consultas na fila

XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE

LOW

20

Máximo de consultas simultâneas

XIHE_ENV_QUERY_LOW_PRIORITY_MAX_QUEUED_SIZE

LOW

200

Máximo de consultas na fila

XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE

NORMAL

20

Máximo de consultas simultâneas. Quando o limite é excedido, novas consultas entram na fila. Se a fila também estiver cheia, o sistema retorna um erro "Too many queued queries". Aumente este valor ou crie grupos de recursos personalizados para distribuir a carga.

XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE

NORMAL

200

Máximo de consultas na fila

XIHE_ENV_QUERY_HIGH_MAX_CONCURRENT_SIZE

HIGH

40

Máximo de consultas simultâneas

XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE

HIGH

400

Máximo de consultas na fila

Sintaxe:

SET ADB_CONFIG XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE=20;
SET ADB_CONFIG XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE=200;

Veja também: Filas de prioridade e concorrência de grupos de recursos interativos

Configurações de jobs BSP do XIHE

Jobs BSP (Bulk Synchronous Parallel) são executados no mecanismo XIHE. Os parâmetros a seguir controlam sua prioridade, limites de recursos e tempo limite.

QUERY_PRIORITY

Defina a prioridade de agendamento para um job BSP.

  • Valores válidos: HIGH, NORMAL, LOW, LOWEST

  • Padrão: NORMAL

Sintaxe:

SET ADB_CONFIG QUERY_PRIORITY=HIGH;

Veja também: Lista de itens de configuração

ELASTIC_JOB_MAX_ACU

Defina o número máximo de ACUs (AnalyticDB Compute Units) que um único job BSP pode utilizar.

  • Padrão: 9

  • Mínimo: 3

  • Intervalo válido: [3, máximo de ACUs do grupo de recursos do tipo Job]

Sintaxe:

SET ADB_CONFIG ELASTIC_JOB_MAX_ACU=20;

BATCH_QUERY_TIMEOUT

Configure o tempo limite para jobs BSP. Deve ser um número inteiro positivo. Unidade: milissegundos (ms).

  • Padrão: 7200000 ms

Sintaxe:

SET ADB_CONFIG BATCH_QUERY_TIMEOUT=3600000;

Importação de tabela externa

HIVE_SPLIT_ASYNC_GENERATION_ENABLED

Controla se o Hive envia tarefas de split para a fila de forma assíncrona ao gerar um plano de execução.

  • Valores válidos: true, false

  • Padrão: false

Requer a versão 3.1.10.1 ou posterior do cluster.

Sintaxe:

SET ADB_CONFIG HIVE_SPLIT_ASYNC_GENERATION_ENABLED=true;

SQL_OUTPUT_BATCH_SIZE

Defina o número de linhas por lote ao importar dados de uma tabela externa do MaxCompute. Deve ser um número inteiro positivo.

Sintaxe:

SET ADB_CONFIG SQL_OUTPUT_BATCH_SIZE=6000;

Veja também: Importação e exportação

ENABLE_ODPS_MULTI_PARTITION_PART_MATCH

Controla se o sistema pré-percorre partições do MaxCompute para obter a contagem de registros de cada partição antes da execução da consulta.

  • Valores válidos: true, false

Sintaxe:

SET ADB_CONFIG ENABLE_ODPS_MULTI_PARTITION_PART_MATCH=false;

ASYNC_GET_SPLIT

Controla se o MaxCompute envia tarefas de carregamento de splits para a fila de forma assíncrona ao gerar um plano de execução.

  • Valores válidos: true, false

  • Padrão: false

Requer a versão 3.1.10.1 ou posterior do cluster.

Sintaxe:

SET ADB_CONFIG ASYNC_GET_SPLIT=true;

Agendamento de jobs BUILD

RC_CSTORE_BUILD_SCHEDULE_PERIOD

Limita o intervalo de tempo durante o qual as tarefas BUILD podem ser agendadas (não executadas). Deve ser um número inteiro entre 0 e 24.

Sintaxe:

SET ADB_CONFIG RC_CSTORE_BUILD_SCHEDULE_PERIOD=`6,8`;

Veja também: Configurar horários automáticos de agendamento BUILD

RC_BUILD_TASK_PRIORITY_LIST

Defina a prioridade de agendamento para jobs BUILD em uma ou mais tabelas. A prioridade permanece em vigor até que você defina uma nova.

  • A prioridade é controlada pelo parâmetro task_priority. Deve ser um número inteiro.

  • Padrão: 0

Sintaxe:

SET ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST=`<db1_name>.<table1_name>.<task_priority>;<db2_name>.<table2_name>.<task_priority>`;

Veja também: BUILD

Importação elástica

RC_ELASTIC_JOB_SCHEDULER_ENABLE

Ative manualmente o recurso de importação elástica.

Sintaxe:

SET ADB_CONFIG RC_ELASTIC_JOB_SCHEDULER_ENABLE=true;

Veja também:

Função REMOTE_CALL

Utilize estes parâmetros ao invocar funções definidas pelo usuário (UDFs) no Function Compute por meio da função REMOTE_CALL. Todos os cinco parâmetros são definidos no nível do cluster.

Parâmetro

Descrição

Exemplo

XIHE_REMOTE_CALL_SERVER_ENDPOINT

Endpoint interno do serviço Function Compute. Consulte Endpoints de serviço.

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_ENDPOINT="1234567890000****.cn-zhangjiakou-internal.fc.aliyuncs.com"

XIHE_REMOTE_CALL_SERVER_AK

AccessKey ID da conta Alibaba Cloud ou do usuário Resource Access Management (RAM) proprietário do serviço Function Compute.

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_AK=************;

XIHE_REMOTE_CALL_SERVER_SK

AccessKey Secret da conta Alibaba Cloud ou do usuário RAM proprietário do serviço Function Compute.

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_SK=************;

XIHE_REMOTE_CALL_COMPRESS_ENABLED

Indica se os dados devem ser compactados no formato GZIP antes da transmissão para o Function Compute.

SET ADB_CONFIG REMOTE_CALL_COMPRESS_ENABLED=true;

XIHE_REMOTE_CALL_MAX_BATCH_SIZE

Número de linhas de dados enviadas ao Function Compute por lote. Padrão: 500000.

SET ADB_CONFIG XIHE_REMOTE_CALL_MAX_BATCH_SIZE=500000;

Veja também: Funções definidas pelo usuário (UDFs)

Controle de concorrência de scan

Estes parâmetros controlam quantas tarefas de scan podem ser executadas simultaneamente para evitar instabilidade nos nós devido ao consumo excessivo de recursos.

SPLIT_FLOW_CONTROL_ENABLED

Ative ou desative o controle de concorrência de scan no nível do cluster.

  • Valores válidos: true, false

  • Padrão: true

Sintaxe:

SET ADB_CONFIG SPLIT_FLOW_CONTROL_ENABLED=true;

Veja também: Controle de concorrência de scan

NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED

Permite o ajuste dinâmico da concorrência de scan por tarefa com base na cota geral de concorrência de scan do nó.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

SET ADB_CONFIG NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED=true;

Cotas de concorrência de scan

Parâmetro

Descrição

Padrão

MIN_RUNNING_SPLITS_LIMIT_PER_TASK

Concorrência mínima de scan por tarefa. Intervalo válido: [1, TARGET_RUNNING_SPLITS_LIMIT_PER_TASK].

1

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK

Concorrência intermediária de scan por tarefa. A cota é ajustada para cima ou para baixo em relação a este valor. Intervalo válido: [MIN_RUNNING_SPLITS_LIMIT_PER_TASK, MAX_RUNNING_SPLITS_LIMIT_PER_TASK].

32

MAX_RUNNING_SPLITS_LIMIT_PER_TASK

Concorrência máxima de scan por tarefa. Deve ser maior que TARGET_RUNNING_SPLITS_LIMIT_PER_TASK.

64

WORKER_MAX_RUNNING_SOURCE_SPLITS_PER_NODE

Cota de concorrência de scan para nós de armazenamento. Não altere o valor padrão — um valor incorreto degrada o desempenho do cluster.

256

EXECUTOR_MAX_RUNNING_SOURCE_SPLITS_PER_NODE

Cota de concorrência de scan para nós de computação. Não altere o valor padrão — um valor incorreto degrada o desempenho do cluster.

256

Sintaxe:

SET ADB_CONFIG MIN_RUNNING_SPLITS_LIMIT_PER_TASK=24;
SET ADB_CONFIG TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=32;
SET ADB_CONFIG MAX_RUNNING_SPLITS_LIMIT_PER_TASK=128;

Visualizações lógicas

VIEW_OUTPUT_NAME_CASE_SENSITIVE

Controla se a correspondência de nomes de colunas para visualizações lógicas diferencia maiúsculas de minúsculas.

  • Valores válidos: true (diferencia maiúsculas de minúsculas), false (não diferencia maiúsculas de minúsculas)

  • Padrão: false

Sintaxe:

SET ADB_CONFIG VIEW_OUTPUT_NAME_CASE_SENSITIVE=true;

Veja também: CREATE VIEW

Multi-Statement

ALLOW_MULTI_QUERIES

Permite a execução de múltiplas instruções SQL em uma única solicitação usando o recurso Multi-Statement. Deve ser ativado manualmente antes do uso.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

SET ADB_CONFIG ALLOW_MULTI_QUERIES=true;

Veja também: Multi-Statement

Binary logging

BINLOG_ENABLE

Ative o binary logging no nível do cluster.

  • Para clusters executando uma versão anterior a 3.2.0.0: ative manualmente este parâmetro antes de habilitar o binary logging para tabelas individuais.

  • Para clusters executando a versão 3.2.0.0 ou posterior: o binary logging é ativado por padrão. Este parâmetro não é necessário.

Sintaxe:

SET ADB_CONFIG BINLOG_ENABLE=true;

Veja também: Atualizar visualização materializada

Cache de paginação

O cache de paginação otimiza o desempenho de consultas paginadas profundas armazenando resultados intermediários em cache.

Parâmetro

Descrição

Padrão

PAGING_CACHE_SCHEMA

Banco de dados que armazena tabelas temporárias de cache. Se não definido, o banco de dados atualmente conectado será usado.

PAGING_CACHE_MAX_TABLE_COUNT

Número máximo de tabelas temporárias de cache. A criação de novo cache falha quando este limite é atingido. Deve ser um número inteiro positivo.

100

PAGING_CACHE_EXPIRATION_TIME

TTL (tempo de vida) do cache em segundos. O sistema limpa caches não acessados dentro deste período. Deve ser um número inteiro positivo.

600

PAGING_CACHE_ENABLE

Ative ou desative globalmente o recurso de cache de paginação.

true

Sintaxe:

SET ADB_CONFIG PAGING_CACHE_SCHEMA=paging_cache;
SET ADB_CONFIG PAGING_CACHE_MAX_TABLE_COUNT=100;
SET ADB_CONFIG PAGING_CACHE_EXPIRATION_TIME=600;
SET ADB_CONFIG PAGING_CACHE_ENABLE=false;

Veja também: Cache de paginação

Mecanismo de tabela

RC_DDL_ENGINE_REWRITE_XUANWUV2

Defina o mecanismo de tabela padrão para tabelas recém-criadas no nível do cluster.

Valor

Comportamento

true (padrão)

Novas tabelas usam XUANWU_V2. Se você especificar explicitamente ENGINE=XUANWU, ele será reescrito automaticamente para XUANWU_V2. Tabelas existentes não são afetadas.

false

Novas tabelas usam XUANWU. Tabelas existentes não são afetadas.

Sintaxe:

SET ADB_CONFIG RC_DDL_ENGINE_REWRITE_XUANWUV2=true;

Veja também: Especificar um mecanismo de tabela

Hints comuns

Os hints aplicam-se apenas à instrução SQL em que aparecem e não afetam a configuração global. Use a sintaxe /*+ KEY=VALUE*/ imediatamente antes da instrução.

Limites de consulta

QUERY_TIMEOUT

Defina o tempo limite de consulta para uma única consulta. Deve ser um número inteiro positivo. Unidade: milissegundos (ms).

Sintaxe:

/*+ QUERY_TIMEOUT=1000 */ SELECT COUNT(*) FROM t;

Veja também: Gravações e consultas

INSERT_SELECT_TIMEOUT

Defina o tempo máximo de execução para instruções INSERT, UPDATE e DELETE para uma única consulta.

  • Padrão: 24×3600000 ms

  • Deve ser um número inteiro positivo. Unidade: milissegundos (ms).

Sintaxe:

/*+ INSERT_SELECT_TIMEOUT=3600000 */ UPDATE customer SET customer_name='adb' WHERE customer_id='2369';

Veja também: Limites

MAX_SELECT_ITEMS_COUNT

Defina o número máximo de colunas permitidas em uma cláusula SELECT.

  • Padrão: 1024

  • Deve ser um número inteiro positivo.

Sintaxe:

/*+ MAX_SELECT_ITEMS_COUNT=2048*/

MAX_IN_ITEMS_COUNT

Defina o número máximo de valores permitidos em uma condição IN para uma única consulta.

  • Padrão: 4000

  • Deve ser um número inteiro positivo.

Sintaxe:

/*+ MAX_IN_ITEMS_COUNT=1000*/

MAX_WHERE_ITEMS_COUNT

Defina o número máximo de condições permitidas em uma cláusula WHERE.

  • Padrão: 256

  • Deve ser um número inteiro positivo.

Sintaxe:

/*+ MAX_WHERE_ITEMS_COUNT=512*/

QUERY_MAX_SHUFFLE_DATA_SIZE_MB

Defina o volume máximo de dados de shuffle para uma consulta. Se a consulta exceder este limiar, o sistema a encerrará com um erro. Por padrão, nenhum limite é imposto. Deve ser um número inteiro positivo. Unidade: MB.

Sintaxe:

/*+ QUERY_MAX_SHUFFLE_DATA_SIZE_MB=1024*/

Pushdown de predicado

FILTER_NOT_PUSHDOWN_COLUMNS / NO_INDEX_COLUMNS

Desativa o pushdown de predicado para colunas específicas no nível da consulta. O nome do parâmetro depende da versão do seu cluster:

Versão do cluster

Parâmetro

3.1.4 e posteriores

FILTER_NOT_PUSHDOWN_COLUMNS

Anteriores a 3.1.4

NO_INDEX_COLUMNS

Sintaxe:

-- Cluster version 3.1.4 and later
/*+ FILTER_NOT_PUSHDOWN_COLUMNS=[Schema1.table1:colName1|colName2;Schema2.table2:colName1|colName2] */

-- Earlier than 3.1.4
/*+ NO_INDEX_COLUMNS=[tableName1.colName1;colName2,tableName2.colName1] */

Veja também: Condições de filtro sem pushdown

Agendamento de jobs BUILD

BUILD_TASK_PRIORITY

Defina a prioridade de agendamento para uma tarefa BUILD em uma única tabela. Um valor maior indica maior prioridade.

  • Padrão: 0

  • Deve ser um número inteiro >= 0.

Este hint só pode definir a prioridade para uma tabela por vez. Para definir prioridades para várias tabelas, use o parâmetro de configuração RC_BUILD_TASK_PRIORITY_LIST .

Sintaxe:

/*+ BUILD_TASK_PRIORITY=2 */ BUILD TABLE db.table;

Veja também: Configurar prioridade de agendamento BUILD

Importação elástica

ELASTIC_LOAD e ELASTIC_LOAD_CONFIGS

Ative a importação elástica e especifique o grupo de recursos Job para executar a tarefa de importação.

Sintaxe:

/*+ ELASTIC_LOAD=true, ELASTIC_LOAD_CONFIGS=[adb.load.resource.group.name=resource_group]*/
SUBMIT JOB INSERT OVERWRITE INTO adb_demo.adb_import_test SELECT * FROM adb_external_db.person;

Veja também:

Ajustes do plano de execução

O_CBO_RULE_SWAP_OUTER_JOIN / LEFT_TO_RIGHT_ENABLED

Instrui o otimizador a converter um Left Join em Right Join quando a tabela da direita for grande, reduzindo o consumo de memória. O nome do parâmetro depende da versão do seu cluster:

Versão do cluster

Parâmetro

3.1.8 e posteriores

O_CBO_RULE_SWAP_OUTER_JOIN

Anteriores a 3.1.8

LEFT_TO_RIGHT_ENABLED

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

/*+ O_CBO_RULE_SWAP_OUTER_JOIN=true*/
/*+ LEFT_TO_RIGHT_ENABLED=true*/

Veja também: Alterar LEFT JOIN para RIGHT JOIN

REORDER_JOINS

Controla o ajuste automático da ordem de junção. Quando desativado, as consultas executam na ordem de junção conforme escrita na instrução SQL.

  • Valores válidos: true, false

  • Padrão: true

Sintaxe:

/*+ REORDER_JOINS=false*/

Veja também: Ajustar manualmente a ordem de junção

AGGREGATION_PATH_TYPE

Controla se o otimizador ignora a agregação parcial e vai diretamente para a agregação final. Útil quando o número de grupos em uma consulta groupby é grande e a agregação parcial consome recursos excessivos.

  • Valores válidos: single_agg (ignorar agregação parcial), auto (o otimizador decide)

  • Padrão: auto

Sintaxe:

/*+ AGGREGATION_PATH_TYPE=single_agg*/

Veja também: Otimização de consulta de agrupamento e agregação

Política de runtime

HASH_PARTITION_COUNT

Defina o número de tarefas concorrentes para operações de computação. Deve ser um número inteiro positivo.

  • Padrão: 32

Sintaxe:

/*+ HASH_PARTITION_COUNT=32*/

TASK_WRITER_COUNT

Defina a concorrência de gravação para tarefas de importação INSERT INTO SELECT. Reduza este valor se a carga do worker estiver muito alta. Deve ser um número inteiro positivo.

  • Padrão: 16

Sintaxe:

/*+ TASK_WRITER_COUNT=8*/

CTE_EXECUTION_MODE

Controla se subconsultas Common Table Expression (CTE) referenciadas múltiplas vezes são executadas apenas uma vez (modo compartilhado) ou cada vez que são referenciadas (modo inline).

  • Valores válidos: shared (executar uma vez), inline (executar cada vez)

  • Padrão: inline

Sintaxe:

/*+ CTE_EXECUTION_MODE=shared*/

Veja também: WITH

Configurações de jobs BSP do XIHE

QUERY_PRIORITY

Defina a prioridade de agendamento para um job BSP no nível da consulta.

  • Valores válidos: HIGH, NORMAL, LOW, LOWEST

  • Padrão: NORMAL

Sintaxe:

/*+ QUERY_PRIORITY=HIGH*/

Veja também: Lista de itens de configuração

ELASTIC_JOB_MAX_ACU

Defina o número máximo de ACUs que um único job BSP pode usar no nível da consulta.

  • Padrão: 9

  • Mínimo: 3

  • Intervalo válido: [3, máximo de ACUs do grupo de recursos do tipo Job]

Sintaxe:

/*+ ELASTIC_JOB_MAX_ACU=20*/

BATCH_QUERY_TIMEOUT

Defina o tempo limite para um job BSP no nível da consulta. Deve ser um número inteiro positivo. Unidade: milissegundos (ms).

  • Padrão: 7200000 ms

Sintaxe:

/*+ BATCH_QUERY_TIMEOUT=3600000*/

Tabelas externas do OSS

OUTPUT_FILENAME

Personaliza o nome do arquivo ao exportar dados para uma tabela externa do OSS. Adicione este hint antes da instrução de exportação.

Sintaxe:

/*+ OUTPUT_FILENAME=output.csv*/

Veja também: Exportar para o OSS

SQL_OUTPUT_OSS_FILE_HEAD_ENABLE

Controla se os arquivos exportados para o OSS incluem nomes de colunas. Por padrão, os arquivos exportados contêm apenas dados.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

/*+ SQL_OUTPUT_OSS_FILE_HEAD_ENABLE=true*/

HIVE_SPLIT_ASYNC_GENERATION_ENABLED

Controla se o Hive envia tarefas de split de forma assíncrona ao gerar um plano de execução.

  • Valores válidos: true, false

  • Padrão: false

Requer a versão 3.1.10.1 ou posterior do cluster.

Sintaxe:

/*+ HIVE_SPLIT_ASYNC_GENERATION_ENABLED=true*/

Veja também: Importar dados do OSS usando tabelas externas

FAST_PARQUET_READER_ENABLE

Reverte para o leitor nativo de Parquet quando as estatísticas nos arquivos Parquet estiverem incorretas.

  • Valores válidos: true, false

  • Padrão: true

Sintaxe:

/*+ FAST_PARQUET_READER_ENABLE=true*/

OSS_VECTORIZED_PARQUET_READER_ENABLE

Ative a leitura vetorizada de Parquet para dados que não contêm valores NULL.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

/*+ OSS_VECTORIZED_PARQUET_READER_ENABLE=true*/

OSS_VECTORIZED_PARQUET_READER_NULL_SCENE_ENABLE

Ative a leitura vetorizada de Parquet para dados que contêm valores NULL.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

/*+ OSS_VECTORIZED_PARQUET_READER_NULL_SCENE_ENABLE=true*/

Tabelas externas do Hudi

HUDI_METADATA_TABLE_ENABLED

Controla se os metadados do Hudi são carregados ao consultar tabelas Hudi.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

/*+ HUDI_METADATA_TABLE_ENABLED=true*/

HUDI_QUERY_TYPE

Defina o método de consulta para tabelas Hudi.

Valor

Descrição

read_optimized (padrão)

Retorna dados da compactação ou commit mais recente.

snapshot

Retorna todos os dados cometidos ou compactados até um ponto específico no tempo.

Sintaxe:

/*+ HUDI_QUERY_TYPE=snapshot*/

HUDI_REALTIME_SKIP_MERGE

No modo de consulta snapshot, controla se a mesclagem de registros de arquivos base e arquivos de log deve ser ignorada.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

/*+ HUDI_REALTIME_SKIP_MERGE=true*/

Configurações de split e desempenho do Hudi

Parâmetro

Descrição

Padrão

HUDI_MAX_SPLIT_SIZE

Tamanho máximo do split. Unidade: MB.

128

HUDI_SPLIT_PARALLEL_GENERATION_ENABLED

Indica se os splits devem ser gerados em paralelo.

true

HUDI_DATA_SKIPPING_ENABLED

Usa estatísticas da MetaTable do Hudi para ignorar shards desnecessários durante leituras, melhorando o desempenho da consulta.

false

HUDI_SPLIT_ASYNC_GENERATION_ENABLED

Indica se os splits do Hudi devem ser gerados de forma assíncrona durante a geração do plano de execução.

true

Sintaxe:

/*+ HUDI_MAX_SPLIT_SIZE=128*/
/*+ HUDI_SPLIT_PARALLEL_GENERATION_ENABLED=true*/
/*+ HUDI_DATA_SKIPPING_ENABLED=true*/
/*+ HUDI_SPLIT_ASYNC_GENERATION_ENABLED=true*/

Tabelas externas do ApsaraDB RDS for MySQL

JDBC_SCAN_SPLITS

Defina o número de splits durante um scan de tabela baseado em Java Database Connectivity (JDBC).

  • Padrão: 1

  • Intervalo válido: 1–100

Sintaxe:

/*+ JDBC_SCAN_SPLITS=1*/

Veja também: Usar tabelas externas para importar dados do RDS for MySQL

JDBC_SPLIT_COLUMN

Especifique a coluna usada para dividir dados ao ler uma tabela externa do ApsaraDB RDS for MySQL.

Sintaxe:

/*+ JDBC_SPLIT_COLUMN=column1*/

JDBC_INSERT_DIRECTLY

Grava dados diretamente na tabela de destino em vez de prepará-los primeiro em uma tabela temporária. Gravações diretas são mais rápidas, mas podem deixar dados inconsistentes na tabela de destino se ocorrer um erro.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

/*+ JDBC_INSERT_DIRECTLY=true*/

Tabelas externas do Tablestore

OTS-INSERT-AS-UPDATE

Usa instruções INSERT em vez de instruções UPDATE ao gravar em uma tabela externa do Tablestore.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

/*+ OTS-INSERT-AS-UPDATE=true*/

Veja também: Consultar e importar dados do Tablestore

Tabelas externas do MaxCompute

ODPS_SPLIT_LIMIT

Defina o número máximo de splits ao ler dados do MaxCompute via Tunnel.

  • Padrão: 1000

  • Intervalo válido: 1–1000

Sintaxe:

/*+ ODPS_SPLIT_LIMIT=1000*/

Veja também: Importar dados do MaxCompute usando tabelas externas

IGNORE_PARTITION_CACHE

Consulta metadados de partição diretamente da tabela MaxCompute em vez de usar metadados em cache. Útil quando os dados da partição foram alterados desde que o cache foi preenchido.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

/*+ IGNORE_PARTITION_CACHE=true*/

ROWS_PER_SPLIT

Defina o número máximo de linhas que um único split pode ler via Tunnel.

  • Padrão: 500000

  • Intervalo válido: 10000–500000

Sintaxe:

/*+ ROWS_PER_SPLIT=500000*/

STORAGE_API_ENABLED

Usa a Storage API do MaxCompute em vez do Tunnel para ler dados do MaxCompute. A Storage API melhora significativamente o desempenho de leitura.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

/*+ STORAGE_API_ENABLED=true*/

Configurações de split da Storage API do MaxCompute

Todos os parâmetros abaixo se aplicam ao ler dados via Storage API do MaxCompute.

Parâmetro

Descrição

Padrão

APLIT_BYTE_SIZE

Tamanho máximo de um único split. Unidade: MB.

256

MAX_BATCH_ROW_COUNT

Número máximo de linhas em um único split.

1024

PAGE_BATCH_SIZE

Número máximo de linhas por página.

1024

MAX_ALLOCATION_PER_SPLIT

Memória de pico máxima alocada no nível do split. Unidade: MB.

300

ASYNC_GET_SPLIT

Indica se as tarefas de carregamento de splits devem ser enviadas de forma assíncrona. Requer a versão 3.1.10.1 ou posterior do cluster.

false

Sintaxe:

/*+ APLIT_BYTE_SIZE=256*/
/*+ MAX_BATCH_ROW_COUNT=1024*/
/*+ PAGE_BATCH_SIZE=1024*/
/*+ MAX_ALLOCATION_PER_SPLIT=300*/
/*+ ASYNC_GET_SPLIT=true*/

Controle de concorrência de scan

SPLIT_FLOW_CONTROL_ENABLED

Ative ou desative o controle de concorrência de scan no nível da consulta.

  • Valores válidos: true (ativar), false (desativar)

  • Padrão: true

Sintaxe:

/*+ SPLIT_FLOW_CONTROL_ENABLED=true*/ SELECT * FROM table;

Veja também: Controle de concorrência de scan

Cotas de concorrência de scan (nível de consulta)

Parâmetro

Descrição

Padrão

Exemplo

MIN_RUNNING_SPLITS_LIMIT_PER_TASK

Concorrência mínima de scan por tarefa. Intervalo válido: [1, TARGET_RUNNING_SPLITS_LIMIT_PER_TASK].

1

/*+ MIN_RUNNING_SPLITS_LIMIT_PER_TASK=10*/ SELECT * FROM orders;

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK

Concorrência intermediária de scan por tarefa. Intervalo válido: [MIN_RUNNING_SPLITS_LIMIT_PER_TASK, MAX_RUNNING_SPLITS_LIMIT_PER_TASK].

32

/*+ TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=32*/ SELECT * FROM adb_test;

MAX_RUNNING_SPLITS_LIMIT_PER_TASK

Concorrência máxima de scan por tarefa. Deve ser maior que TARGET_RUNNING_SPLITS_LIMIT_PER_TASK.

64

/*+ MAX_RUNNING_SPLITS_LIMIT_PER_TASK=100*/ SELECT * FROM adb_test;

Cache de paginação

PAGING_ID

Ative o cache de paginação e especifique manualmente um paging_id para agrupar consultas paginadas relacionadas (consultas com o mesmo padrão que diferem apenas nos valores de LIMIT e OFFSET).

Sintaxe:

/*PAGING_ID=paging123*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

Veja também: Cache de paginação

PAGING_CACHE_ENABLED

Ative o cache de paginação e gera automaticamente um paging_id com base no padrão SQL.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

/*PAGING_CACHE_ENABLED=true*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

PAGING_CACHE_VALIDITY_INTERVAL

Defina o período de validade do cache em segundos. Após este período, o cache expira. Se o cache não for acessado dentro de uma hora após a expiração, o sistema exclui a tabela temporária correspondente. Deve ser um número inteiro positivo. Use com PAGING_CACHE_ENABLED.

Sintaxe:

/*PAGING_CACHE_ENABLED=true, PAGING_CACHE_VALIDITY_INTERVAL=300*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

INVALIDATE_PAGING_CACHE

Limpa o cache de paginação para um padrão de consulta especificado. Use com PAGING_ID ou PAGING_CACHE_ENABLED.

  • Valores válidos: true, false

  • Padrão: false

Sintaxe:

/*PAGING_CACHE_ENABLED=true, INVALIDATE_PAGING_CACHE=true*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

Mecanismo de tabela

RC_DDL_ENGINE_REWRITE_XUANWUV2

Especifique o mecanismo de tabela para a tabela criada pela instrução SQL atual.

Valor

Comportamento

true (padrão)

A nova tabela usa XUANWU_V2. Se você especificar explicitamente ENGINE=XUANWU, ele será reescrito automaticamente para XUANWU_V2. Tabelas existentes não são afetadas.

false

A nova tabela usa XUANWU. Tabelas existentes não são afetadas.

Sintaxe:

/*+ RC_DDL_ENGINE_REWRITE_XUANWUV2=true */

Veja também: Especificar mecanismo de tabela

Outros hints

RESOURCE_GROUP

Especifique o grupo de recursos para uma consulta. Se não definido, o grupo de recursos vinculado à conta do banco de dados será usado. Se a conta não tiver um grupo de recursos vinculado, o grupo de recursos padrão será utilizado.

Sintaxe:

/*+ RESOURCE_GROUP=my_group_name*/

DML_EXCEPTION_TO_NULL_ENABLED

Controla como valores inválidos em instruções INSERT SELECT são tratados.

  • Valores válidos: true (gravar NULL em vez de lançar um erro), false (lançar um erro)

  • Padrão: false

Sintaxe:

/*+ DML_EXCEPTION_TO_NULL_ENABLED=true*/

DISPLAY_HINT

Marca uma consulta com um rótulo para identificação, como marcar consultas de diferentes equipes de negócios.

Sintaxe:

/*+ DISPLAY_HINT=from_user_123*/

Perguntas frequentes

Como redefinir um parâmetro de configuração para seu valor padrão?

Execute SET ADB_CONFIG REMOVE <key> para remover a definição e restaurar o padrão:

SET ADB_CONFIG REMOVE QUERY_TIMEOUT; -- Restores the query timeout to its default value.

Para confirmar que o parâmetro foi redefinido, execute:

SHOW ADB_CONFIG KEY=<key>;