带有冒号(:)的Amazon Athena分区无法正常工作

在Athena中创建分区时,我尝试使用(yyyy-MM-ddTHH:mm:ssZ)格式的日期,所以我无法查询数据

第1步:创建表格

CREATE EXTERNAL TABLE my_info (
         id STRING,name STRING
) PARTITIONED BY (
        part string
) STORED AS ORC LOCATION 's3://bucket1/data' tblproperties ("orc.compress"="snAPPY"); 

第2步:创建如下所示的文件夹并添加文件。

S3://bucket1/data/part=2019-11-12T14:15:16Z

步骤3:刷新分区 MSCK维修表my_info

第4步:查询数据 选择 * 来自my_info

因此,我无法查询任何数据

如果我将文件夹更改为格式(yyyy-MM-ddTHH)

不带“:” (在步骤2中

s3://bucket1/data/part=2019-11-12T14

然后我就能得到结果。

关于为什么它不起作用的任何想法。

hejunyan2010 回答:带有冒号(:)的Amazon Athena分区无法正常工作

这是因为创建分区表时,分区是作为S3路径的一部分实现的,例如对于s3://bucket1/data/part=2019-11-12T14:15:16Zpart=2019-11-12T14:15:16Z部分是S3路径,雅典娜在查询数据时将其解释为分区。

S3路径名称带有一些restrictions on the characters that can be used

  

键名中的以下字符可能需要其他代码   处理,可能需要URL编码或引用为HEX。一些   这些是不可打印的字符,您的浏览器可能无法   处理它们,这也需要特殊处理:

Ampersand ("&")  
Dollar ("$")  
ASCII character ranges 00–1F hex (0–31 decimal) and 7F (127 decimal)  
'At' symbol ("@")  
Equals ("=")  
Semicolon (";")  
Colon (":")  
Plus ("+")  
Space – Significant sequences of spaces may be lost in some uses (especially multiple spaces)  
Comma (",")  
Question mark ("?")  

在这种情况下,Presto / Athena可能没有解释路径中的冒号。要解决此问题,您可以在时间戳中使用其他分隔字符,例如part=2019-11-12--14-15-16或完全省略。

本文链接:https://www.f2er.com/3121522.html

大家都在问