Я хочу разработать систему для загрузки очень больших файлов (из REST / потоковых событий / FTP и т. Д.) С сайтов с большими исходными кодами (базы данных Whois, Shodan, Censys и т. Д. - размер файла составляет около 1-3 ТБ, разделенный на 1 ГБ ~ файл с каждогоисточник).
Система должна выполнить:
- Загрузить файл из источника (из REST api / ftp и т. д.)
Преобразовать в формат CSV
Манипулирование данными (т.е. преобразование формата времени в мой формат времени)
Разделение и сжатие большого файла CSV в наименьшие файлы CSV вZip (т.е. 10 МБ для каждого).
Я думаю о том, чтобы разработать концепцию Micro-услуг и использовать RabbitMQ.
Первый сервис Micro просто загрузитьфайл и запись сообщения в RabbitMQ с указанием местоположения файла.
Второе преобразование файла в CSV и запись сообщения в RabbitMQ с новым файлом.
Третье управление данными (преобразование столбцов и т. д.)) и напишите сообщение с новым CSV-файлом.
Четвертый сплит и почтовый индекс.
Я просто хочу знать, есть ли другой дизайн для разработки этой системы, Может быть, я должен выбрать другой дизайн?
Я хотел бы услышатьлюбые предложения.
Спасибо!