假设在开始使用HIVE后几百个Gigs我想添加一个列。 来自各种文章&我见过的页面,我无法理解其中的后果
奖励任何能够在HIVE专栏中回答相同问题的人。
答案 0 :(得分:12)
如果向hive表添加列,则仅更新基础Metastore。
我希望这会有所帮助。
答案 1 :(得分:4)
ALTER TABLE命令仅修改METADATA。基础数据保持不变。但是,用户有责任确保任何更改都不会破坏数据的一致性。
对METADATA的任何更改都应用于Metastore(最常见的是MySQL),在这种情况下,响应时间是可比较的。
答案 2 :(得分:1)
更改定义只会修改文件的读取方式,而不会修改底层文件的内容。
如果您的文件是带有3列的制表符分隔文本,则可以创建一个表,该表引用具有new_table(行STRING)等方案的文件,这些方案将读取整行而不根据制表符解析出列。
当你添加一个列时,由于记录中没有更多的分隔符,它将默认为NULL,正如Helmut所提到的那样。