usar texto numero funcion datos convertir convert conversion como cast sql amazon-web-services amazon-s3 prestodb amazon-athena

sql - texto - Cómo obtener el nombre del archivo de entrada como columna en las tablas externas de AWS Athena



convertir texto a numero sql (2)

Puedes hacer esto con la pseudo columna $ path.

select "$path" from table

Tengo tablas externas creadas en AWS Athena para consultar datos de S3, sin embargo, la ruta de ubicación tiene más de 1000 archivos. Así que necesito que el nombre de archivo correspondiente del registro se muestre como una columna en la tabla.

select file_name , col1 from table where file_name = "test20170516"

En resumen, necesito saber INPUT__FILE__NAME (colmena) equivalente en AWS Athena Presto o cualquier otra forma de lograr lo mismo.


Si solo necesita el nombre de archivo, puede extraerlo con regeexp_extract() .

Para usarlo en Athena en el "$path" puedes hacer algo como esto:

SELECT regexp_extract("$path", ''[^/]+$'') AS filename from table;

Si necesita el nombre de archivo sin la extensión, puede hacer:

SELECT regexp_extract("$path", ''[ /w-]+?(?=/.)'') AS filename_without_extension from table;

Aquí está la documentación sobre las funciones de expresión regular de Presto.