AWS Spectrum дает пустой результат для паркетных файлов, созданных AWS Glue
Мы строим ETL с помощью клея AWS. А для оптимизации производительности запросов мы храним данные в Apache Parquet. После того, как данные сохранены на S3 в формате паркета. Мы используем AWS Spectrum для запроса этих данных.
Мы успешно протестировали весь стек на нашей учетной записи AWS для разработчиков. Но когда мы перешли на наш производственный аккаунт AWS. Мы застряли со странной проблемой. Когда мы запрашиваем строки возвращаются, но данные пустые.
Хотя запрос количества возвращает хорошее число
При дальнейшем изучении мы узнали, что файлы apache parquet в учетной записи AWS для разработчиков кодируются в RLE, а файлы в рабочей учетной записи AWS - в кодировке BITPACKED. Чтобы усилить этот случай, я хочу преобразовать BITPACKED в RLE и посмотреть, смогу ли я запрашивать данные.
Я довольно плохо знаком с паркетными файлами и не смог найти много помощи для преобразования кодировок. Кто-нибудь может дать мне способы сделать это.
В настоящее время наш главный подозреваемый - это другая кодировка. Но если вы можете угадать любую другую проблему. Я буду рад изучить возможности.
1 ответ
Мы нашли нашу ошибку конфигурации. Имена столбцов наших внешних таблиц и указанные в AWS Glue были противоречивы. Мы исправили это и теперь можем просматривать данные. Я бы сказал, что недостаток в части AWS Spectrum не дает соответствующее сообщение об ошибке.