Использование конфигурации, идентичной той, которая использовалась в примере Terraform: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/glue_catalog_table
resource "aws_glue_catalog_table" "aws_glue_catalog_table" {
name = "MyCatalogTable"
database_name = "MyCatalogDatabase"
table_type = "EXTERNAL_TABLE"
parameters = {
EXTERNAL = "TRUE"
"parquet.compression" = "SNAPPY"
}
storage_descriptor {
location = "s3://my-bucket/event-streams/my-stream"
input_format = "org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat"
output_format = "org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat"
ser_de_info {
name = "my-stream"
serialization_library = "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe"
parameters = {
"serialization.format" = 1
}
}
}
}
а затем попытка выполнить простой запрос Athena к созданной таблице завершается ошибкой
Недействительный паркетный файл
Я использовал все доступные определения SerDe: https://docs.aws.amazon.com/athena/latest/ug/supported-serdes.html И все форматы input_formats, которые я смог найти, но ничего не работает.
Попытка использовать его с файлом Parquet вместо файла Snappy, похоже, работает, но это не соответствует моим потребностям. У кого-нибудь когда-нибудь это работало с файлами Snappy?