Ho effettuato la seguente pipeline: Task manager -> SQS -> worker raschietto (la mia app) -> AWS Firehose -> S3 file -> Spark -> (?) Redshift.Come elaborare i file S3 incrementali in Spark
Alcune cose che sto cercando di risolvere/migliorare e sarei felice di orientamento:
- Il raschietto potrebbe potenzialmente ottenere i dati duplicati, e lavare di nuovo a firehose, che si tradurrà in dups a scintilla. Devo risolvere questo nella scintilla usando la funzione Distinct PRIMA di iniziare i miei calcoli?
- Non sto eliminando i file S3 elaborati, quindi i dati continuano a diventare grandi e grandi. È una buona pratica? (Avendo s3 come database di input) O devo elaborare ogni file ed eliminarlo dopo che la scintilla è finita? Attualmente sto facendo
sc.textFile("s3n://...../*/*/*")
- che raccoglierà TUTTI i miei file bucket ed eseguirò calcoli. - Per posizionare i risultati in Redshift (o s3) -> come posso farlo in modo incrementale? cioè, se lo s3 diventa sempre più grande, il redshift avrà dati duplicati ... Devo sempre sciacquarlo prima? Come?
puoi avere il tuo bucket per gli elementi da elaborare e una volta che sono stati spinti, li sposti in un altro bucket in modo da conservare una copia se necessario ma non li rielaborerà una seconda volta –