【问题标题】:Athena returns blank response for Partitioned data, what am I missing?Athena 为分区数据返回空白响应,我错过了什么?
【发布时间】:2020-12-04 16:07:06
【问题描述】:

我已经使用分区创建了一个表。我为我的 s3 存储桶文件夹尝试了以下两种方法,但是当我使用包含分区子句的 where 子句进行查询时,这两种方法都没有找到记录。

我的 S3 存储桶如下所示。 part*.csv 是我想在 Athena 中查询的内容。在输出中,旁边输出的同一位置还有其他文件夹。

s3://bucket-rootname/ABC-CASE/report/f78dea49-2c3a-481b-a1eb-5169d2a97747/output/part-filename121231.csv s3://bucket-rootname/XYZ-CASE/report/678d1234-2c3a-481b-a1eb-5169d2a97747/output/part-filename213123.csv

我的表如下所示 版本 1:

CREATE EXTERNAL TABLE `mytable_trial1`(
  `status` string, 
 `ref` string)
  PARTITIONED BY ( 
  `casename` string, 
  `id` string)
ROW FORMAT DELIMITED 
  FIELDS TERMINATED BY ',' 
LOCATION
  's3://bucket-rootname/'
TBLPROPERTIES (
  'has_encrypted_data'='false', 
  'skip.header.line.count'='1') 

ALTER TABLE mytable_trial1 add partition (casename="ABC-CASE",id="f78dea49-2c3a-481b-a1eb-5169d2a97747") location "s3://bucket-rootname/casename=ABC-CASE/report/id=f78dea49-2c3a-481b-a1eb-5169d2a97747/output/";

select * from mytable_trial1 where casename='ABC-CASE' and report='report' and id='f78dea49-2c3a-481b-a1eb-5169d2a97747' and foldername='output';

版本 2:

 CREATE EXTERNAL TABLE `mytable_trial1`(
      `status` string, 
     `ref` string)
      PARTITIONED BY ( 
      `casename` string, 
      `report` string,
       `id` string,
      `foldername` string)
    ROW FORMAT DELIMITED 
      FIELDS TERMINATED BY ',' 
    LOCATION
      's3://bucket-rootname/'
    TBLPROPERTIES (
      'has_encrypted_data'='false', 
      'skip.header.line.count'='1') 

ALTER TABLE mytable_trial1 add partition (casename="ABC-CASE",report="report",id="f78dea49-2c3a-481b-a1eb-5169d2a97747",foldername="output") location "s3://bucket-rootname/casename=ABC-CASE/report=report/id=f78dea49-2c3a-481b-a1eb-5169d2a97747/foldername=output/";

select * from mytable_trial1 where casename='ABC-CASE' and id='f78dea49-2c3a-481b-a1eb-5169d2a97747'

Show partitions 显示此分区,但没有找到带有 where 子句的记录。

【问题讨论】:

  • MSCK REPAIR TABLE 显然没有加载分区,因为我在案例名称中有大写字母

标签: amazon-s3 hive analysis amazon-athena


【解决方案1】:

我与 AWS Support 合作,我们能够缩小问题范围。版本 2 非常适合使用,因为它有四个分区,就像我的 S3 存储桶一样。此外,Alter table 命令存在位置问题。我使用了不正确的配置单元格式位置,因为我的实际 S3 位置不是配置单元格式。因此,将命令更正为以下对我有用。

ALTER TABLE mytable_trial1 add partition (casename="ABC-CASE",report="report",id="f78dea49-2c3a-481b-a1eb-5169d2a97747",foldername="output") location "s3://bucket-rootname/ABC-CASE/report/f78dea49-2c3a-481b-a1eb-5169d2a97747/output/";

预览表现在显示我的条目。

【讨论】:

    猜你喜欢
    • 2021-05-30
    • 2013-11-13
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 2015-07-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多