J'ai créé le pipeline suivant: Gestionnaire de tâches -> SQS -> Travailleur scraper (mon application) -> AWS Firehose -> Fichiers S3 -> Spark -> (?) Redshift.Comment traiter les fichiers S3 incrémentiels dans Spark
Certaines choses que je suis en train de résoudre/améliorer et je serais heureux d'orientation:
- Le grattoir pourrait obtenir des données dupliquées, et les rincer à nouveau à firehose, ce qui se traduira par dups à étincelle. Dois-je résoudre cela dans l'étincelle en utilisant la fonction Distinct AVANT de commencer mes calculs?
- Je ne supprime pas les fichiers traités S3, donc les données deviennent de plus en plus volumineuses. Est-ce une bonne pratique? (Ayant s3 comme base de données d'entrée) Ou dois-je traiter chaque fichier et le supprimer une fois l'étincelle terminée? Actuellement je fais
sc.textFile("s3n://...../*/*/*")
- qui collectera TOUS mes fichiers de seau et exécutera des calculs dessus. - Pour placer les résultats dans Redshift (ou s3) -> comment puis-je le faire de façon incrémentielle? c'est-à-dire que si le s3 devient de plus en plus gros, le redshift aura des données dupliquées ... Dois-je toujours le rincer avant? Comment?
vous pouvez avoir votre seau pour les éléments à traiter, et une fois qu'ils ont été poussés, vous les déplacez dans un autre seau afin de conserver une copie si nécessaire, mais vous ne les retraiterez pas une seconde fois –