Необходимо создать отчет на основе данных в s3 и Redshift. Данные в s3 и Redshift необходимо объединить, агрегировать, перед созданием отчета в формате csv выполняется несколько различных вычислений (любой формат должен быть в порядке)
Подробности:
- s3
- 3 разных входных файла в s3
- В каждом прогоне количество столбцов может варьироваться в каждом файле s3, т. Е. Столбцы объединения / группирования остаются одинаковыми, но количество агрегированных столбцов может меняться при каждом запуске
- В файле конфигурации есть все переменные, присутствующие в каждом файле s3
- Redshift
- 4 разных таблицы ввода
- структура остается прежней
- Объем данных - очень маленький, в ГБ, ~ 40K записей
- Поскольку число полей во входном s3 может изменяться при каждом запуске Мне нужно динамически сгенерировать SQL (код)
Запрос:
Поскольку число полей во входном файле s3 может различаться в каждом выполнить, я планирую реализовать конвейер в Python (или PySpark) и не в SQL. Основываясь на немногих результатах анализа, pandas в python может читать из Redshift как информационный кадр, а также может читать из s3.
- Может ли это быть обработано в PySpark (планируется использовать Python для динамического выбора столбца c и Spark для SQL)
- Есть ли лучший подход в Python чтобы решить проблему, скажем, используя Pandas?
Я довольно новичок в Python, любые указатели / указания были бы очень полезны, так что я могу углубиться дальше. Спасибо.