Я занимаюсь проектированием некоторых конвейеров данных ETL с помощью Airflow.Преобразование данных выполняется путем предоставления кластера AWS EMR Spark и отправки ему некоторых заданий.Задания читают данные из S3, обрабатывают их и записывают обратно в S3, используя дату в качестве раздела.
В качестве последнего шага мне нужно загрузить данные S3 в хранилище данных, используя сценарии SQL, которые передаются в Redshift.используя скрипт Python, однако я не могу найти чистый способ получить, какие данные должны быть загружены, т.е.какие разделы даты были сгенерированы во время преобразований Spark (может быть известно только во время выполнения задания и не заранее).
Обратите внимание, что все организовано с помощью скрипта Python с использованием библиотеки boto3, которая запускается с корпоративной виртуальной машинык нему нельзя получить доступ извне.
Каков наилучший способ получить эту информацию из EMR?
На данный момент я думаю о различных решениях: - Запишите информацию в файл журнала.,Получить данные из главного узла Spark, используя SSH через скрипт Python - Записать информацию в файл S3 - Записать информацию в базу данных (RDS?)
Я пытаюсь определить плюсы и минусыиз этих решений.Мне также интересно, что было бы лучшим способом сообщить, что преобразования данных завершены и что метаданные можно получить.
Заранее спасибо