O AnalyticDB for MySQL oferece dois modos de execução para Spark SQL: lote e interativo. Ambos permitem ler e gravar em bancos de dados e tabelas do AnalyticDB for MySQL pelo recurso de metadados.
Escolha um modo de execução
|
Lote |
Interativo |
|
|
Mais indicado para |
Tarefas de ETL, sequências de SQL com dependências e grandes volumes de dados |
Consultas ad hoc, fluxos de trabalho com muitas instruções DDL e resultados imediatos de DQL |
|
Isolamento de recursos |
Nível de aplicação (cada SQL executa em uma aplicação Spark dedicada) |
Nível de thread (vários usuários compartilham uma única aplicação Spark) |
|
Saída de resultados |
Apenas status da execução; amostras de resultados SELECT aparecem nos logs |
Retorno direto de até 1.000 linhas |
|
Escopo de configuração |
Por envio — defina independentemente com instruções |
Configurações no nível de thread entram em vigor após a definição; configurações no nível de aplicação exigem reinicialização |
|
Grupo de recursos |
Grupo de recursos de tarefas |
Grupo de recursos interativos do Spark |
Modo de execução em lote
Casos de uso
Instruções SQL com dependências mútuas
Cargas de trabalho que exigem isolamento rigoroso de recursos
Processamento de dados em grande escala, como tarefas de extração, transformação e carga (ETL)
Fluxos de trabalho que carregam e iteram pacotes complexos de dependências de terceiros
Funcionamento
Cada envio de SQL executa em sua própria aplicação Spark, o que garante estabilidade e evita interferências entre tarefas. Inclua instruções de configuração independentes, como SET spark.sql.adaptive.coalescePartitions.minPartitionSize = 2MB;, no mesmo envio.
Se o SQL contiver instruções SELECT, amostras dos resultados aparecerão nos logs da aplicação. Para instruções DML, DDL e DQL, o sistema retorna uma mensagem de sucesso ou falha na execução, não os dados. Para visualizar a saída completa dos logs, consulte a seção Visualizar informações sobre uma aplicação Spark no tópico do editor Spark.
Observações de uso
Execute
USE <database_name>;antes de qualquer instrução SQL para selecionar um banco de dados.Sempre qualifique os nomes das tabelas no formato
database_name.table_name.
Iniciar o modo em lote
Na aba SQLConsole, selecione o Spark engine e um grupo de recursos de tarefas. Insira a instrução SQL e clique em Execute.
Modo de execução interativo
Casos de uso
Consultas ad hoc sem necessidade de retornar todas as linhas
Fluxos de trabalho com diversas instruções DDL
Execução imediata de DQL sem necessidade de isolamento rigoroso de recursos
Funcionamento
O modo interativo executa instruções SQL dentro de uma aplicação Spark compartilhada com isolamento de recursos no nível de thread. Vários usuários executando SQL na mesma aplicação Spark podem causar interferência mútua.
As alterações de configuração aplicam-se em dois níveis:
|
Nível de configuração |
Quando entra em vigor |
|
Nível de thread |
Após configurar as instruções SQL |
|
Nível de aplicação |
Somente após reiniciar o grupo de recursos interativos do Spark |
Para aplicar alterações de configuração no nível da aplicação: pare o grupo de recursos interativos do Spark, atualize os parâmetros e reinicie o grupo de recursos interativos do Spark.
Observações de uso
Instruções DDL ou DML retornam até 1.000 linhas de dados como resultado.
Instruções DDL (como
CREATE TABLE) retornam uma mensagem de sucesso ou falha na execução, não dados da tabela. Esse comportamento segue o padrão de SQL open source.O grupo de recursos interativos do Spark leva algum tempo para iniciar. Se a inicialização falhar, aguarde e tente novamente.
Como vários usuários compartilham uma única aplicação Spark, as instruções SQL podem sofrer interferência mútua sob alta concorrência. Para cargas de trabalho que exigem isolamento rigoroso, use o modo de execução em lote.
Iniciar o modo interativo
Na aba SQLConsole, selecione o Spark engine e um grupo de recursos interativos do Spark. Insira a instrução SQL e clique em Execute.