0Pricing
Cloud & IT Cert Prep · Aula

AWS Glue: ETL e catálogo de dados

Execute trabalhos de ETL sem servidor com o AWS Glue, registre esquemas de tabelas no Glue Data Catalogue e rastreie novos dados automaticamente.

AWS Glue: ETL e catálogo de dados é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.

O que é o AWS Glue?

O AWS Glue é um serviço de ETL (Extração, Transformação e Carregamento) totalmente gerenciado e sem servidor. Você não provisiona nem gerencia servidores — o Glue aloca automaticamente operadores Spark ou Python quando um trabalho é executado. O Glue é composto por dois componentes principais: o mecanismo de ETL, para trabalhos de transformação de dados, e o Data Catalogue, para armazenar metadados sobre suas fontes e destinos de dados.

Explicação do Glue Data Catalogue

O Glue Data Catalogue é um repositório centralizado de metadados compatível com o Apache Hive Metastore. Ele armazena bancos de dados, tabelas, definições de colunas, tipos de dados e informações de partições. Serviços como o Athena, o Redshift Spectrum e o EMR usam o mesmo Data Catalogue, tornando-o uma fonte única e confiável sobre quais dados existem e onde estão no S3.

# List databases in the Glue Data Catalogue
aws glue get-databases --query 'DatabaseList[*].Name'

# List tables in a database
aws glue get-tables --database-name my_db --query 'TableList[*].Name'

Glue Crawlers: descoberta automática do esquema

Um Glue Crawler conecta-se a um armazenamento de dados (S3, JDBC, DynamoDB), coleta amostras dos dados e infere automaticamente o esquema e a estrutura de partições. Em seguida, ele grava ou atualiza as definições de tabela no Data Catalogue. Os Crawlers podem ser executados conforme um agendamento ou acionados sob demanda. Eles oferecem suporte ao rastreamento incremental, processando apenas novas partições nas execuções seguintes.

# Create and start a Glue Crawler via CLI
aws glue create-crawler \
  --name sales-crawler \
  --role arn:aws:iam::123456789012:role/GlueRole \
  --database-name my_db \
  --targets '{"S3Targets": [{"Path": "s3://my-data-lake-123/landing/sales/"}]}'

aws glue start-crawler --name sales-crawler

Escrevendo um trabalho de ETL do Glue

Um trabalho de ETL do Glue é um script PySpark ou Scala Spark que lê de uma fonte, aplica transformações usando a API DynamicFrame e grava em um destino. Os DynamicFrames ampliam os DataFrames do Spark com flexibilidade de esquema: eles lidam automaticamente com tipos de dados inconsistentes e JSON aninhado. Você pode gerar um script básico de trabalho no editor visual do Glue Studio.

# Minimal Glue PySpark ETL job
from awsglue.context import GlueContext
from awsglue.transforms import *
from pyspark.context import SparkContext

sc = SparkContext()
glueContext = GlueContext(sc)

# Read from Data Catalogue table
source = glueContext.create_dynamic_frame.from_catalog(
    database='my_db', table_name='raw_sales')

# Drop null order_id rows
cleaned = Filter.apply(frame=source, f=lambda r: r['order_id'] is not None)

# Write Parquet to curated zone
glueContext.write_dynamic_frame.from_options(
    frame=cleaned,
    connection_type='s3',
    connection_options={'path': 's3://my-data-lake-123/curated/sales/'},
    format='parquet')

Operadores de trabalhos do Glue e DPUs

O Glue aloca capacidade em unidades de processamento de dados (DPUs). Uma DPU equivale a 4 vCPUs e 16 GB de memória. Você escolhe um tipo de operador (G.1X, G.2X ou G.025X para streaming flexível ou do Spark) e uma quantidade de operadores. Para trabalhos pequenos, use o tipo de trabalho G.025X Python Shell, que utiliza um quarto de DPU e é muito econômico para transformações simples.

# Create a Glue job with G.1X workers
aws glue create-job \
  --name clean-sales \
  --role arn:aws:iam::123456789012:role/GlueRole \
  --command '{"Name": "glueetl", "ScriptLocation": "s3://scripts/clean_sales.py", "PythonVersion": "3"}' \
  --worker-type G.1X \
  --number-of-workers 5 \
  --glue-version '4.0'

Fluxos de trabalho e acionadores do Glue

Um fluxo de trabalho do Glue encadeia Crawlers e trabalhos em um grafo de dependências. Um Crawler descobre novos dados; ao ser concluído, aciona um trabalho, que então aciona outro, e assim por diante. Os acionadores podem ser agendados (cron), baseados em eventos (sob demanda) ou condicionais (disparados quando um trabalho é concluído com sucesso ou falha). Os fluxos de trabalho fornecem um DAG visual para seu fluxo de ETL sem um serviço de orquestração separado.

# Create a schedule trigger that starts a job every night at 2 AM UTC
aws glue create-trigger \
  --name nightly-clean \
  --type SCHEDULED \
  --schedule 'cron(0 2 * * ? *)' \
  --actions '[{"JobName": "clean-sales"}]' \
  --start-on-creation

Glue Studio: criador visual de ETL

O Glue Studio fornece uma interface de arrastar e soltar para projetar trabalhos de ETL graficamente, sem escrever manualmente código PySpark. Você conecta nós de origem (S3, tabelas do Catalogue, JDBC) por meio de nós de transformação (filtro, junção, agregação e Python personalizado) a nós de destino. O Glue Studio gera automaticamente o script do Spark. Ele também fornece um painel de execução do trabalho para monitorar o status de execução e as métricas de qualidade dos dados.

Qualidade de dados do Glue

O AWS Glue Data Quality (DQDL — Data Quality Definition Language) permite escrever regras para validar dados à medida que eles passam por um trabalho de ETL. As regras podem verificar taxas de valores nulos, intervalos de valores, integridade referencial e exclusividade. Se os dados não passarem pelas regras de qualidade, o Glue poderá interromper o trabalho ou encaminhar os registros inválidos para um caminho de quarentena no S3, para análise manual, em vez de permitir silenciosamente que dados corrompidos cheguem à zona de curadoria.

# DQDL rule example for Glue Data Quality
# Reject rows where order_total is negative or null
Rules = [
  IsComplete 'order_total',
  ColumnValues 'order_total' >= 0
]

Glue versus outras opções de ETL

Para o exame SAA-C03, saiba quando recomendar o Glue em vez de alternativas. Use o Glue para ETL Spark sem servidor e integração com o Data Catalogue. Use o AWS Data Pipeline para orquestrar tarefas antigas de movimentação de dados (principalmente legadas). Use o Amazon EMR quando precisar de uma configuração personalizada de cluster Hadoop/Spark ou de cargas de trabalho de longa duração. Use o Lambda para microtransformações leves e orientadas por eventos em cargas pequenas.

JDBC e fontes de dados que não são do S3

O Glue pode conectar-se a bancos de dados relacionais por meio de conexões JDBC — RDS, Aurora, Redshift ou bancos de dados locais por meio de uma conexão de VPC do Glue. Você define uma conexão com uma URL JDBC, credenciais do Secrets Manager e um grupo de segurança da VPC. O Glue então usa uma interface de rede dedicada, posicionada dentro da sub-rede da sua VPC, para alcançar endpoints privados de bancos de dados sem passar pela Internet pública.

# Create a Glue JDBC connection to RDS Aurora
aws glue create-connection \
  --connection-input '{
    "Name": "aurora-prod",
    "ConnectionType": "JDBC",
    "ConnectionProperties": {
      "JDBC_CONNECTION_URL": "jdbc:mysql://aurora-cluster.cluster-xyz.us-east-1.rds.amazonaws.com:3306/sales",
      "SECRET_ID": "arn:aws:secretsmanager:us-east-1:123:secret:rds-creds"
    },
    "PhysicalConnectionRequirements": {
      "SubnetId": "subnet-abc123",
      "SecurityGroupIdList": ["sg-xyz456"],
      "AvailabilityZone": "us-east-1a"
    }
  }'

Bookmarks: processamento incremental

Por padrão, um trabalho do Glue reprocessaria todos os registros a cada execução. Os Glue Job Bookmarks controlam quais arquivos de entrada já foram processados, para que as execuções seguintes coletem apenas os dados novos. Os Bookmarks são essenciais para fontes do S3 somente de acréscimo, nas quais novos arquivos são recebidos diariamente no mesmo prefixo. Ative os Bookmarks nos parâmetros do trabalho com --job-bookmark-option job-bookmark-enable.

# Start Glue job with bookmark enabled
aws glue start-job-run \
  --job-name clean-sales \
  --arguments '{"--job-bookmark-option": "job-bookmark-enable"}'

Verificação rápida

Teste sua compreensão dos conceitos de AWS Solutions Architect (SAA-C03) desta lição.

Resumo da lição

Nesta lição, você aprendeu que: AWS Glue fornece ETL sem servidor por meio de PySpark e da API DynamicFrame, os Glue Crawlers descobrem esquemas automaticamente e preenchem o Data Catalogue e os Glue Bookmarks permitem o processamento incremental de novos dados do S3. Em seguida, exploraremos o Amazon Athena para consultas SQL sem servidor diretamente no S3.

Perguntas Frequentes

A aula “AWS Glue: ETL e catálogo de dados” é grátis?

Sim — o texto completo de “AWS Glue: ETL e catálogo de dados” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.

O que vou aprender em “AWS Glue: ETL e catálogo de dados”?

Execute trabalhos de ETL sem servidor com o AWS Glue, registre esquemas de tabelas no Glue Data Catalogue e rastreie novos dados automaticamente. Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cloud & IT Cert Prep?

Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “AWS Glue: ETL e catálogo de dados”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?

Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Criação de um data lake no S3
  2. AWS Glue: ETL e catálogo de dados
  3. Amazon Athena: SQL sem servidor no S3
  4. Streams do Kinesis, Firehose e análise em tempo real
← Voltar para Cloud & IT Cert Prep