我有一个跟踪高吞吐网站上用户行为的表,定义如下(已删除无关字段等):
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以跟踪用户在执行操作时的等级)。
是否可以更改表定义来包含这些新属性,如果可以,在源数据文件中没有这些属性的情况下,是否可以配置默认值?