即使aws s3中没有文件,aws athena创建外部表也会成功?

ve7v8dk2  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(308)
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");

上面的查询成功执行,但是在提供的位置没有文件!!!执行成功后,表被创建并为空。这怎么可能?
即使我上传文件到提供的位置,创建的表仍然是空的!!

kzmpq1sx

kzmpq1sx1#

athena不是一个数据存储,它只是一个使用类似sql的表达式读取s3中数据的无服务器工具。
AmazonAthena是一种交互式查询服务,它使使用标准sql分析AmazonS3中的数据变得非常容易。athena是无服务器的,因此没有可管理的基础设施,您只需为运行的查询付费。
此查询正在创建表的元数据,它不会写入从中读取的位置。
如果你把一个csv放到这个位置 select * from reason 它将尝试Map前缀为的任何csv athena-workspace/athena-input/ 桶内 bucket_name 使用 ROW FORMAT 以及 SERDEPROPERTIES 解析文件。它也会跳过第一行,假设它是一个标题。

相关问题