[英]AWS Athena create external table succeeds even if AWS s3 doesn't have file in it?
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");
上面的查询成功执行,但是,提供的位置没有文件。?! 执行成功后表被创建并且是空的。 这怎么可能?
即使我将文件上传到提供的位置,创建的表仍然是空的!!
Athena 不是数据存储,它只是一个无服务器工具,可以使用类似 SQL 的表达式读取 S3 中的数据。
Amazon Athena 是一种交互式查询服务,可以使用标准 SQL 轻松分析 Amazon S3 中的数据。Athena 是无服务器的,因此无需管理基础设施,您只需为运行的查询付费。
此查询正在创建表的元数据,它不会写入它从中读取的那个位置。
如果您将 CSV 放入该位置并执行select * from reason
它会尝试 map 任何 CSV 在athena-workspace/athena-input/
bucket_name
前缀中的任何 CSV 使用ROW FORMAT
和SERDEPROPERTIES
解析文件. 它还会跳过第一行,假设它是 header。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.