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 |
|
|
Anteriores a 3.1.4 |
|
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 |
|
|
LOWEST |
20 |
Máximo de consultas simultâneas |
|
|
LOWEST |
200 |
Máximo de consultas na fila |
|
|
LOW |
20 |
Máximo de consultas simultâneas |
|
|
LOW |
200 |
Máximo de consultas na fila |
|
|
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. |
|
|
NORMAL |
200 |
Máximo de consultas na fila |
|
|
HIGH |
40 |
Máximo de consultas simultâneas |
|
|
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,LOWESTPadrã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,falsePadrã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,falsePadrã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 |
|
|
Endpoint interno do serviço Function Compute. Consulte Endpoints de serviço. |
|
|
|
AccessKey ID da conta Alibaba Cloud ou do usuário Resource Access Management (RAM) proprietário do serviço Function Compute. |
|
|
|
AccessKey Secret da conta Alibaba Cloud ou do usuário RAM proprietário do serviço Function Compute. |
|
|
|
Indica se os dados devem ser compactados no formato GZIP antes da transmissão para o Function Compute. |
|
|
|
Número de linhas de dados enviadas ao Function Compute por lote. Padrão: 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,falsePadrã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,falsePadrã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 |
|
|
Concorrência mínima de scan por tarefa. Intervalo válido: [1, |
1 |
|
|
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: [ |
32 |
|
|
Concorrência máxima de scan por tarefa. Deve ser maior que |
64 |
|
|
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 |
|
|
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,falsePadrã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 |
|
|
Banco de dados que armazena tabelas temporárias de cache. Se não definido, o banco de dados atualmente conectado será usado. |
— |
|
|
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 |
|
|
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 |
|
|
Ative ou desative globalmente o recurso de cache de paginação. |
|
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 |
|
|
Novas tabelas usam XUANWU_V2. Se você especificar explicitamente |
|
|
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 |
|
|
Anteriores a 3.1.4 |
|
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 |
|
|
Anteriores a 3.1.8 |
|
Valores válidos:
true,falsePadrã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,falsePadrã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,LOWESTPadrã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,falsePadrã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,falsePadrã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,falsePadrã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,falsePadrã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,falsePadrã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,falsePadrão:
false
Sintaxe:
/*+ HUDI_METADATA_TABLE_ENABLED=true*/
HUDI_QUERY_TYPE
Defina o método de consulta para tabelas Hudi.
|
Valor |
Descrição |
|
|
Retorna dados da compactação ou commit mais recente. |
|
|
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,falsePadrão:
false
Sintaxe:
/*+ HUDI_REALTIME_SKIP_MERGE=true*/
Configurações de split e desempenho do Hudi
|
Parâmetro |
Descrição |
Padrão |
|
|
Tamanho máximo do split. Unidade: MB. |
128 |
|
|
Indica se os splits devem ser gerados em paralelo. |
|
|
|
Usa estatísticas da MetaTable do Hudi para ignorar shards desnecessários durante leituras, melhorando o desempenho da consulta. |
|
|
|
Indica se os splits do Hudi devem ser gerados de forma assíncrona durante a geração do plano de execução. |
|
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,falsePadrã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,falsePadrã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,falsePadrã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,falsePadrã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 |
|
|
Tamanho máximo de um único split. Unidade: MB. |
256 |
|
|
Número máximo de linhas em um único split. |
1024 |
|
|
Número máximo de linhas por página. |
1024 |
|
|
Memória de pico máxima alocada no nível do split. Unidade: MB. |
300 |
|
|
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. |
|
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 |
|
|
Concorrência mínima de scan por tarefa. Intervalo válido: [1, |
1 |
|
|
|
Concorrência intermediária de scan por tarefa. Intervalo válido: [ |
32 |
|
|
|
Concorrência máxima de scan por tarefa. Deve ser maior que |
64 |
|
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,falsePadrã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,falsePadrã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 |
|
|
A nova tabela usa XUANWU_V2. Se você especificar explicitamente |
|
|
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>;