Olá Yan, tudo bem?
Para realizar um processo ETL diário que atualize apenas os dados dos últimos 7 dias, você pode utilizar filtros.
No script do AWS Glue, adicione um filtro para carregar apenas os dados dos últimos 7 dias. Você pode usar a função date_sub
do Spark SQL para calcular a data de 7 dias atrás e filtrar os dados a partir daí.
from pyspark.sql.functions import col, current_date, date_sub
# Supondo que 'data_coluna' seja a coluna de data no seu dataset
seven_days_ago = date_sub(current_date(), 7)
dados_filtrados = dados.where(col("data_coluna") >= seven_days_ago)
Para fazer o upsert, você pode usar a função MERGE
do Delta Lake ou UPSERT
do Apache Hudi, que são compatíveis com o Spark, permitindo realizar operações de atualização/inserção (upsert). Escolha a ferramenta que melhor se adapta ao seu caso de uso.
Para agendar a execução diária do seu AWS Glue Job, você pode utilizar:
As documentações estão em inglês, mas você poderá utilizar a tradução automática do navegador.
Espero ter ajudado.
Qualquer dúvida, não hesite em compartilhar no fórum.
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado