Flink Streaming AWS S3 читает несколько файлов параллельно

Я новичок во Flink, мое понимание следующее вызов API

StreamExecutionEnvironment.getExecutionEnvironment().readFile(format, path)

будет читать файлы параллельно для заданного пути S3.

Мы храним файлы журналов в S3. Требуется обслуживать несколько клиентских запросов на чтение из разных папок с отметками времени.

Для моего случая использования, чтобы обслужить запрос нескольких клиентов, я оцениваю использовать Flink. Поэтому я хочу, чтобы Flink параллельно выполнял чтение AWS S3 для разных путей к файлам AWS S3.

Можно ли добиться этого в одиночной работе Flink. Какие-либо предложения?

1 ответ

Документацию о поддержке файловой системы S3 можно найти здесь.

Вы можете читать из разных каталогов и использовать union() Оператор объединяет все записи из разных каталогов в один поток.

Также возможно читать вложенные файлы, используя что-то вроде (не проверено):

TextInputFormat format = new TextInputFormat(path);
Configuration config = new Configuration();
config.setBoolean("recursive.file.enumeration", true);
format.configure(this.config);
env.readFile(format, path);
Другие вопросы по тегам