我制作了以下管道:任务管理器 -> SQS -> scraper worker (我的应用程序) -> AWS Firehose -> S3 文件 -> Spark ->(?) Redshift。
我正在尝试解决/改进的一些事情,我很乐意得到指导:
- 刮板可能会获得重复的数据,并将它们再次刷新到消防软管,这将导致火花中的重复。我应该在开始计算之前使用 Distinct 函数在火花中解决这个问题吗?
- 我不会删除 S3 处理的文件,因此数据会越来越大。这是一个好习惯吗?(将 s3 作为输入数据库)或者我应该处理每个文件并在 spark 完成后将其删除?目前我正在做
sc.textFile("s3n://...../*/*/*")
- 这将收集我所有的存储桶文件并运行计算。 - 要将结果放在 Redshift(或 s3)中 -> 我该如何逐步执行此操作?也就是说,如果 s3 越来越大,redshift 就会有重复的数据......我之前总是要刷新它吗?如何?