Постановка проблемы / основная причина: мы используем AWS Glue для загрузки данных из производственной базы данных PostGress в AWS DataLake. Glue внутренне использует задание Spark для перемещения данных. Однако наш процесс ETL не работает, поскольку Spark поддерживает только строчные имена столбцов таблицы и, к сожалению, все имена столбцов исходной таблицы PostGress находятся в CamelCase и заключены в двойные кавычки.
Например. : Имя столбца нашей исходной таблицы в базе данных PostGress - «CreatedDate». Запрос задания Spark ищет createddate и завершается ошибкой, потому что не может найти имя столбца. Таким образом, запрос искрового задания должен искать именно CreatedDate, чтобы иметь возможность перемещать данные из базы данных PostGress. Это кажется внутренним ограничением как Spark (поскольку он поддерживает только строчные имена столбцов таблицы), так и PostGress (имена столбцов, которые были созданы с помощью двойных кавычек, должны заключаться в двойные кавычки до конца своей жизни).
Справочные ссылки: https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html Чувствительны ли имена столбцов PostgreSQL к регистру?
Оцененные решения: 1. Мы не сможем переименовать имена столбцов из CamelCase в нижний регистр, так как это потребует больших изменений во всех последующих системах. 2. Мы пытаемся переписать / настроить автоматически сгенерированный Glue код Spark, чтобы увидеть, сможем ли мы заставить его работать с именами столбцов исходной таблицы, заключенными в двойные кавычки и не в нижнем регистре.
Кто-нибудь сталкивался с этой проблемой раньше, и вы пытались настроить автоматически сгенерированный код Spark, чтобы он работал?