Фон
Мне нужно спроектировать конвейер Airflow для загрузки CSV в BigQuery.
Я знаю, что у CSV часто меняются схемы. После загрузки первого файла схема может иметь вид
id | ps_1 | ps_1_value
, когда второй файл приземляется, и я загружаю его, он может выглядеть как
id | ps_1 | ps_1_value | ps_1 | ps_2_value
.
Вопрос
Как лучше всего с этим справиться?
Моя первая мысль при подходе к этому будет
- Загрузить второй файл
- Сравнить схему с текущей таблицей
- Обновить таблицу, добавив два столбца (ps_2, ps_2_value)
- Вставить новые строки
Я бы сделать это в PythonOperator.
Если файл 3 появляется и выглядит как id | ps_2 | ps_2_value
Я бы заполнил пропущенные столбцы и вставил.
Спасибо за отзыв.