AWS Athena创建外部表成功,即使AWS s3中没有文件?

问题描述 投票:0回答:1
create external table reason ( reason_id int,
  retailer_id int,
  reason_code string, 
  reason_text string,
  ordering int, 
  creation_date date,
  is_active tinyint,
  last_updated_by int,
  update_date date
  )
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   "separatorChar" = "\t",
   "quoteChar"     = "'",
   "escapeChar"    = "\\"
)  
STORED AS TEXTFILE
location 's3://bucket_name/athena-workspace/athena-input/'
TBLPROPERTIES ("skip.header.line.count"="1");

上面的查询成功执行,但是,在提供的位置没有文件!!!成功执行后,表被创建,是空的。这怎么可能?

即使我把文件上传到提供的位置,创建的表还是空的!!!

amazon-web-services amazon-s3 hive ddl amazon-athena
1个回答
1
投票

Athena不是一个数据存储,它只是一个无服务器的工具,使用类似SQL的表达式来读取S3中的数据。

Amazon Athena是一个交互式查询服务,可以使用标准SQL轻松分析Amazon S3中的数据。Athena是无服务器的,所以没有基础设施需要管理,你只需为你运行的查询付费。

这个查询是在创建表的元数据,它不会写到那个位置,而是从那里读取。

如果你把一个CSV放到这个位置,然后执行 select * from reason 的前缀中的任何CSV进行映射。athena-workspace/athena-input/ 桶内 bucket_name 到您的数据格式,使用 ROW FORMATSERDEPROPERTIES 来解析文件。它也会跳过第一行,假设它是一个头。

© www.soinside.com 2019 - 2024. All rights reserved.