¿Hay alguna manera de crear una tabla en Amazon Athena directamente desde un archivo de parquet basado en el esquema avro? El esquema está codificado en el archivo, por lo que parece estúpido que necesite crear el DDL yo mismo.
Vi esto y también otra duplicación .
pero están relacionados directamente con Hive, no funcionará para Athena. Idealmente, estoy buscando una manera de hacerlo mediante programación sin la necesidad de definirlo en la consola.
Esto ahora es más o menos posible con AWS Glue . Glue puede rastrear un montón de fuentes de datos diferentes, incluidos los archivos de Parquet en S3 . Las tablas descubiertas se agregan al catálogo de datos de Glue y se pueden consultar desde Athena. Según sus necesidades, puede programar un rastreador de Glue para que se ejecute periódicamente o puede definir y ejecutar un rastreador mediante la API de Glue.
Si tiene muchos fragmentos de datos separados que comparten un esquema, también puede usar una tabla particionada para reducir la sobrecarga de hacer que las nuevas cargas estén disponibles para Athena. Por ejemplo, tengo algunos volcados diarios que se cargan en tablas particionadas por fecha. Mientras el esquema no cambie, todo lo que necesita hacer es MSCK REPAIR TABLE .
No parece ser posible con Athena ya que avro.schema.url no es una propiedad admitida.
table property 'avro.schema.url' is not supported. (Service: AmazonAthena; Status Code: 400; Error Code: InvalidRequestException...)
Puede usar avro.schema.literal (tendría que copiar el esquema avro json en la consulta), pero aún tuve problemas para consultar los datos después.
Errores extraños como: SYNTAX_ERROR: line 1:8: SELECT * not allowed in queries without FROM clause