Configurar propriedades de trabalho para trabalhos do Spark no AWS Glue
Ao definir o trabalho no console do AWS Glue, você fornece valores às propriedades para controlar o ambiente do runtime do AWS Glue.
Definir propriedades de trabalho para trabalhos do Spark
A lista a seguir descreve as propriedades de um trabalho do Spark. Para as propriedades de um trabalho de shell do Python, consulte Definir propriedades de trabalho para trabalhos de shell Python. Para obter propriedades de um trabalho de ETL de streaming, consulte Definir propriedades de trabalho para um trabalho de ETL de transmissão.
As propriedades estão listadas na ordem em que aparecem no assistente de Add job (Adicionar trabalho) no console do AWS Glue.
- Nome
-
Forneça uma string UTF-8 com um tamanho máximo de 255 caracteres.
- Descrição
-
Forneça uma descrição opcional da sua implantação com até 2048 caracteres.
- Perfil do IAM
-
Especifique a função do IAM usada para a autorização de recursos necessários para a execução do trabalho e acesso aos armazenamentos de dados. Para obter mais informações sobre permissões de execução de trabalho no AWS Glue, consulte Gerenciamento de identidade e acesso do AWS Glue.
- Tipo
-
O tipo de trabalho de ETL. Ele é definido automaticamente com base no tipo das fontes de dados selecionadas.
-
Spark executa um script de ETL do Apache Spark com o comando de trabalho
glueetl
. -
Spark Streaming executa um script de ETL de streaming do Apache Spark com o comando de trabalho
gluestreaming
. Para ter mais informações, consulte Trabalhos de transmissão de ETL no AWS Glue. -
Shell do Python executa um script do Python com o comando de trabalho
pythonshell
. Para ter mais informações, consulte Configurar propriedades de trabalho para trabalhos de shell Python no AWS Glue.
-
- versão do AWS Glue
-
A versão do AWS Glue determina as versões do Apache Spark e do Python que estão disponíveis para o trabalho, conforme especificado na tabela a seguir.
Versão do AWS Glue Versões compatíveis do Spark e do Python 4,0 -
Spark 3.3.0
-
Python 3.10
3.0 -
Spark 3.1.1
-
Python 3.7
2.0 -
Spark 2.4.3
-
Python 3.7
1,0 -
Spark 2.4.3
-
Python 2.7
-
Python 3.6
0.9 -
Spark 2.2.1
-
Python 2.7
-
- Idioma
-
O código no script de ETL define a lógica do trabalho. O script pode ser codificado em Python ou Scala. Você pode escolher se o script que o trabalho executa é gerado pelo AWS Glue ou fornecido por você. É possível fornecer o nome e o local do script no Amazon Simple Storage Service (Amazon S3). Confirme se não existe um arquivo com o mesmo nome que o diretório do script no caminho. Para saber mais sobre como escrever scripts, consulte Guia de programação do AWS Glue.
- Tipo de operador
-
Os seguintes tipos de operadores estão disponíveis:
Os recursos disponíveis nos operadores do AWS Glue são medidos em DPUs. Uma DPU é uma medida relativa do poder de processamento que consiste em uma capacidade computacional de 4 vCPUs e 16 GB de memória.
-
G.1X
: ao escolher esse tipo, você também fornece um valor para Number of workers (Número de operadores). Cada operador mapeia para 1 DPU (4 vCPUs, 16 GB de memória) com 84 GB de disco (aproximadamente 34 GB livres). Recomendamos esse tipo de operador para workloads, como transformações de dados, uniões e consultas, para oferecer uma maneira escalável e econômica de executar a maioria dos trabalhos. -
G.2X
: ao escolher esse tipo, você também fornece um valor para Number of workers (Número de operadores). Cada operador mapeia para 2 DPU (8 vCPUs, 32 GB de memória) com 128 GB de disco (aproximadamente 77 GB livres). Recomendamos esse tipo de operador para workloads, como transformações de dados, uniões e consultas, para oferecer uma maneira escalável e econômica de executar a maioria dos trabalhos. -
G.4X
: ao escolher esse tipo, você também fornece um valor para Number of workers (Número de operadores). Cada operador mapeia para 4 DPU (16 vCPUs, 64 GB de memória) com 256 GB de disco (aproximadamente 235 GB livres). Recomendamos esse tipo de operador para trabalhos cujas workloads contêm as transformações, agregações, uniões e consultas mais exigentes. Esse tipo de operador está disponível somente para trabalhos de ETL do Spark no AWS Glue versão 3.0 ou posterior nas seguintes regiões da AWS: Leste dos EUA (Ohio), Leste dos EUA (Norte da Virgínia), Oeste dos EUA (Oregon), Ásia-Pacífico (Singapura), Ásia-Pacífico (Sydney), Ásia-Pacífico (Tóquio), Canadá (Central), Europa (Frankfurt), Europa (Irlanda) e Europa (Estocolmo). -
G.8X
: ao escolher esse tipo, você também fornece um valor para Number of workers (Número de operadores). Cada operador mapeia para 8 DPU (32 vCPUs, 128 GB de memória) com 512 GB de disco (aproximadamente 487 GB livres). Recomendamos esse tipo de operador para trabalhos cujas workloads contêm as transformações, agregações, uniões e consultas mais exigentes. Esse tipo de operador está disponível somente para trabalhos de ETL do Spark no AWS Glue versão 3.0 ou posterior, nas mesmas regiões da AWS compatíveis com o tipo de operadorG.4X
. -
G.025X
: ao escolher esse tipo, você também fornece um valor para Number of workers (Número de operadores). Cada operador mapeia para 0,25 DPU (2 vCPUs, 4 GB de memória) com 84 GB de disco (aproximadamente 34 GB livres). Recomendamos esse tipo de operador para trabalhos de streaming de baixo volume. Esse tipo de operador só está disponível para trabalhos de streaming AWS Glue versão 3.0.
É cobrada uma taxa por hora com base no número de DPUs usadas para executar os trabalhos de ETL. Para obter mais informações, consulte a página de definição de preços do AWS Glue
. Com trabalhos do AWS Glue versão 1.0 ou anterior, quando você configura um trabalho usando o console e especifica um Worker type (Tipo de operador) como Standard (Padrão), a Maximum capacity (Capacidade máxima) é definida e o Number of workers (Número de operadores) torna-se o valor de Maximum capacity (Capacidade máxima) - 1. Se você usar a AWS Command Line Interface (AWS CLI) ou o AWS SDK, poderá especificar o parâmetro Max capacity (Capacidade máxima), ou especificar tanto Worker type (Tipo de operador) quanto Number of workers (Número de operadores).
Para trabalhos do AWS Glue versão 2.0 ou posterior, não é possível especificar uma capacidade máxima. Em vez disso, você deve especificar um Worker type (Tipo de operador) e o Number of workers (Número de operadores).
-
- O número solicitado de operadores
-
Para a maioria dos tipos de trabalho, é necessário especificar o número de operadores alocados quando o trabalho é executado.
- Marcador de trabalho
-
Especifique como o AWS Glue processa essas informações de estado quando o trabalho é executado. É possível lembrar de dados previamente processados, atualizar informações de estado ou ignorar informações de estado. Para ter mais informações, consulte Rastrear dados processados usando marcadores de trabalho.
- Enfileiramento da execução de trabalhos
-
Especifica se as execuções de trabalhos foram colocadas na fila para execução posterior quando elas não podem ser executadas imediatamente devido às cotas de serviço.
Quando marcada, o enfileiramento da execução de trabalhos é habilitado para as execuções de trabalhos. Se não for preenchida, as execuções do trabalho não serão consideradas para enfileiramento.
Se essa configuração não corresponder ao valor definido na execução do trabalho, o valor do campo de execução do trabalho será usado.
- Execução flexível
-
Quando você configura um trabalho usando o AWS Studio ou a API, é possível especificar uma classe de execução padrão ou flexível de trabalho. Seus trabalhos podem ter graus diversos de prioridade e sensibilidade ao tempo. A classe de execução padrão é ideal para workloads sensíveis ao tempo que exigem a inicialização rápida de trabalhos e recursos dedicados.
A classe de execução flexível é adequada para trabalhos não urgentes, como trabalhos de pré-produção, testes e cargas de dados únicas. Execuções flexíveis de trabalho são compatíveis com trabalhos que usem o AWS Glue versão 3.0 ou posterior e os tipos de operador
G.1X
ouG.2X
.As execuções flexíveis de trabalho são cobradas com base no número de operadores em execução a qualquer momento. É possível adicionar ou remover o número de operadores para uma execução flexível de trabalho que esteja em andamento. Em vez de faturar como um simples cálculo de
Max Capacity
*Execution Time
, cada operador contribuirá pelo tempo durante o qual foi executado na execução do trabalho. A conta é a soma de (Number of DPUs per worker
*time each worker ran
).Para obter mais informações, consulte o painel de ajuda no AWS Studio ou Tarefas e Execuções de trabalhos.
- Número de novas tentativas
-
Especifique o número de vezes, de 0 a 10, que o AWS Glue deve reiniciar automaticamente o trabalho em caso de falha. Os trabalhos que atingem o limite de tempo não são reiniciados.
- Tempo limite de trabalho
-
Define o tempo máximo de execução em minutos. O padrão é 2.880 minutos (48 horas) para trabalhos em lotes. Quando o tempo de execução do trabalho excede esse limite, o estado da execução do trabalho é alterado para
TIMEOUT
.Os trabalhos de streaming devem ter valores de tempo limite inferiores a 7 dias ou 10.080 minutos. Quando o valor for deixado em branco, o trabalho será reiniciado após 7 dias, caso você não tenha configurado uma janela de manutenção. Se você tiver uma janela de manutenção configurada, ela será reiniciada durante a janela de manutenção após 7 dias.
Práticas recomendadas para tempos limite de trabalhos
Os trabalhos são cobrados com base no tempo de execução. Para evitar cobranças inesperadas, configure valores de tempo limite apropriados para o tempo de execução esperado do seu trabalho.
- Propriedades avançadas
-
- Nome do arquivo de script
-
Um nome de script exclusivo para seu trabalho. Não pode ser nomeado Trabalho sem título.
- Caminho do script
-
A localização do Amazon S3 do script. O caminho deve estar no formato
s3://bucket/prefix/path/
. Ele deve terminar com uma barra (/
) e não incluir arquivos. - Métricas de trabalho
-
Ative ou desative a criação de métricas do Amazon CloudWatch quando esse trabalho for executado. Para ver os dados de criação de perfil, você deve habilitar essa opção. Para obter mais informações sobre como ativar e visualizar as métricas, consulte Monitoramento e depuração de trabalho.
- Métricas de observabilidade do trabalho
-
Ative ou desative a criação de métricas de observabilidade do CloudWatch quando esse trabalho for executado. Para ter mais informações, consulte Monitoramento com métricas de observabilidade do AWS Glue.
- Registro em log contínuo
-
Ative o registro em log contínuo no Amazon CloudWatch. Se esta opção não estiver habilitada, os logs estarão disponíveis somente após o trabalho ser concluído. Para ter mais informações, consulte Registro contínuo para trabalhos do AWS Glue.
- IU do Spark
-
Ative o uso da interface do usuário do Spark para monitorar esse trabalho. Para ter mais informações, consulte Habilitar a interface do usuário da Web do Apache Spark para trabalhos do AWS Glue.
- Caminho dos logs da interface do usuário do Spark
-
O caminho para gravar logs quando a interface do usuário do Spark está habilitada.
- Configuração de log e monitoramento da interface do usuário do Spark
-
Escolha uma das seguintes opções:
Padrão: grave logs usando o ID de execução do trabalho do AWS Glue como nome do arquivo. Ative o monitoramento da interface do usuário do Spark no console do AWS Glue.
Legado: grave logs usando "spark-application- {timestamp}" como nome do arquivo. Não ative o monitoramento da interface do usuário do Spark.
Padrão e legado: grave logs nos locais padrão e legados. Ative o monitoramento da interface do usuário do Spark no console do AWS Glue.
- Máximo de simultaneidade
-
Define o número máximo de execuções simultâneas permitidas para o trabalho. O padrão é um. Um erro será retornado quando este limite for atingido. O valor máximo que você pode especificar é controlado por um limite de serviço. Por exemplo, se a execução anterior de um trabalho ainda estiver sendo realizada quando uma nova instância for iniciada, convém retornar um erro para evitar que duas instâncias do mesmo trabalho sejam executadas simultaneamente.
- Caminho temporário
-
Informe o local de um diretório de trabalho no Amazon S3 onde os resultados intermediários temporários serão gravados quando o AWS Glue executar o script. Confirme se não existe um arquivo com o mesmo nome que o diretório temporário no caminho. Esse diretório é usado quando o AWS Glue lê e grava no Amazon Redshift e por determinadas transformações do AWS Glue.
nota
O AWS Glue criará um bucket temporário para trabalhos se um bucket ainda não existir em uma região. Esse bucket pode permitir o acesso público. Você pode modificar o bucket no Amazon S3 para definir o bloco de acesso público ou excluir o bucket mais tarde, depois que todos os trabalhos nessa região forem concluídos.
- Limite de notificação de atraso (minutos)
-
Define o valor mínimo (em minutos) antes que uma notificação de atraso seja enviada. Você pode definir esse limite para enviar notificações quando uma execução de trabalho
RUNNING
,STARTING
ouSTOPPING
levar mais do que o número de minutos esperado. - Configuração de segurança
-
Escolha uma configuração de segurança na lista. Uma configuração de segurança especifica como os dados no destino do Amazon S3 são criptografados: sem criptografia, criptografia no lado do servidor com chaves gerenciadas pelo AWS KMS (SSE-KMS) ou chaves de criptografia gerenciadas pelo Amazon S3 (SSE-S3).
- Criptografia do lado do servidor
-
Se você selecionar essa opção, quando o trabalho de ETL gravar no Amazon S3, os dados serão criptografados em repouso usando criptografia SSE-S3. Tanto o seu destino de dados do Amazon S3 quanto outros dados gravados em um diretório temporário do Amazon S3 serão criptografados. Essa opção é passada como um parâmetro de trabalho. Para obter mais informações, consulte Proteção de dados usando criptografia no lado do servidor com chaves de criptografia gerenciadas pelo Amazon S3 (SSE-S3) no Manual do usuário do Amazon Simple Storage Service.
Importante
Esta opção será ignorada se uma configuração de segurança for especificada.
- Usar o catálogo de dados do Glue como metastore do Hive
-
Selecione para usar o AWS Glue Data Catalog como a metastore do Hive. A função do IAM usada para o trabalho deve ter a permissão
glue:CreateDatabase
. Um banco de dados chamado “default” (padrão) é criado no Data Catalog, caso não exista.
- Conexões
-
Escolha uma configuração de VPC para acessar fontes de dados do Amazon S3 localizadas na sua nuvem privada virtual (VPC). É possível criar e gerenciar a conexão de rede no AWS Glue. Para ter mais informações, consulte Conectar a dados.
- Bibliotecas
-
- Caminho da biblioteca Python, caminho dos JARs dependentes e caminho de arquivos referenciados
-
Especifique essas opções se o script precisar. É possível definir os caminhos do Amazon S3 separados por vírgulas para essas opções ao definir o trabalho. Você pode substituir esses caminhos ao executar o trabalho. Para ter mais informações, consulte Fornecer seus próprios scripts personalizados.
- Parâmetros de trabalho
-
Um conjunto de pares de valor-chave que são transmitidos como parâmetros nomeados para o script. Esses são valores padrão que são usados quando o script é executado, mas é possível substituí-los em trigger ou ao executar o trabalho. É necessário iniciar o nome da chave com
--
; por exemplo:--myKey
. Passe os parâmetros do trabalho como um mapa ao usar a AWS Command Line Interface.Para ver exemplos, consulte os parâmetros Python em Transmitir e acessar parâmetros de Python no AWS Glue.
- Tags
-
Marque o trabalho com uma Tag key (Chave de tag) e um Tag value (Valor de tag) opcional. Depois que as chaves de tags são criadas, elas são somente leitura. Use as tags em alguns recursos para ajudar a organizá-los e identificá-los. Para ter mais informações, consulte Etiquetas da AWS no AWS Glue.
Restrições para trabalhos que acessam tabelas gerenciadas pelo Lake Formation
Tenha em mente as seguintes observações e restrições ao criar trabalhos que leiam ou gravem em tabelas gerenciadas pelo AWS Lake Formation:
-
Não há suporte para os seguintes recursos em trabalhos que acessem tabelas com filtros no nível da célula: