带冒号(:)的Amazon Athena分区不起作用 [英] Amazon Athena partition with colon(:) is not working

查看:0
本文介绍了带冒号(:)的Amazon Athena分区不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

第一步:创建表

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

第四步:查询数据 选择* 从My_Info

因此我无法查询任何数据

如果将文件夹更改为Format(yyyy-MM-ddTHH)

步骤2中没有‘:’

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

这样我就可以得到结果了。

是否知道此操作不起作用的原因。

推荐答案

这是因为在创建分区表时,分区是作为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编码或引用为十六进制。一些 其中有一些是不可打印的字符,您的浏览器可能不能 处理它们,这也需要特殊处理:

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或完全省略它。

这篇关于带冒号(:)的Amazon Athena分区不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆