Тип данных результата зависит от SQL, использованного для его создания, а также от того, как вы его используете.Исходя из вашего вопроса, я собираюсь предположить, что вы создаете таблицу с использованием CTAS и что выводом является CSV, а затем вы смотрите непосредственно на данные CSV.
Этот CSV собираетсяв нем есть кавычки, но это не значит, что невозможно прочитать целочисленные значения как целые числа и так далее.Афина использует подход «схема при чтении», и пока serde может интерпретировать значение как определенный тип, этот тип будет работать как тип столбца.
Если вы запросите таблицу, созданную вашимВ операции CTAS вы должны получить целые числа для столбцов целых чисел.
Используя CTAS, вы также можете создавать выходные данные различных типов, таких как JSON, Avro, Parquet и ORC, которые хранят информацию о типе.Просто используйте свойство format
для выбора типа вывода .
Я немного озадачен тем, что вы подразумеваете под своим третьим вопросом.При обычном запросе вы получите два файла на S3, файл данных и файл метаданных, и они будут записаны в выходное местоположение, указанное в вызове API StartQueryExecution
, но с запросом CTAS вы получите выходные данные в другомместоположение (указано в SQL), чем файл метаданных.
Вы на самом деле используете CTAS или говорите о файлах результатов обычного запроса?
Обновление после уточнения вопроса:
1) Афина, к сожалению, не может правильно прочитать свой вывод во многих ситуациях.Это то, что действительно удивляет меня, что они никогда не рассматривали до запуска.Возможно, вам удастся настроить таблицу, которая использует регулярное выражение.
2) Нет, к сожалению, в настоящее время единственным выводом обычного запроса является CSV.
3) Нет,метаданные всегда записываются в тот же префикс, что и выходные данные.
Я думаю, что вам лучше всего выполнить несколько запросов CTAS, которые выбирают подмножества ваших исходных данных, например, если есть столбец даты, вы можете сделать один CTAS намесяц или какой-то другой временной диапазон, который работает.После выполнения запросов CTAS вы можете переместить файлы результатов в тот же каталог на S3 и создать итоговую таблицу, в которой этот каталог находится в этом месте.