Amazon Athena - 如何根据查询结果创建表时排除元数据

时间:2018-03-23 07:04:06

标签: create-table amazon-athena

Athena中,我想根据查询结果创建一个表,但每个查询结果都包含2 files".csv"".csv.metadata"。所有这些文件都在我的表中,元数据构成了表looks messy。有没有办法ignore这些".csv.metadata"个文件,只显示".csv"个文件的数据?

任何建议或代码段都将不胜感激。

谢谢。

4 个答案:

答案 0 :(得分:4)

无法做到。来自documentation

  

Athena读取您在CREATE TABLE语句中指定的Amazon S3位置中的所有文件,并且不能忽略前缀中包含的任何文件。创建表时,仅在Amazon S3路径中包含您希望Athena读取的文件。使用AWS Lambda函数扫描源位置中的文件,删除所有空文件,并将不需要的文件移动到其他位置。

答案 1 :(得分:2)

在文件名的开头添加下划线将导致Athena忽略该文件。例如: mpg cyl row_num 1 21.0 6 1 2 21.0 6 2 3 22.8 4 3 4 21.4 6 4 5 18.7 8 5 6 18.1 6 6

答案 2 :(得分:1)

一种可能满足您需要的简单变通办法是创建一个Athena view ,它将过滤表中的“混乱”。然后,您可以简单地使用视图而不是表本身。

答案 3 :(得分:0)

您可以像这样排除输入文件:

select * from your_table where "$PATH" is not like '%metadata'