Можно ли добавить поля к структуре в существующей таблице AWS Athena? - PullRequest
0 голосов
/ 11 июня 2018

У меня есть таблица, которая отслеживает действия пользователя на сайте с высокой пропускной способностью, который определяется как (нерелевантные поля и т. Д. Удалены):

CREATE EXTERNAL TABLE `actions`(
  `uuid` string COMMENT 'from deserializer', 
  `action` string COMMENT 'from deserializer', 
  `user` struct<id:int,username:string,country:string,created_at:string> COMMENT 'from deserializer')
PARTITIONED BY ( 
  `ingestdatetime` string)
ROW FORMAT SERDE 
  'org.openx.data.jsonserde.JsonSerDe' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  's3://<path_to_bucket>'
TBLPROPERTIES (
  'transient_lastDdlTime'='1506104792')

И хочу добавить еще несколько полей к пользовательским данным (например, level: int , чтобы отслеживать, какой уровень был у пользователя, когда он выполнял действие).

Можно ли изменить определение таблицы, чтобы включить эти новые свойства, и если да, то так ли этоможно настроить значения по умолчанию, если их нет в файлах исходных данных?

1 Ответ

0 голосов
/ 11 июня 2018

Нет, вы не можете добавить новый столбец в структуру в Афине.Вы можете удалить схему, а затем создать новую таблицу с необходимыми столбцами.Удаление схемы или базы данных не повлияет на ваши данные, потому что Athena не хранит данные сама, она просто указывает на данные в S3.

...