在Amazon Athena中创建内部表

时间:2018-10-18 11:36:52

标签: amazon-s3 ddl amazon-athena

我正在尝试在Sthein中以拼花格式在Athena上创建内部表:

CREATE TABLE IF NOT EXISTS `vdp_dev.owners_daily`(

  `owner_id` string COMMENT 'from deserializer',
  `username` string COMMENT 'from deserializer',
  `billing_with` string COMMENT 'from deserializer',
  `billing_contacts` string COMMENT 'from deserializer',
  `error_code` string COMMENT 'from deserializer')

PARTITIONED BY (
  `dt` string)
ROW FORMAT SERDE
  'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
  's3://xxxxx-xx-xxxx-xxxxxx/dim/daily/owners';

但出现以下错误:

  

仅支持创建外部表。 (服务:AmazonAthena;   状态码:400;错误代码:InvalidRequestException;要求编号:   13c5325b-2217-4989-b5f3-e717462329c1)

有人知道为什么会发生吗? 为什么我不能在Athena中创建内部表?

1 个答案:

答案 0 :(得分:2)

来自雅典娜documentation

所有表都是外部的 如果使用不带EXTERNAL关键字的CREATE TABLE,则Athena会发出错误;只能创建带有EXTERNAL关键字的表。我们建议您始终使用EXTERNAL关键字。当您在Athena中放置表格时,只会删除表格元数据。数据保留在Amazon S3中。