O Presto (PrestoDB) é um mecanismo de consulta SQL distribuído, flexível e escalável para análise interativa de big data com SQL padrão. O DataWorks fornece o nó EMR Presto para desenvolver e agendar tarefas Presto periodicamente.
Pré-requisitos
Crie um cluster Alibaba Cloud EMR e registre-o no DataWorks. Para mais informações, consulte New Data Studio: Attach an EMR compute resource.
-
(Opcional, para usuários RAM) Adicione o usuário do Resource Access Management (RAM) responsável pelo desenvolvimento da tarefa ao workspace e atribua a ele a função Development ou Workspace Administrator (esta função inclui permissões amplas; conceda-a com cautela). Para mais informações, consulte Add workspace members.
Se você estiver usando uma conta raiz, pule esta etapa.
Limitações
Somente clusters de data lake baseados em Hadoop são compatíveis. Clusters DataLake e clusters personalizados não têm suporte.
Execute este tipo de tarefa apenas com um Serverless resource group (recomendado) ou um grupo de recursos exclusivo para agendamento.
Linhagem de dados: tarefas executadas em nós EMR Presto não geram linhagem de dados.
Procedimento
-
Na página do editor de nó EMR Presto, siga as etapas de desenvolvimento abaixo.
Desenvolver o código SQL
No editor SQL, desenvolva o código da tarefa. Defina variáveis no formato ${variable_name} diretamente no código e atribua valores a elas na seção Scheduling Parameters, na aba Scheduling Settings. Isso permite a passagem dinâmica de parâmetros nas execuções agendadas. Para mais detalhes sobre parâmetros de agendamento, consulte Sources and expressions of scheduling parameters. O código a seguir apresenta um exemplo.
select '${var}'; -- Can be used with scheduling parameters. select * from userinfo ;NotaUma instrução SQL não pode exceder 130 KB.
Consultas executadas em um nó EMR Presto retornam no máximo 10.000 linhas, e o tamanho total dos dados não pode ultrapassar 10 MB.
(Opcional) Configurar parâmetros avançados
No painel à direita, na aba Scheduling Settings, configure os parâmetros descritos na tabela a seguir em .
NotaVocê também pode configurar mais propriedades open-source do Presto em , no painel Scheduling Settings à direita.
EMR on ECS
Parâmetro
Descrição
DATAWORKS_SESSION_DISABLE
Este parâmetro se aplica apenas a execuções de teste no ambiente de desenvolvimento. Valores válidos:
-
true: cria uma nova conexão JDBC sempre que uma instrução SQL é executada. -
false(padrão): reutiliza a mesma conexão JDBC quando diferentes instruções SQL são executadas no mesmo nó.
NotaSe este parâmetro estiver definido como
false, oyarn applicationIddo Presto não será impresso. Para imprimir oyarn applicationId, defina este parâmetro comotrue.FLOW_SKIP_SQL_ANALYZE
Controla como as instruções SQL são executadas. Valores válidos:
-
true: executa várias instruções SQL simultaneamente. -
false(padrão): executa uma instrução SQL por vez.
NotaEste parâmetro se aplica apenas a execuções de teste no ambiente de desenvolvimento.
priority
Prioridade do job. Valor padrão: 1.
queue
Fila YARN onde os jobs são submetidos. O padrão é a fila
default. Para mais informações sobre o EMR YARN, consulte Basic queue configurations.Executar a tarefa SQL
-
Na seção Run Configuration, aba Compute Resource, selecione um Compute Resource e um DataWorks Resource Group.
NotaAjuste o valor de CUs for Scheduling conforme os requisitos de recursos da tarefa. O valor padrão é
0.25.Para acessar uma fonte de dados via rede pública ou em uma Virtual Private Cloud (VPC), utilize um grupo de recursos de agendamento aprovado no teste de conectividade de rede para essa fonte de dados. Para mais informações, consulte Network connectivity solutions.
Na caixa de diálogo de parâmetros da barra de ferramentas, selecione a fonte de dados desejada e clique em Run.
Caso precise executar a tarefa do nó periodicamente, configure suas propriedades de agendamento de acordo com seus requisitos de negócio. Para mais informações, consulte Configure scheduling for a node.
Após configurar a tarefa do nó, publique-o. Para mais informações, consulte Publish nodes and workflows.
Depois de publicar a tarefa, visualize o status das execuções periódicas no Operation Center. Para mais informações, consulte Get started with Operation Center.
Perguntas frequentes
-
P: Por que a mensagem "Error executing query" aparece?
EMR execute task failed! SQL: {"name":"dw20251018","type":"PRESTO_SQL","launcher":{"allocationSpec":{}},"properties":{"envs":{"FLOW_SKIP_SQL_ANALYZE":false},"arguments":["select * from default.dim_customers;"],"tags":[],"description":"DataWorks"} TASK-MESSAGE: FAILED: Error executing queryR: Verifique se o cluster é um cluster de data lake baseado em Hadoop.
-
P: Por que ocorre um tempo limite de conexão durante a execução do nó?
R: Certifique-se de que o grupo de recursos e o cluster tenham conectividade de rede entre si. Acesse a lista de recursos de computação e clique em Resource Initialization. Na caixa de diálogo exibida, clique em Re-initialize. Confirme se a inicialização foi concluída com sucesso.