Apache Spark AWS S3跟踪已处理文件的状态

时间:2018-11-15 18:43:23

标签: apache-spark amazon-s3 amazon-emr

我需要对存储在AWS S3上的文件进行定期批处理ETL作业。

为了不对同一文件进行两次处理,我需要将文件状态保存在某个地方,例如在某些RDBMS中。例如,AWS RDS for PostgreSQL。

例如,我将创建下表:

|file_name | status     |
|-----------------------|
|file1.csv | pending    |
|file2.json| pending    |

在AWS EMR应用程序上Apache Spark的最开始,我将从提到的表中读取所有处于暂挂状态的文件,并将其ETL读取。例如,当file1.csv的ETL完成时,我需要在PostgreSQL表中将其标记为completed。像这样:

|file_name | status     |
|-----------------------|
|file1.csv | completed  |
|file2.json| pending    |

AFAIK,Spark不支持JDBC的UPDATE操作,因此我认为我的系统设计可能有问题。如果是这样,您能否建议如何正确跟踪S3上的已处理文件,以免在新的ETL批处理运行中再次处理它们?

0 个答案:

没有答案