雅典娜跳过下划线的键

时间:2018-07-11 10:46:02

标签: amazon-athena

我正在尝试与aws athena一起对存储在s3中的json文件进行一些查询。因此,我设法创建了一个简单的架构,一切似乎都很好,直到我注意到我的某些文件没有被考虑到为止。

文件的密钥是用户ID,其中一些以_开头。所有这些在雅典娜都失踪了。它们存在于s3中。我可以拿到它们与其他文件相似。但是雅典娜没有看到他们。

显然,它不喜欢按键开头的下划线。除了重命名所有文件,还有其他方法吗?密钥中其他地方的下划线似乎不是问题。

我的架构(我通过删除字段简化了它):

CREATE EXTERNAL TABLE IF NOT EXISTS db.table ( `user_id` string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://xyz/myfiles/' TBLPROPERTIES ('has_encrypted_data'='false');

1 个答案:

答案 0 :(得分:0)

查询表时,Amazon Athena在后台使用Presto.Presto会忽略以下划线_或presto版本0.60开始的点的文件,这是Hadoop MapReduce / Hive的行为

https://prestodb.io/docs/current/release/release-0.60.html

请参阅presto所使用的function来过滤具有org.apache.hadoop.hive.common.FileUtils.HIDDEN_FILES_PATH_FILTER的隐藏文件。由于属性是从Hive派生的,因此同样适用于Hive表将会忽略特定位置的文件。