Apache Spark AWS S3 отслеживает состояние обработанных файлов - PullRequest
0 голосов
/ 15 ноября 2018

Мне необходимо периодически выполнять задания ETL для файлов, хранящихся на AWS S3.

Чтобы не обрабатывать одни и те же файлы дважды, мне нужно где-то сохранять статус файла, например, в некоторых СУБД. Скажем, AWS RDS для PostgreSQL.

Например, я создам следующую таблицу:

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

В самом начале Apache Spark для приложения AWS EMR я прочитаю все файлы в состоянии ожидания из упомянутой таблицы и ETL их. Когда, например, ETL для file1.csv будет завершен, мне нужно пометить его как completed в таблице PostgreSQL. Примерно так:

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

AFAIK, Spark не поддерживает работу UPDATE для JDBC, поэтому я думаю, что-то не так с моей системой. Если да, не могли бы вы предложить, как правильно отслеживать обработанные файлы на S3, чтобы не обрабатывать их снова при новом пакетном запуске ETL?

...