Crie um nó do Serverless Spark SQL para processar dados estruturados com um mecanismo de consulta SQL distribuído baseado em um recurso de computação do EMR Serverless Spark. Essa abordagem melhora a eficiência da execução de jobs.
Observações de uso
Limitações de recursos de computação: há suporte apenas para bound EMR Serverless Spark compute resources. Certifique-se de que o grupo de recursos e o recurso de computação possam se comunicar pela rede.
Restrições de grupos de recursos: apenas Serverless resource groups podem executar esse tipo de tarefa.
-
(Opcional, para usuários do 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 (essa função inclui permissões amplas e deve ser concedida com cautela). Para mais informações, consulte Add workspace members.
Se você estiver usando uma conta raiz, pule esta etapa.
Crie um nó
Para obter instruções, consulte Crie um nó.
Desenvolver o nó
Desenvolva o código da sua tarefa no editor SQL. A sintaxe aceita catalog.database.tablename. Se você omitir catalog, o Data Catalog padrão do cluster será usado. Se você omitir catalog.database, o banco de dados padrão no Data Catalog padrão do cluster será usado.
Para mais informações sobre o Data Catalog, consulte Gerencie um Data Catalog no EMR Serverless Spark .
-- Substitua <catalog.database.tablename> pelos seus identificadores reais. SELECT * FROM <catalog.database.tablename>
Defina variáveis no seu código usando o formato ${variable_name}. Em seguida, atribua valores a essas variáveis na seção Scheduling Parameters do painel Scheduling Settings. Isso permite a passagem dinâmica de parâmetros em cenários agendados. Para mais informações sobre parâmetros de agendamento, consulte Sources and expressions of scheduling parameters. O código a seguir fornece um exemplo.
SHOW TABLES; -- Use ${var} para definir uma variável chamada var. Se você atribuir o valor ${yyyymmdd} a essa variável, poderá usar uma tarefa agendada para criar uma tabela com a data do negócio como sufixo. CREATE TABLE IF NOT EXISTS userinfo_new_${var} ( ip STRING COMMENT'IP address', uid STRING COMMENT'User ID' )PARTITIONED BY( dt STRING ); --Isso pode ser usado com parâmetros de agendamento.
Uma instrução SQL não pode exceder 130 KB.
Depurar o nó
-
Na seção Run Configuration, selecione um Compute Resource e um Resource Group.
Parâmetro
Descrição
Compute Resource
Selecione um recurso de computação do EMR Serverless Spark vinculado. Se nenhum recurso de computação estiver disponível, selecione Create Compute Resource na lista suspensa.
Resource Group
Selecione um grupo de recursos associado ao workspace.
Script Parameters
Ao configurar o conteúdo do nó, defina variáveis usando o formato
${parameter_name}. Em seguida, configure o Parameter name e o Parameter Value na seção Script Parameters. O sistema substitui essas variáveis dinamicamente pelos valores reais durante a execução. Para mais informações, consulte Sources and expressions of scheduling parameters.ServerlessSpark Node Parameters
Parâmetros de tempo de execução do Spark. Há suporte para os seguintes tipos:
-
Parâmetros de tempo de execução personalizados do DataWorks. Para mais informações, consulte Appendix: DataWorks parameters.
-
Parâmetros de propriedade integrados do Spark. Para mais informações, consulte Open-source Spark property parameters. Você pode carregar diretamente um Spark configuration template do Serverless Spark sem entrada manual, o que simplifica o processo de configuração e garante a consistência.
-
-
Na barra de ferramentas na parte superior do editor de nós, clique em Run para executar a tarefa SQL.
ImportanteAntes da implantação, sincronize os Serverlessspark Node Parameters da Run Configuration para os Serverlessspark Node Parameters em Scheduling Settings.
Modos de execução SQL
O DataWorks fornece dois modos de execução SQL: execução dentro do nó e execução a partir do painel de fluxo de trabalho. Esses dois modos possuem contextos de execução diferentes e podem produzir resultados distintos.
Executar dentro do nó: selecione todas as instruções SQL no editor SQL e clique em Execute. Apenas as instruções SQL selecionadas são executadas. Este modo usa o recurso de computação e os parâmetros configurados para o nó e não aciona relações de dependência com nós upstream ou downstream.
Executar a partir do painel de fluxo de trabalho: clique com o botão direito no nó atual no painel de fluxo de trabalho e execute o nó atual e seus nós downstream. O nó atual e todos os seus nós downstream são executados sequencialmente com base nas dependências de agendamento. Este modo usa o recurso de computação e os parâmetros especificados nas configurações de agendamento, que podem diferir do ambiente de execução de dentro do nó.
As causas comuns para diferenças entre os dois modos incluem valores de parâmetros de agendamento diferentes, configurações de recursos de computação inconsistentes e a saída de nós upstream afetando o contexto de execução do nó atual. Para solucionar problemas, compare os parâmetros de agendamento e as configurações de recursos de computação usados pelos dois modos.
Próximas etapas
Configure o agendamento do nó: se você precisar executar um nó periodicamente, configure sua Scheduling Policy no painel Scheduling Settings à direita.
Publish a node: para executar uma tarefa no ambiente de produção, clique no ícone
para publicar o nó. Um nó é executado conforme o agendamento somente após ser publicado no ambiente de produção.O&M de tarefas: após a publicação de uma tarefa, monitore suas execuções periódicas no Operation Center. Para mais informações, consulte Get started with Operation Center.
Apêndice: parâmetros do DataWorks
|
Parâmetro avançado |
Descrição |
|
FLOW_SKIP_SQL_ANALYZE |
O modo de execução de instruções SQL. Valores válidos:
Nota
Há suporte para esse parâmetro apenas para execuções de teste no ambiente de desenvolvimento de dados. |
|
DATAWORKS_SESSION_DISABLE |
O método de envio de tarefas. Durante o desenvolvimento de dados, as tarefas são enviadas para o SQL Compute para execução por padrão. Você pode usar esse parâmetro para especificar se a tarefa é executada por meio do SQL Compute ou enviada para uma fila para execução.
|
|
SERVERLESS_RELEASE_VERSION |
A versão do mecanismo Spark. Por padrão, a Default Engine Version configurada nas configurações do cluster em Compute Resource no Management Center é usada. Para definir uma versão de mecanismo diferente para uma tarefa específica, configure este parâmetro. Nota
O parâmetro |
|
SERVERLESS_QUEUE_NAME |
A fila de recursos para a qual as tarefas são enviadas. Quando uma tarefa é configurada para ser enviada para uma fila para execução, a Default Resource Queue configurada nas configurações do cluster em Clusters no Management Center é usada por padrão. Se você tiver requisitos de isolamento e gerenciamento de recursos, poderá adicionar filas. Para mais informações, consulte Gerencie filas de recursos. Métodos de configuração:
Nota
|
|
SERVERLESS_SQL_COMPUTE |
O SQL Compute (sessão SQL) a ser usado. Por padrão, o Default SQL Compute configurado nas configurações do cluster em Compute Resource no Management Center é usado. Para definir uma sessão SQL diferente para uma tarefa específica, configure este parâmetro. Para obter informações sobre como criar e gerenciar sessões SQL, consulte Gerencie sessões do SQL Compute. |
|
Outros |
Parâmetros personalizados de Spark Configuration. Adicione parâmetros de propriedade específicos do Spark. Formato de configuração: Nota
O DataWorks permite que você configure parâmetros globais do Spark no nível do workspace para cada módulo do DataWorks. Você pode especificar se a prioridade dos parâmetros globais do Spark é maior do que a dos parâmetros do Spark configurados em um módulo específico. Para mais informações sobre como configurar parâmetros globais do Spark, consulte Configure parâmetros globais do Spark. |