Este tópico descreve como definir e visualizar prioridades de jobs em um grupo de recursos de jobs do AnalyticDB for MySQL.
Pré-requisitos
Crie um cluster do AnalyticDB for MySQL Enterprise Edition, Basic Edition ou Data Lakehouse Edition.
-
A versão do kernel do cluster deve ser 3.1.6.3 ou posterior.
NotaPara visualizar e atualizar a versão secundária, acesse a seção Configuration Information na página Cluster Information no console do AnalyticDB for MySQL.
Crie e selecione um grupo de recursos de jobs ao enviar jobs.
Limitações
Não é possível alterar a prioridade de um job enviado. Essa restrição aplica-se a jobs pendentes e em execução.
Visão geral
A prioridade do job determina a ordem de alocação de recursos para jobs em fila. Quando vários jobs são executados simultaneamente em um grupo de recursos de jobs, os recursos necessários podem exceder a capacidade disponível do grupo. O AnalyticDB for MySQL oferece suporte a filas de jobs, colocando novos jobs em espera em vez de falhar a execução.
Em alguns cenários de negócios, a ordem de execução dos jobs e a geração de resultados são críticas. Por exemplo, se a geração de métricas principais depender do tempo de saída de um resultado intermediário upstream, defina uma prioridade alta para o job de processamento upstream para garantir recursos suficientes. O AnalyticDB for MySQL fornece filas de prioridade nos grupos de recursos de jobs. Defina a prioridade de um job para distribuí-lo nas filas LOWEST, LOW, NORMAL e HIGH. Jobs com maior prioridade são executados primeiro.
Definir prioridade do job
Os valores válidos para prioridade de job são HIGH, NORMAL, LOW e LOWEST. Se nenhuma prioridade for especificada, o job assumirá a prioridade NORMAL por padrão.
Por padrão, consultas de extração, transformação e carga (ETL) e consultas SELECT padrão têm prioridade NORMAL.
O método para definir a prioridade do job varia conforme o tipo de job.
XIHE BSP
Use um hint: /*+ query_priority= <priority_value>*/
Exemplo: defina a prioridade de um job XIHE BSP como HIGH para colocá-lo na fila HIGH.
/*+ query_priority=HIGH*/ SELECT * FROM test_table;
Spark SQL
Use uma instrução SET: SET spark.adb.priority = <priority_value>
Exemplo: defina a prioridade de um job Spark SQL como LOW para colocá-lo na fila LOW.
SET spark.adb.priority = LOW;
SELECT * FROM test_table;
Spark batch
Configure o parâmetro conf: "conf": { "spark.adb.priority": "<priority_value>"}
Exemplo: defina a prioridade de um job Spark batch como HIGH para colocá-lo na fila HIGH.
{
"comments": [
"-- Here is just an example of SparkPi. Modify the content and run your spark program."
],
"args": [
"1000"
],
"file": "local:///tmp/spark-examples.jar",
"name": "SparkPi",
"className": "org.apache.spark.examples.SparkPi",
"conf": {
"spark.driver.resourceSpec": "medium",
"spark.executor.instances": 2,
"spark.executor.resourceSpec": "medium",
"spark.adb.priority": "HIGH"
}
}
Visualizar prioridade do job
Console
XIHE BSP and Spark SQL
Faça login no console do AnalyticDB for MySQL e acesse a aba Execution Records na página Job Development > SQL Development para visualizar as prioridades dos jobs.
Spark batch
Faça login no console do AnalyticDB for MySQL e acesse a aba Applications na página Job Development > Spark JAR Development para visualizar as prioridades dos jobs.